====== Shells====== ===== Materials ===== The definition of shell finite elements follows the same logic as volume elements. First, a material is defined: materialno = materialset.define (number, type) materialno = materialset(number) materialno.put(param, value) materialno.depend(param, fct, Key(Lock))) ... |''number'' | material number (must be unique with respect to all elements in ''materialset'', not to shells) | |''type'' | shell type (for example ''LinearShellMaterial'') | |''param'' | name of the shell parameter (for example ''ELASTIC_MODULUS'') | |''value'' | value of the corresponding parameter ''param''| |''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) | ==== LinearShellMaterial ==== === Description === Simple linear elastic law (small strains and displacements). === Parameters === ^ Name ^ Metafor Code ^ Dependency ^ | Density | ''MASS_DENSITY'' | | | Young modulus | ''ELASTIC_MODULUS'' | | | Poisson ratio | ''POISSON_RATIO'' | | ===== Elements ===== After defining the [[#Materials|material]], 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 ''LinearShellFirstDegreeElement'')| |''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) | ==== LinearShellFirstDegreeElement ==== Linear shell elements (small strains small displacements). 4-nodes linear quadrangles. By default, stresses are integrated of ''dim*2'' integration points. A thickness must be defined, see table below. ==== LinearShellSecondDegreeElement ==== Same as ''LinearShellFirstDegreeElement'' but based on a second order mesh ([[doc:user:geometry:mesh:2d]]). The membrane part can be integrated over ''dim*3'' integration points, considering EAS modes, see table below. The bending part can be integrated over ''dim*3'' integration points, considering EAS modes, see table below. ==== LinearShellNineNodeSecondDegreeElement ==== Same as ''LinearShellSecondDegreeElement'' but based on a 9-nodes second order mesh ([[doc:user:geometry:mesh:2d]]). The membrane part can be integrated over ''dim*3'' integration points, considering EAS modes, see table below. The bending part can be integrated over ''dim*3'' integration points, considering EAS modes, see table below. ==== LinearShellSixteenNodeThirdDegreeElement ==== Same as ''LinearShellNineNodeSecondDegreeElement'' but based on a 16-nodes third order mesh ([[doc:user:geometry:mesh:2d]]). The membrane part can be integrated over ''dim*4'' integration points, without EAS modes (no locking), see table below. The bending part can be integrated over ''dim*4'' integration points, without EAS modes (no locking), see table below. === Parameters === ^ Name ^ Metafor Code ^ Dependency ^ | ''MATERIAL'' | Number of the shell material to consider | - | | ''STIFFMETHOD'' | Method used to compute the stiffness matrix \\ = ''STIFF_ANALYTIC'' : analytic matrix (default) \\ = ''STIFF_NUMERIC'' : numerical matrix | - | | ''GRAVITY_X'' / ''GRAVITY_Y'' / ''GRAVITY_Z'' | gravity | time | | ''THICKNESS'' | initial thickness | - | | ''MEMBRANE_NPG'' | Number of integration points along one direction for membrane solving \\ = 2 classical solving (second order)\\ = 3 EAS solving with 11 or 13 added modes (8 or 9-nodes second order)\\ = 4 solving without EAS (16-nodes third order) | - | | ''BENDING_NPG'' | Number of integration points along one direction for membrane solving \\ = 2 classical solving (second order)\\ = 3 EAS solving with 22 or 7 added modes (8 or 9-nodes second order)\\ = 4 solving without EAS (16-nodes third order) | - | ===== Interactions ===== Shell elements are then generated as [[doc:user:elements:volumes:volumeelement|volume elements]], using a ''FieldApplicator'' interaction. Then, they must be completed with a [[doc:user:elements:shells:interface|DG interface element]] to be consistent. 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 shell elements to generate.|