Table of Contents
Spring
Materials
A spring (linear or not, with or without failure criterion) 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 | spring number (must be unique for all element in materialset , not just for springs) |
type | type of spring (for example ConstantSpringMaterial ) |
param | name of the spring parameter (for example SPRING_FK ) |
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) |
ConstantSpringMaterial
Description
Linear spring
Parameters
Name | Metafor Code | Dependency |
---|---|---|
Stiffness | SPRING_FK | - |
Damping coefficient | SPRING_FC | - |
NonLinearSpringMaterial
Description
Nonlinear spring.
Parameters
Name | Metafor Code | Dependency |
---|---|---|
Amplitude of the associated stiffness force as a function of the elongation. This force is described by the associated nf function. Careful, this function must also be described for negative elongation (compression) | SPRING_FK | GD |
Amplitude of the associated damping force as a function of the elongation rate. This force is described by the associated nf function. Careful, this function must also be described for negative elongation rates | SPRING_FC | GV |
Remarks :
SPRING_FK
etSPRING_FC
are forces and not stiffness/damping coefficient (unlike ConstantSpringMaterial)- the dependency is written as :
materialset(no).depend(SPRING_FK,fct1,Field1D(TX,RE))
materialset(no).depend(SPRING_FC,fct2,Field1D(TX,GV))
BreakingSpringMaterial
Description
Nonlinear spring with failure criterion.
Parameters
Name | Metafor Code | Dependency |
---|---|---|
Stiffness | SPRING_FK | - |
Damping coefficient | SPRING_FC | - |
Maximal length of the spring. Above, failure appears and forces are equal to zero. This length can depend on time though nf | SPRING_LMAX | TM |
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 ...
where
typeEl | desired element (for example Spring[2|3]DElement ) |
param1 | name of the property associated to the element (for example MATERIAL to associate the desired material) |
value1 | value of the corresponding property |
fct1 | function which characterizes the dependency of the property (optional: no fct if no dependency) |
Lock1 | Lock which defines the dependency variable of the property (compulsory if there is a dependency) |
Spring[2|3]DElement
Nonlinear spring element. Associates two nodes with a stiffness. No axisymmetric correction is implemented. They must be associated with a FieldApplicator
interaction.
Parameters
Name | Metafor Code | Dependency |
---|---|---|
MATERIAL | Number of the spring material to consider | - |
STIFFMETHOD | Method used to compute the stiffness matrix = STIFF_ANALYTIC : analytic matrix (default)= STIFF_NUMERIC : numerical matrix | - |
SPRING_LI | Defines the spring length “at rest” (relevant or not depending on the value of SPRING_CLI) | |
SPRING_CLI | Defines the way the “length at rest” (lengthIni ) will be computed assume L0 is the measured length at the end of the preprocessing (geometrical length) = 0 : lengthIni = L0 (default - do not require SPRING_LI) = 1 : lengthIni = SPRING_LI = 2 : lengthIni = L0 * SPRING_LI = 3 : lengthIni = L0 + SPRING_LI | - |
Interaction
Finally, once the Spring[2|3]DElement
ElementProperties
is defined, the corresponding interaction is generated with the FieldApplicator
. To do so, the corresponding geometric mesh element must be generated using 1D Meshers (Curves). Once done, the interaction can be defined and included in the interactionset
:
app = FieldApplicator(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(FieldApplicator(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 FieldApplicator ) |
gObject1 | mesh geometric entity where the finite elements are applied |
prp | Properties of spring elements to generate. |