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) |
Constant, punctual mass
Name | Metafor Code |
---|---|
Mass | MASS_DENSITY |
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) |
Punctual mass element. They must be associated to a Mechanism0DInteraction
.
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 | - |
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. |