[MBDyn-users] Constitutive law for a chain

Pierangelo Masarati masarati at aero.polimi.it
Fri May 9 01:49:53 CEST 2008

Rudi Jaeger wrote:

> I tried the Scalar function approach with something like:
> set: integer cl_rod = 1;
> set: real high_force= 1.0e+16;
> set: real cut_force= 0.0;
> set: real eps= 1.0e-1;
> set: real k_plus=  1.0e+5;
> set: real k_minus= 1.0e-1;
> scalar function: 
>    "k_step_fun", multilinear,
>     -high_force, k_minus,
>     -cut_force-eps, k_minus,
>     0.0,0.0,
>     cut_force+eps, k_plus,
>     high_force, k_plus;

This is not going to give you what you need, if I understand your 
problem correctly: in fact:

1) the constitutive law requires you to define a strain -> force 
relationship; this means that the multilinear scalar function must map 
strain and force values.

2) your constitutive law is symmetric, so it is not going to yield what 
you intended.

You could rather try something like

set: real eps_min = -1;
set: real f_min = 0.;
set: real eps_max = 1.;
set: real f_max = 1.e9;

scalar function:
	"k_step_fun", multilinear,
		-eps_min, f_min,
		0., f_min,
		eps_max, f_max;

so the slope would be zero for negative strains, and f_max/eps_max for 
positive strains (hope 1.e6 suffices; I had trouble with larger values 
applied to your example).

Moreover, the strain must not be less than -1, so the "rod" approach is 
not "safe": if the two nodes become too close to each other, you risk a 
singularity.  You could try to use beam elements, with minimal bending 
stiffness.  The problem can still be tricky, but it should be a little 
bit more robust.

Cheers, p.

More information about the Mbdyn-users mailing list