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