Re: [chrono] ChBody Mass Matrix - Are nonuniform translational inertias possible?

55 views
Skip to first unread message

Letournel Lucas

unread,
Mar 8, 2021, 3:26:40 AM3/8/21
to projec...@googlegroups.com

Hello David,

We actually changed the mass variable of Chrono, to a 6x6 mass matrix including added mass, in FRyDoM (see links below), which is based on Chrono v4.0.

It's a bit tricky, and a colleague of mine implemented it, so I can only give you the basic concept : we derived ChVariables to FrVariablesAddedMass in which we can modify the mass matrix and added this new variable in FrBodyBase, which derived from ChBodyAuxRef. We had to override IntToDescriptor and IntFromDescriptor methods to take into account this new variable, and all methods related to the manipulation of the variable.

We then set this variable in FrMorisonModelBase::SetupInitial() (same method in FrRadiationModelBase, for the radiation with the potential linear theory). We can change the added mass, computed with the Morison theory at each time step, in FrMorisonModelBase::Update. We also had to override IntLoadResidual_Mv method, since our Morison model is based on a ChPhysicsItem class.

While this method give good results with multi bodies simulations, including kinematic links, from Chrono, we are aware that it does not work when we have FEA elements. It's a limitation related to the solving methods in the ChMesh, which cannot take into account the new variables injected in the bodies, that we still need to work on.

You can take a look in FRyDoM at

you need to register to be able to check the source code and user manual, even if FRyDoM is opensource.

Best regards,

Lucas

Le 27/02/2021 à 14:59, 'David Marten' via ProjectChrono a écrit :
Dear all,

I have a question regatding the mass matrix of a ChBody.

Is it possible to assign non-uniform translational inertias to the ChBody?

When I look at the source code I see that it is only possible to assign the translational inertias for all 3 entries with a single value.
So M(0,0), M(1,1) and M(2,2) are assigned with the "mass" entry from ChVariablesBodyOwnMass. Would it be possible to assign different values for the x-y and z direction through a modification of the code, or in other words, would the solver take this into account?

A further question related to this is then which entry of the mass matrix is used for the calculation of gravity force? Is simply the "mass" variable used or is a value (probably M(0,0)? ) read from the mass matrix directly?

The reason I am asking is because I am currently working on hydrodynamics of floating bodies and I am trying to circumvent the "added mass instability" that arised from a direct evaluation of the added mass term in the Morison equation by modifying the inertias of the bodies...

Best regards,

David
--
You received this message because you are subscribed to the Google Groups "ProjectChrono" group.
To unsubscribe from this group and stop receiving emails from it, send an email to projectchron...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/projectchrono/81a615ab-945b-427e-9bee-ac059dd55a99o%40googlegroups.com.

David Marten

unread,
Mar 10, 2021, 11:09:30 AM3/10/21
to ProjectChrono
Hi Lucas,

thanks a lot for your suggestion! I am already aware of Frydom and had a look at the source a couple of times - but this was in an outdated public repository I found on github (https://github.com/baptistelabat/frydom) where the changes you mentioned were not implemented yet.
I was actually wondering how you managed to handle the added mass. But after registering I found the changed you mentioned! I was already thinking about a similar modification but was a bit unsure whether things would work out in the end and hesitant at the same time to mess around with the solver interface...

A couple of days ago I came across the proteustoolkit, which also implemented similar modifications to the ChVariable and ChBody classes (https://proteustoolkit.org/capi/html/_ch_variables_body_added_mass_8cpp_source.html). In the end this worked for me with only minimal modifications needed!
Im very happy now that the added mass issue is solved for my developments - it was giving me quite some headache for a while...

So again, thanks a lot for your suggestions and great work on Frydom! I had a look at your theory manual quite often and will probably reproduce some of your benchmarks pretty soon. Some of the developments that Im working on at the moment are actually done in the framework of a EU H2020 project that is also involving some of your colleagues at ECN!

Best regards,

David

christiane savaria

unread,
Mar 22, 2021, 3:19:48 AM3/22/21
to ProjectChrono
Reply all
Reply to author
Forward
0 new messages