Rigid Link using Linear Spring?


When I use Chrono and apply a linearspring constraint between two bodies, if I set k = 0 and c = 0, it does not behave as I expect. My expectation might of course be wrong.

I would think that because it has no stiffness and damping, then the constraint between the two bodies, would keep the same rest length always. If if I have two bodies placed at (0 0 0) and (2 0 0), I set rest length= 2, then no matter how I move the bodies, they will always have a line with 2 m between them.

Instead what I observe is that it becomes a "magical" rope which can extend how much it wants depending on the motion of the two bodies.

Is there a way to do what I want using the linearsprings? I will note that chrono_pointline does not do what I describe, since what I describe is basically a rigid displacement constraint.

Kind regards


  • From the equation of the spring, when you set k = 0 = c, it means an infinitely stretchable spring, since you would need 0 N force to extend the spring by any arbitrary distance x.

    So, in order to get the behavior you have to expect, you need to set k and c to very high values such that it essentially becomes a rigid line.

    You can get a sense of what value to use if you use the equation to determine spring constant of a metal

    k = EA/L where E is the Young's Modulus, A is the area of cross section and L is the length of the link. For example, a 2 m long steel rod of cross sectional area 0.1 m^2 and Young's Modulus 200 GPa (200*10^9) would have a spring constant of 10^10 N/m 2.

    So, if you set it to very high value, you should get what you desrcibe.

  • I see, what I was trying to avoid was setting an extremely high value, to avoid affecting the solution. Perhaps what I want is not implemented yet, but should be possible to add at some point if others need it too.

    Kind regards

Sign In or Register to comment.