KratosMultiphysics / Kratos

Kratos Multiphysics (A.K.A Kratos) is a framework for building parallel multi-disciplinary simulation software. Modularity, extensibility and HPC are the main objectives. Kratos has BSD license and is written in C++ with extensive Python interface.
https://kratosmultiphysics.github.io/Kratos/
Other
1.01k stars 244 forks source link

[Structural] Lumped factors in Massmatrix for TL #8457

Closed KlausBSautter closed 1 year ago

KlausBSautter commented 3 years ago

Hi, I stumbled across the following lines in the base solid element: https://github.com/KratosMultiphysics/Kratos/blob/53f15798b4dc46d8a0f60c3ca1cbece0be3a1557/applications/FemToDemApplication/custom_elements/base_solid_element.cpp#L1689-L1698

and ran a simple test with a hexahedron and a tetrahedron: check_lump.gid.zip

With the lumped mass matrix enabled. Because I wanted to use the GetGeometry().LumpingFactors( lumping_factors ) for the membrane element too. But when I checked the lumping factors I saw that they were changing for the hexahedron within the dynamic simulation.

e.g. : lumping_factors : (0.125,0.125,0.125,0.125,0.125,0.125,0.125,0.125) lumping_factors : (0.121928,0.121928,0.128072,0.128072,0.121928,0.121928,0.128072,0.128072) lumping_factors : (0.126804,0.126804,0.123196,0.123196,0.126804,0.126804,0.123196,0.123196)

For the tetrahedron and a triangle, the lumping factors are the same anyway all the time (independent of the shape). But for quads and hexahedrons, the lumping factors of course depend on the shape but for a TL element formulation they should stay constant over time. I talked to colleagues (@rolandwuechner) and they agreed with me on that, let me know if this is wrong.

So I calculate the lumping factors w.r.t. the reference configuration for the membrane element and I am wondering if this is a mistake for the total lagrangian element which inherits from the base solid element and apparently re-calculates the lumping factors based on the current configuration.

loumalouomega commented 3 years ago

This may be because there are three algorithms for the lumped factors in the geometry. Maybe there is an error in the input.

philbucher commented 3 years ago

probably again an issue that we cannot compute stuff on the original configuration

loumalouomega commented 3 years ago

probably again an issue that we cannot compute stuff on the original configuration

That makes even more sense

KlausBSautter commented 3 years ago

This may be because there are three algorithms for the lumped factors in the geometry. Maybe there is an error in the input.

I checked the other options and from lumping_factors : (0.125,0.125,0.125,0.125,0.125,0.125,0.125,0.125)

we get lumping_factors : (0.119421,0.119421,0.130579,0.130579,0.119421,0.119421,0.130579,0.130579) lumping_factors : (0.116633,0.116633,0.133367,0.133367,0.116633,0.116633,0.133367,0.133367) lumping_factors : (0.108636,0.108636,0.142112,0.142112,0.108636,0.108636,0.142112,0.142112) for the 3 different enum possibilities at the end of the dynamic simulation.

So I guess this is wrong right now?

loumalouomega commented 3 years ago

This may be because there are three algorithms for the lumped factors in the geometry. Maybe there is an error in the input.

I checked the other options and from lumping_factors : (0.125,0.125,0.125,0.125,0.125,0.125,0.125,0.125)

we get lumping_factors : (0.119421,0.119421,0.130579,0.130579,0.119421,0.119421,0.130579,0.130579) lumping_factors : (0.116633,0.116633,0.133367,0.133367,0.116633,0.116633,0.133367,0.133367) lumping_factors : (0.108636,0.108636,0.142112,0.142112,0.108636,0.108636,0.142112,0.142112) for the 3 different enum possibilities at the end of the dynamic simulation.

So I guess this is wrong right now?

Probably should be computed at the reference configuration. But the methods are correct. It is documented in the code and with the proper tests

KlausBSautter commented 3 years ago

Probably should be computed at the reference configuration.

Yes, that is what I meant :)

RiccardoRossi commented 3 years ago

do think into account that the density distribution would also vary.

considering tjat the mass should remain the same

On Tue, Mar 9, 2021, 5:30 PM Klaus Bernd Sautter notifications@github.com wrote:

Probably should be computed at the reference configuration.

Yes, that is what I meant :)

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/KratosMultiphysics/Kratos/issues/8457#issuecomment-794125649, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB5PWEOK2OUCQNGGFGXG2JLTCZELJANCNFSM4Y34Y44A .

loumalouomega commented 3 years ago

I will post a potential solution soon, but one point @AlejandroCornejo do you still have your solid copy/pasted?, you will need to update to recent changes or unify to depend on the StructuralApp.

sunethwarna commented 1 year ago

@KratosMultiphysics/technical-committee is concerned about the issue raised by @RiccardoRossi, hence we would not promote using these lumping factors as their usage is unsafe in some specific cases.