Question on inversedynamic analysis failed

Hi Anybody workteam,
Several days before,I downloaded the webstudy data,‘Biomechanical Analysis of Anterior Cruciate Ligament Injury Mechanisms’,from the nebwork.And I am very interested in this research on this topics.So I added two ligaments into the bodymodel existing in the Anybody Repository. But when I started the Inversedynamic analysis,then there was an error just as follows,
ERROR(OBJ.MCH.MUS4) : C:/D…s/C925/A…a/A…y/A…x/A…0/A…n/E…s/k…t/KneeLigamentModel.Main.any : Study.InverseDynamics : Muscle recruitment solver : solver aborted after maximum number of line-search iterations.
This error is that the analysis iteration exceeds the maximum number of line-search iterations.
I want to know whether that I added ligaments results in this error,and what to deal with this problem.I’d be very grateful if you could let me know as soon as possible. Thank you for your consideration.

Best regards


Please try to exclude the ligaments you have added and see if the model then runs.

Which model from the repository did you base your model on?

The error that you got means that there is no way the solver could balance the applied forces, so it may indicate that the forces in the ligaments are too high.

Best regards

Hi Søren ,

Thank you for your attention to my problem.
My AMMR version number is 1.0.And I based my model on the standing model from the repository.
Here are the definition of ligaments adding into the standing model,
//definition for Ligament Node in …shank
AnyRefNode AnteriorLigamentNode= {sRel = .Scale({0.02, 0.17, -…Sign0.005});};
AnyRefNode PostriorLigamentNode= {sRel = .Scale({0.005, 0.17, …Sign

//definition for Ligament Node in …Thigh

AnyRefNode AnteriorLigamentNode= {sRel = .Scale({0.008, -0.25, …Sign0.018});};
AnyRefNode PostriorLigamentNode= {sRel = .Scale({0.0, -0.25, -…Sign
//definition for Ligament in main.model

AnyViaPointLigament PostriorLig = {
  AnyRefNode &Ori = Main.HumanModel.BodyModel.Right.Leg.Seg.Thigh.PostriorLigamentNode;
  AnyRefNode &Via = Main.HumanModel.BodyModel.Right.Leg.Seg.Thigh.PostriorLigamentNode;
  AnyRefNode &Ins = Main.HumanModel.BodyModel.Right.Leg.Seg.Shank.PostriorLigamentNode;
  AnyLigamentModelPol &Model = .LigModel;
  AnyDrawPLine drw = {
    Thickness = 0.01;
    RGB = {1,0,0};

AnyViaPointLigament AnteriorLig = {
  AnyRefNode &Ori = Main.HumanModel.BodyModel.Right.Leg.Seg.Thigh.AnteriorLigamentNode;
  AnyRefNode &Via = Main.HumanModel.BodyModel.Right.Leg.Seg.Thigh.AnteriorLigamentNode;
  AnyRefNode &Ins = Main.HumanModel.BodyModel.Right.Leg.Seg.Shank.AnteriorLigamentNode;
  AnyLigamentModelPol &Model = .LigModel;
  AnyDrawPLine drw = {
    Thickness = 0.01;
    RGB = {1,0,0};

AnyLigamentModelPol LigModel = {
  L0 = 0.0130;   // Slack length
  eps1 = 0.2;  // Strain where F1 is valid
  F1 = 10;   // Force in the ligament at strain eps1
  a0 = 0.5;
  a1 = 1.0;
  LinRegionOnOff = Off;
}; // LigModel

I have read your reply,and tried your advice. I modified the force ‘F’ as 0, but the error still came about.
Also I had build up a simple model which merely had two segments,one muscle and one Ligament.While this model run very well.So the solver can deal with this condition of muscle and ligament together in model.
So I do not know what is reason.I would be very grateful if you give me a reply.

Best regards,

Xiaopeng Zhang


If you still use the non linear coefficient a0 and a1 in the ligament model, setting the force (F1) to zero is not enough and you may still have some foce applied.

So try instead to completly exclude the ligaments definition and run the model, see if it goes through or not.

Also i can see that you are using a via node at the same location as the origin. I not sure but maybe it could cause some problems. I think it is best if you can avoid it, just in case.

Best regards, Sylvain.

Hi Sylvain,

Thank you for your advice.Now I have solved the problem. I took your advice and modified the via node.When I started the inversedynamic analysis,the error did not come about.I am very grafeful for you giving me advice.

Best regards, Xiaopeng.