This is an old revision of the document!
Table of Contents
Spring
Matériaux
Le comportement d'un ressort (linéaire ou non, avec ou sans critère de rupture) se définit de la même façon que les matériaux, c'est-à-dire selon
materialno = materialset.define (number, type) materialno = materialset(number) materialno.put(param, valeur) materialno.depend(param, fct, Key(Lock))) ...
number | numéro du ressort (doit être unique, parmi tous les éléments dans materialset et pas seulement parmi les ressorts) |
type | type de ressort (p.expl. ConstantSpringMaterial ) |
param | nom du paramètre du ressort (p.expl. SPRING_FK ) |
valeur | valeur du paramètre param correspondant |
fct | numéro de la fonction dont la propriété dépend (facultatif: si aucune dépendance pas de fct ) |
Lock | Lock définissant la variable de dépendance de la propriété (obligatoire si on a une dépendance) |
ConstantSpringMaterial
Description
Ressort linéaire.
Paramètres
Nom | Code Metafor | Type de dépendance |
---|---|---|
Raideur | SPRING_FK | - |
Coefficient d'amortissement | SPRING_FC | - |
NonLinearSpringMaterial
Description
Ressort non linéaire.
Paramètres
Nom | Code Metafor | Type de dépendance |
---|---|---|
Amplitude de la force de raideur en fonction de l'allongement. Cette force est décrite par la fonction nf associée. Attention, cette fonction doit être décrite aussi pour les allongements négatifs (compression) | SPRING_FK | GD |
Amplitude de la force d'amortissement en fonction de la vitesse d'allongement. Cette force est décrite par la fonction nf associée. Attention, cette fonction doit être décrite aussi pour les vitesses d'allongement négatives | SPRING_FC | GV |
Remarques :
SPRING_FK
etSPRING_FC
sont ici les forces et non raideur/coef amortissement (à la différence de ConstantSpringMaterial)- pour rappel, la dépendance se fait via :
materialset(no).depend(SPRING_FK,fct1,Field1D(TX,RE))
materialset(no).depend(SPRING_FC,fct2,Field1D(TX,GV))
BreakingSpringMaterial
Description
Ressort non-linéaire avec possibilité de rupture.
Paramètres
Nom | Code Metafor | Type de dépendance |
---|---|---|
Raideur | SPRING_FK | - |
Coefficient d'amortissement | SPRING_FC | - |
Longueur maximale admissible par le ressort. Au-delà il y a rupture et les forces sont nulles. Cette longueur peut dépendre du temps via nf | SPRING_LMAX | TM |
Elément
Une fois la matériau défini, il faut l'associer à un ElementProperties
, selon
prp = ElementProperties(typeEl) prp.put(param1, valeur1) prp.depend(param1, fct1, Lock1)) #facultatif ...
où
typeEl | type d'élément souhaité (Spring[2|3]DElement pour des ressorts) |
param1 | nom de la propriété relative à l'élément (p.expl. MATERIAL pour associer le matériau souhaitée) |
valeur1 | “valeur” de la propriété |
fct1 | numéro de la fonction dont la propriété dépend (facultatif: si aucune dépendance pas de fct ) |
Lock1 | Lock définissant la variable de dépendance de la propriété (obligatoire si on a une dépendance) |
Spring[2|3]DElement
Eléments de ressort non linéaire . Relie deux noeuds par une raideur. Aucune correction axisymétrique n'est programmée. Ils doivent être reliés à une interaction de type FieldApplicator
.
Paramètres
Code Metafor | Description | Type de dépendance permise |
---|---|---|
MATERIAL | Numéro du matériau de ressort à considérer | - |
STIFFMETHOD | STIFF_ANALYTIC : matrice analytique (défaut)STIFF_NUMERIC : matrice numérique Pas applicable, seule la matrice numérique existe !!! | - |
SPRING_LI | Paramètre double définissant la longueur “au repos” du ressort (selon valeur SPRING_CLI) | |
SPRING_CLI | Paramètre entier définissant la méthode de calcul de la longueur “au repos” du ressort (lengthIni dans le code) soit L0 longueur du ressort mesurée en fin de prépro (longueur géométrique) = 0 : lengthIni = L0 (defaut - ne nécessite pas SPRING_LI) = 1 : lengthIni = SPRING_LI = 2 : lengthIni = L0 * SPRING_LI = 3 : lengthIni = L0 + SPRING_LI | - |
Interaction
Enfin, lorsque l' ElementProperties
de type Spring[2|3]DElement
est défini, on génère l'interaction correspondante à l'aide du FieldApplicator
. Pour ce faire, il faut d'abord créer la géométrie de l'élément correspondant (maille) au moyen du 1D Meshers (Curves). Ceci fait, on peut alors définir l'interaction et l'inclure dans interactionset
, selon
app = FieldApplicator(no) app.push(gObject1) app.push(gObject2) ... app.addProperty(prp) # association d'un ElementProperties interactionset.add(app) # ajout dans l'InteractionSet
ou selon
app = interactionset.add(FieldApplicator(no)) #add renvoie une référence app.push(gObject1) app.push(gObject2) ... app.addProperty(prp) # association d'un ElementProperties
où
no | Numéro de l' Interaction (c-à-d du FieldApplicator ) |
gObject1 , gObject2 | Entité géométrique maillée sur laquelle on applique des éléments finis |
prp | Propriétés des éléments de ressort à générer. |