Kratos: mass-points on mechanical structures

Created on 7 May 2018  路  14Comments  路  Source: KratosMultiphysics/Kratos

I am trying to add on a 3D structure mass-points on certain nodes of the mesh in order to modify the vibrational behavior of the structure itself (move the natural frequencies into accepted ranges). I was looking in the applications for something like lumped mass element definitions ore similar, but I could not find one. Which elements could I use and how can they be controlled? Any help would be appreciated!

Question

All 14 comments

hi @veiguf
What you are looking for is the NodalConcentratedElement

@philbucher Thank you very much!

Is there maybe also a helpful example from which I could directly see how to assign a mass to the elements?

This test uses the element, I think this shows nicely how to use it

@veiguf I am closing since I think it is solved, please reopen if there are remaining questions

@veiguf and I did the modeling and meshing for this problem with GiD. Can we just alter the code that GiD automatically generates to add mass-points elements on a volume model?

For instance, the pseudo code to add a single mass-point element on a node that exists in the volume model with a mass and zero stiffness and zero damping:

mass = 1
stiffness = 0
damping = 0
element = main_model_part.CreateNewElement("NodalConcentratedElement3D1N", 99999, [1], None)  #also tried NodalConcentratedDampedElement3D1N
element.SetValue(NODAL_MASS, mass)
element.SetValue(NODAL_STIFFNESS, [0, stiffness, 0])
element.SetValue(NODAL_DAMPING_RATIO , [0, damping, 0])

Does this make sense? Or am I "barking up the wrong tree"?
When I try this it does not seem to change anything. Do I need to update the model or something? Or did I miss something else?

Thanks in advance!

How do you check if it鈥檚 working?

I will ask @jginternational to add the nodal concentrated elements to the interface

@philbucher I checked quite pragmatically: Lots of mass to lots of nodes, which resulted in zero change in the eigenvalue analysis.

@e-dub thx for the info, we will investigate this

@qaumann @msandre do you have an idea why this is happening?
@qaumann have you used these elems for the calculation of eigenfreqs already?

@philbucher I would expect that it works with the eigensolver, you can look at Kratos/applications/StructuralMechanicsApplication/custom_strategies/custom_schemes/eigensolver_dynamic_scheme.hpp to see how the element is called. I'm not sure what element = main_model_part.CreateNewElement("NodalConcentratedElement3D1N", 99999, 1, None) is doing. I thought it needs a list of node ids.

Also setting some break points in the element functions you expect to be called may provide some insight.

@msandre I corrected the code, I forgot the brackets around node 1:
element = main_model_part.CreateNewElement("NodalConcentratedElement3D1N", 99999, [1], None)
I have the thing in a loop and at each instance, I make a new one-node element.

Could you find if it is calling the element in the build? If not, check if it is in the correct submodel part. It might need to be in something like computing model part.

Thx @msandre this should be the solution:
@e-dub you have to add the mass elements to the ComputingModelPart, since this is the one that is being passed to the Solver(Strategy):
element = computing_model_part.CreateNewElement("NodalConcentratedElement3D1N", 99999, [1], None)

Yes!!!
I modified MainKratos.py from GiD by adding the following before the while loop for solving:

mass = 1000
stiffness = 0
damping = 0
computing_model_part = solver.GetComputingModelPart()
element = computing_model_part.CreateNewElement("NodalConcentratedElement3D1N", 99999, [1], None) 
element.SetValue(NODAL_MASS, mass)
element.SetValue(NODAL_STIFFNESS, [0, stiffness, 0])
element.SetValue(NODAL_DAMPING_RATIO , [0, damping, 0])

And as expected, the eigenvalues change drastically!

Thanks guys!

Was this page helpful?
0 / 5 - 0 ratings