I have some questions about the FDK setup

Hello AnyBody,
I'm trying to replace the left side of the mandible with a prosthesis, in which the skull is fixed and the mandible is driven to complete the occlusal motion, the contact between the prosthesis after replacement and the natural bone on the right side was set to the FDK joint.Because of the prosthetic replacement on the left side, the condyle peaks on both sides of the condyle are not at the same level,and the contact pressure modulus on both sides was also different considering the material difference between the natural joint and the prosthesis. I used the FDK tutorial method, but this will cause the replacement prosthesis to penetrate too much, singlesidedonoff = On and singlesidedonoff = Off, modifying the contact pressure modulus and refining the mesh on the contact surface do not have much effect.
So my question is how do i solve the big through? Should FDK be penetrating on contact?
Here is my FDK setup code and the model diagram:
AnyKinLinear TMJ_JntR={
AnyRefNode &MandibleRef = ..Seg.Mandible.TMJ_NodeR;
AnyRefNode &SkullRef = ..Seg.Skull.TMJ_NodeR;
Ref=0;
};
AnyKinEqSimpleDriver TMJ_JntR_Z_Constraint = {
AnyKinMeasureOrg TMJ_JntR_Z={
AnyKinLinear &ref = ..TMJ_JntR;
MeasureOrganizer={2};
};
DriverPos = {0.00};
DriverVel = {0.0};
Reaction.Type = {Off};
CType={ForceDep};
};
AnyKinMeasureOrg TMJ_JntR_X={
AnyKinLinear &ref = ..HumanModel.Jnt.TMJ_JntR;
MeasureOrganizer={0};
};

AnyKinEqSimpleDriver TMJ_JntR_X_Driver = {
AnyKinMeasure& ref = .TMJ_JntR_X;
DriverPos = {0};
DriverVel = {0.0};
Reaction.Type = {Off};
CType={ForceDep};
};
AnyForceSurfaceContact TMJ_JntR_Contact =
{ AnySurface &sMaster = ..Seg.Mandible.SurfContactRight;
AnySurface &sSlave =Main.Model.HumanModel.Seg.Skull.SurfContactRight;
PressureModule = 2.5e8;
ForceViewOnOff = On;
MeshRefinementMaster = 0;
MeshRefinementSlave = 0;
SingleSidedOnOff= On;
};
AnyForce LEFTArtificialStiffness =
{
AnyFloat Stiffness = 1e4; // N/m
AnyKinLinear lin =
{
AnyRefNode &MandibleRef = ...Seg.Skull.TMJ_NodeR;
AnyRefNode &SkullRef = ...Seg.Mandible.TMJ_NodeR;
Ref=0;
};
F = - Stiffness * lin.Pos;
};

AnyKinLinear TMJ_JntL={
AnyRefNode &MandibleRef = ..Seg.Mandible.L;
AnyRefNode &SkullRef = ..Seg.Skull.L;
Ref=0;
};

AnyKinEqSimpleDriver TMJ_JntL_Z_Constraint = {
AnyKinMeasureOrg TMJ_JntL_Z={
AnyKinLinear &ref = ..TMJ_JntL;
MeasureOrganizer={2};
};
DriverPos = {0.00};
DriverVel = {0.0};
Reaction.Type = {Off};
CType={ForceDep};
};

AnyKinMeasureOrg TMJ_JntL_Y={
AnyKinLinear &ref = ..HumanModel.Jnt.TMJ_JntL;
MeasureOrganizer={1};
};

AnyKinEqSimpleDriver TMJ_JntL_Y_Driver = {
AnyKinMeasure& ref = .TMJ_JntL_Y;
DriverPos = {0};
DriverVel = {0};
Reaction.Type = {Off};
CType={ForceDep};
};

AnyKinMeasureOrg TMJ_JntL_X={
AnyKinLinear &ref = ..HumanModel.Jnt.TMJ_JntL;
MeasureOrganizer={0};
};

AnyKinEqSimpleDriver TMJ_JntL_X_Driver = {
AnyKinMeasure& ref = .TMJ_JntL_X;
DriverPos = {0};
DriverVel = {0.0};
Reaction.Type = {Off};
CType={ForceDep};
};

AnyForceSurfaceContact TMJ_JntL_Contact =
{
AnySurface &sMaster = ..Seg.Mandible.SurfContactLeft;
AnySurface &sSlave = ..Seg.Skull.SurfContactLeft;
PressureModule = 1e9;
ForceViewOnOff = On;
MeshRefinementMaster = 0;
MeshRefinementSlave = 0;
SingleSidedOnOff= On;
};

AnyForce ArtificialStiffness =
{
AnyFloat Stiffness = 1e4; // N/m
AnyKinLinear lin =
{
AnyRefNode &SkullRef = ...Seg.Skull.L;
AnyRefNode &MandibleRef = ...Seg.Mandible.L;
Ref=0;
};
F = - Stiffness * lin.Pos;
};

As can be seen from the image below, through the large, red is the fossa, gray prosthesis mandibular ramus:

Best regards,
han

The following image shows the contact of the mandibular ramus prosthesis. The force is not distributed at the top of the condyle, but at the stem of the temporomandibular prosthesis. This should not be correct.


At the same time, if the contact pressure modulus is too large, it will lead to excessive contact force, such results are not correct.

Hi Han,

It does indeed look wrong. You need to check your input and implementation details. Try creating a 2-body system fixed by a prismatic joint and drive one surface through another. Your contact force profile should be reasonable. Secondly, I would check the quality of the input - does the surface have good normals and so on. Do you have some inner surfaces that could change contact behavior? Try using only the outer shell.

Kind regards,
Pavel