This is an old revision of the document!
Table of Contents
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 | 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 material, 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 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 | 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 (2D Meshers (Surfaces)).
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
Même élément que LinearShellSecondDegreeElement
, mais basé sur un maillage du second degré à 9 noeuds 2D Meshers (Surfaces).
La partie membrane peut être intégrée sur dim*3
points d'intégration en considérant des modes EAS, voir paramètres.
La partie bending peut être intégrée sur dim*3
points d'intégration en considérant des modes EAS, voir paramètres.
LinearShellSixteenNodeThirdDegreeElement
Même élément que LinearShellNineNodeSecondDegreeElement
, mais basé sur un maillage du troisième degré à 16 noeuds 2D Meshers (Surfaces).
La partie membrane est tjs intégrée sur dim*4
points d'intégration sans modes EAS (pas de locking), voir paramètres.
La partie bending est tjs intégrée sur dim*4
points d'intégration sans modes EAS (pas de locking), voir paramètres.
Parameters
Name | Metafor Code | Dependency |
---|---|---|
MATERIAL | Numéro du matériau à considérer | - |
STIFFMETHOD | Méthode pour calculer la matrice de raideur = STIFF_ANALYTIC : matrice analytique (défaut)= STIFF_NUMERIC : matrice numérique | - |
GRAVITY_X / GRAVITY_Y / GRAVITY_Z | Accélération de gravité | temps |
THICKNESS | épaisseur initiale | - |
MEMBRANE_NPG | Nombre de points d'intégration selon une direction pour la résolution de la membrane = 2 résolution classique (pour second degré) = 3 résolution EAS avec 11 ou 13 modes ajoutés (pour second degré à 9 ou 8 noeuds) = 4 résolution sans EAS (pour troisième degré à 16 noeuds) | - |
BENDING_NPG | nombre de points d'intégration selon une direction pour la résolution de la flexion = 2 résolution classique (pour second degré) = 3 résolution EAS avec 22 ou 7 modes ajoutés(pour second degré à 9 ou 8 noeuds) = 4 résolution sans EAS (pour troisième degré à 16 noeuds) | - |
Interactions
Les éléments de coque se génèrent de la même manière que les éléments de volume, i.e. à l'aide d'une interaction de type FieldApplicator
. Il faudra alors les compléter par des éléments d'interface de type DG pour garantir leur consistance.
app = FieldApplicator(no) app.push(gObject1) app.push(gObject2) ... app.addProperty(prp) # association d'un ElementProperties interactionset.add(app) # ajout dans l'InteractionSet
ou
app = interactionset.add(FieldApplicator(no)) #add renvoie une référence app.push(gObject1) app.push(gObject2) ... app.addProperty(prp) # association d'un ElementProperties
where
no | numéro de l' Interaction (c-à-d du FieldApplicator ) |
gObject1 | l'entité géométrique maillée sur laquelle on applique des éléments finis |
prp | Propriétés des éléments de coque à générer. |