[MBDyn-users] Constitutive laws gain ...
Pierangelo Masarati
masarati at aero.polimi.it
Mon Aug 27 19:16:42 CEST 2007
[please keep posting to the list, so others can benefit from any
troubleshooting]
Rudi Jaeger wrote:
> It would be great to try those new constitutive laws.
I just posted to mbdyn-devel a pointer to the freshly, but unofficially,
released 1.3.0-Alpha, which contains all of those features:
<http://www.sys-net.it/pipermail/mbdyn-devel/2007-August/000112.html>.
It's sort of immature, I'd basically like to have some feedback about
any build issues, as I could only compile it on few combinations of
architectures and Linux distributions. But feel free to give it a try.
> As far as I can see,
> input to them is always provided via scalar functions. There is an example
> for the nlsf viscoelastic law. In the definition of the corresponding
> scalar function, the word "coefficient" seems to indicate where the
> epsilon^dot
> should go.
I think the formulas, although not quite well rendered in html, should
be self explanatory. The nlsf constitutive law is made of an optional
linear part that is specified as a pair of fully coupled constant
matrices and that multiply the strain (k') and the strain rate (k''),
respectively, and a nonlinear part that is diagonal, a linear
combination of a strain-dependent (f') and a strain rate-dependent (f'')
function. I understand this is not as general as it could be, but it
was designed under very specific requirements.
> Or am I wrong? How will this look like in a multilinear function
> or the sum, sub, etc. operations? Is it possible to do something like:
> scalar function: "first_factor", const, coefficient;
> scalar function: "second_factor", const, coefficient;
> scalar function: "quadratic", mul, "first_factor", "second_factor"
> constitutive law: 1000, 1, nlsf viscoelastic, 10.0, null, 0.0, "quadratic"
I think the above would not work much like you expect, if I got you
right. In fact, by multiplying two const functions you'd get another
const coefficient. If what you want to obtain is a function that is
linear wrt/ the strain and quadratic wrt/ the strain rate, you should use:
scalar function: "viscous_factor", const, d;
scalar function: "viscous_quadratic", pow, 2;
scalar function: "viscous", mul, "viscous_factor", "viscous_quadratic";
constitutive law: 1000, 1, nlsf viscoelastic, 10.0, null, 0.0, "viscous"
so that the const "viscous_factor" multiplies the power of two function
of the strain rate "viscous_quadratic", and the result is added to 10.0
times the strain.
But I might be not 100% right, as I'm not quite familiar with scalar
functions; perhaps Marco Morandini will correct me, if he's online.
> There is maybe a small typo in the example of the nlp-law:
> The matrix shown there is "diag" but it should probably be "sym".
Right, thanks. I'll fix it ASAP.
Cheers, p.
PS: BTW, can you tell us what you're using MBDyn for, or what you plan
to use it for? If you have a link to a site that describes your
activity, that would be great.
More information about the Mbdyn-users
mailing list