====== 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'' | [[doc:user:general:locks|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'' et ''SPRING_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 [[#Materials|material]] is defined, it must be associated to an ''[[doc:user:elements:general:def_element_properties|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''| [[doc:user:general:locks|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 ''[[#Interaction|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 \\ Not applicable, only the numerical one exists ! | - | | ''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'' ''[[#Element|ElementProperties]]'' is defined, the corresponding interaction is generated with the ''FieldApplicator''. To do so, the corresponding geometric mesh element must be generated using [[doc:user:geometry:mesh:1D]]. 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'' | [[doc:user:elements:general:def_element_properties|Properties]] of [[#spring_2_3_delement|spring elements]] to generate.|