Table of Contents

Mass

Materials

A mass is defined is the same way as volume materials:

materialno = materialset.define (number, type)
materialno = materialset(number)
materialno.put(param, value)
materialno.depend(param, fct, Key(Lock)))
...
number mass number (must be unique for all element in materialset, not just for mass elements)
type type of mass (for example ConstantMassMaterial)
param name of the mass parameter (for example MASS_DENSITY)
value value of the corresponding parameter
fct function which characterizes the dependency of the property (optional: no fct if no dependency)
Lock Lock which defines the dependency variable of the property (compulsory if there is a dependency)

ConstantMassMaterial

Description

Constant, punctual mass

Parameters

Name Metafor Code
Mass MASS_DENSITY

Element

Once the material is defined, it must be associated to an ElementProperties:

prp = ElementProperties(typeEl)
prp.put(param1, value1)
prp.depend(param1, fct1, Lock1)) #facultatif
prp.put(param2, value2)
prp.depend(param2, fct2, Lock2)  # facultatif
...

where

typeEl desired element (for example Mass[2|3]DElement for mass elements)
param1, param2 name of the property associated to the element (for example MATERIAL to associate the desired material)
valeur1, valeur2 value of the corresponding property
fct1, fct2 function which characterizes the dependency of the property (optional: no fct if no dependency)
Lock1, Lock2 Lock which defines the dependency variable of the property (compulsory if there is a dependency)

Mass[2|3]DElement

Punctual mass element. They must be associated to a Mechanism0DInteraction.

Parameters

Name Metafor Code Dependency
MATERIAL Number of the mass material to consider -
STIFFMETHOD Method used to compute the stiffness matrix
= STIFF_ANALYTIC : analytic matrix (default)\\= STIFF_NUMERIC : numerical matrix
-
OMEGA Angular speed (°/s) to take into account centrifugal forces.
In an dynamic implicit integration scheme (AlphaGeneralizedTimeIntegration or DampedAlphaGeneralizedTimeIntegration) with setUseInitialRotationBalancing(True), centrifugal forces are computed during a quasi-static equilibrium phase.
time
OMEGA_PT1 Number of the first point which defines the rotation axis. Can be moved. -
OMEGA_PT2 Number of the first point which defines the rotation axis. Can be moved. -
GRAVITY_X / GRAVITY_Y / GRAVITY_Z gravity time
CORIOLIS Computing Coriolis forces in QS integration scheme -

Interaction

Finally, once the Mass[2|3]DElement ElementProperties is defined, the corresponding interaction is generated with the Mechanism0DInteraction on meshed objects. If the object is not meshed (ex applying mass to force driven contact tool), the corresponding geometric mesh element must be generated using 0D Meshers (Points). Once done, the interaction can be defined and included in the interactionset:

app = Mechanism0DInteraction(no)
app.push(gObject1)
app.push(gObject2)
...
app.addProperty(prp)        # association of an ElementProperties
interactionset.add(app)     # the interaction is added in InteractionSet 

or

app = interactionset.add(Mechanism0DInteraction(no)) #add returns a reference
app.push(gObject1)
app.push(gObject2)
...
app.addProperty(prp)        # association of an ElementProperties

where

no number of the Interaction (which is to say the Mechanism0DInteraction)
gObject1 mesh geometric entity where the finite elements are applied
prp Properties of mass elements to generate.