u4.52.14 Opérateur MODE_STATIQUE#
Syntaxe#
Détail de la syntaxe
mode_meca = MODE_STATIQUE(
◇ CHAM_MATER = cham_mater,
◇ CARA_ELEM = cara_elem,
◆ MATR_RIGI = matr_asse_depl_r,
◇ & MATR_MASS = matr_asse_depl_r,
◆ / MODE_INTERF = _F(
◆ / TOUT = "OUI" (ou non renseigné),
/ GROUP_NO = grno,
◆ / TOUT_CMP = "OUI" (ou non renseigné),
/ AVEC_CMP = text,
/ SANS_CMP = text,
◇ NB_MODE = int (défaut: 1),
◇ SHIFT = float (défaut: 1.0),
),
/ PSEUDO_MODE = _F(
◆ / AXE = / "X",
/ "Y",
/ "Z",
/ DIRECTION = float,
/ TOUT = "OUI" (ou non renseigné),
/ GROUP_NO = grno,
/ CORRELE = / "OUI",
/ "NON" (par défaut),
# Si: equal_to("CORRELE", 'OUI')
◆ NOM_APPUI = text,
# Si: exists("DIRECTION")
◆ NOM_DIR = text,
# Si: exists("TOUT") or exists("NOEUD") or exists("GROUP_NO")
◆ / TOUT_CMP = "OUI" (ou non renseigné),
/ AVEC_CMP = text,
/ SANS_CMP = text,
),
/ MODE_STAT = _F(
◆ / TOUT = "OUI" (ou non renseigné),
/ GROUP_NO = grno,
◆ / TOUT_CMP = "OUI" (ou non renseigné),
/ AVEC_CMP = text,
/ SANS_CMP = text,
),
/ FORCE_NODALE = _F(
◆ / TOUT = "OUI" (ou non renseigné),
/ GROUP_NO = grno,
◆ / TOUT_CMP = "OUI" (ou non renseigné),
/ AVEC_CMP = text,
/ SANS_CMP = text,
),
⟐ SOLVEUR = _F(
◇ METHODE = / "MULT_FRONT",
/ "LDLT",
/ "MUMPS" (par défaut),
/ "GCPC",
/ "PETSC",
# Si: equal_to("METHODE", 'MULT_FRONT')
◇ RENUM = / "MD",
/ "MDA" (par défaut),
◇ NPREC = int (défaut: 8),
◇ ELIM_LAGR = / "OUI",
/ "NON" (par défaut),
◇ STOP_SINGULIER = / "OUI" (par défaut),
/ "NON",
# Si: equal_to("METHODE", 'LDLT')
◇ RENUM = "RCMK",
◇ NPREC = int (défaut: 8),
◇ ELIM_LAGR = / "OUI",
/ "NON" (par défaut),
◇ STOP_SINGULIER = / "OUI" (par défaut),
/ "NON",
# Si: equal_to("METHODE", 'MUMPS')
◇ RENUM = / "AMD",
/ "AMF",
/ "PORD",
/ "METIS",
/ "QAMD",
/ "SCOTCH",
/ "AUTO" (par défaut),
/ "PARMETIS",
/ "PTSCOTCH",
◇ NPREC = int (défaut: 8),
◇ ELIM_LAGR = / "OUI",
/ "NON",
/ "LAGR2" (par défaut),
◇ STOP_SINGULIER = / "OUI" (par défaut),
/ "NON",
◇ TYPE_RESOL = / "NONSYM",
/ "SYMGEN",
/ "SYMDEF",
/ "AUTO" (par défaut),
◇ ACCELERATION = / "AUTO" (par défaut),
/ "FR",
/ "FR+",
/ "FR++",
/ "LR",
/ "LR+",
/ "LR++",
◇ LOW_RANK_SEUIL = float,
◇ PRETRAITEMENTS = / "SANS",
/ "AUTO" (par défaut),
◇ POSTTRAITEMENTS = / "SANS",
/ "AUTO" (par défaut),
/ "FORCE",
/ "MINI",
◇ PCENT_PIVOT = int (défaut: 35),
◇ REDUCTION_MPI = int,
◇ NB_RHS = int (défaut: -128),
◇ RESI_RELA = float (défaut: 1e-06),
◇ GESTION_MEMOIRE = / "IN_CORE",
/ "OUT_OF_CORE",
/ "AUTO" (par défaut),
/ "EVAL",
# Si: equal_to("METHODE", 'GCPC')
◇ ELIM_LAGR = / "OUI",
/ "NON" (par défaut),
◇ PRE_COND = / "LDLT_INC" (par défaut),
/ "LDLT_SP",
/ "LDLT_DP",
◇ RESI_RELA = float (défaut: 1e-06),
◇ NMAX_ITER = int,
# Si: equal_to("PRE_COND", 'LDLT_INC')
◇ RENUM = "RCMK",
◇ NIVE_REMPLISSAGE = int,
# Si: is_in("PRE_COND", ('LDLT_SP', 'LDLT_DP'))
◇ RENUM = / "SANS",
/ "METIS",
/ "PARMETIS" (par défaut),
◇ REAC_PRECOND = int (défaut: 30),
◇ PCENT_PIVOT = int (défaut: 20),
◇ GESTION_MEMOIRE = / "IN_CORE",
/ "AUTO" (par défaut),
◇ LOW_RANK_SEUIL = float,
# Si: equal_to("METHODE", 'PETSC')
◇ ELIM_LAGR = / "OUI",
/ "NON" (par défaut),
◇ ALGORITHME = / "CG",
/ "CR",
/ "GMRES",
/ "GCR",
/ "FGMRES" (par défaut),
/ "GMRES_LMP",
◇ OPTION_PETSC = text,
◇ PRE_COND = / "LDLT_INC",
/ "LDLT_SP" (par défaut),
/ "LDLT_DP",
/ "JACOBI",
/ "SOR",
/ "ML",
/ "BOOMER",
/ "GAMG",
/ "BLOC_LAGR",
/ "FIELDSPLIT",
/ "UTILISATEUR",
/ "HPDDM",
/ "SANS",
◇ RESI_RELA = float (défaut: 1e-06),
◇ NMAX_ITER = int,
# Si: equal_to("PRE_COND", 'LDLT_INC')
◇ RENUM = "RCMK",
◇ NIVE_REMPLISSAGE = int,
◇ REMPLISSAGE = float (défaut: 1.0),
# Si: is_in("PRE_COND", ('LDLT_SP', 'LDLT_DP'))
◇ RENUM = / "SANS",
/ "METIS",
/ "PARMETIS" (par défaut),
◇ REAC_PRECOND = int (défaut: 30),
◇ PCENT_PIVOT = int (défaut: 20),
◇ GESTION_MEMOIRE = / "IN_CORE",
/ "AUTO" (par défaut),
◇ LOW_RANK_SEUIL = float,
# Si: equal_to("PRE_COND", 'ML')
◇ RENUM = "SANS",
# Si: equal_to("PRE_COND", 'BOOMER')
◇ RENUM = "SANS",
# Si: equal_to("PRE_COND", 'GAMG')
◇ RENUM = "SANS",
# Si: equal_to("PRE_COND", 'HPDDM')
◇ RENUM = "SANS",
# Si: equal_to("PRE_COND", 'BLOC_LAGR')
◇ RENUM = "SANS",
# Si: is_in("PRE_COND", ('FIELDSPLIT'))
◇ RENUM = "SANS",
◇ PARTITION_CMP = int,
◇ NOM_CMP = text,
# Si: is_in("PRE_COND", ('UTILISATEUR'))
◇ KSP_UTIL = not_checked,
◇ RENUM = "SANS",
# Si: is_in("PRE_COND", ('JACOBI','SOR','SANS'))
◇ RENUM = / "SANS" (par défaut),
/ "RCMK",
),
◇ TITRE = text,
◇ INFO = / 1 (par défaut),
/ 2,
)
◆ : obligatoire
◇ : optionnel
⟐ : présent par défaut
& : ensemble
/ : un seul parmi
| : plusieurs choix possibles
Opérandes#
Opérande MATR_RIGI#
♦ MATR_RIGI = rigi
Matrice de rigidité de la structure isostatique ou hyperstatique.
Opérande MATR_MASS#
◊ MATR_MASS = masse
Matrice de masse de la structure isostatique ou hyperstatique.
Opérande CHAM_MATER#
◊ CHAM_MATER = chmat
Nom du champ de matériau.
Opérande CARA_ELEM#
◊ CARA_ELEM = carac
Nom des caractéristiques des éléments de poutre, coque etc.
Nature des sollicitations appliquées#
mot-clé MODE_STAT#
♦ / MODE_STAT
mot-clé facteur pour la définition des modes statiques à déplacement imposé unitaire. Ces modes interviennent pour déterminer le chargement dû au mouvement d’entraînement multi-appuis sous une excitation sismique (opérateur CALC_CHAR_SEISME [U4.63.01]) (cf. référence [R4.05.01]) ou pour introduire les déplacements aux ancrages multi-appuis en analyse spectrale (opérateur COMB_SISM_MODAL [U4.84.01]) (cf. référence [R4.05.03]). Voir exemple §4.1.
Opérandes TOUT/GROUP_NO#
♦ / TOUT = 'OUI'
Calcul des modes sur tous les nœuds du système qui ont des ddl bloqués.
/ GROUP_NO = g_noeu
Calcul des modes sur les groupes de nœuds g_noeu (sous-ensemble des nœuds bloqués).
Opérandes TOUT_CMP/AVEC_CMP/SANS_CMP#
♦ / TOUT_CMP = 'OUI'
Calcul des modes sur toutes les composantes bloquées aux nœuds définis précédemment.
/ AVEC_CMP = l_cmp
Calcul des modes sur les composantes citées seulement.
/ SANS_CMP = l_cmp
Calcul des modes en excluant les composantes citées.
mot-clé FORCE_NODALE#
/ FORCE_NODALE
mot-clé facteur pour la définition des modes statiques à force imposée unitaire. Ces modes interviennent pour compléter une base modale de modes propres de vibration (opérateur DEFI_BASE_MODALE [U4.64.02] ou DYNA_ALEA_MODAL [U4.53.22]). Cf. référence [R5.06.01] et voir exemple §4.2.
Opérande TOUT/GROUP_NO#
♦ / TOUT = 'OUI'
Calcul des modes sur tous les nœuds du système qui ont des ddl libres .
/ GROUP_NO = g_noeu
Calcul des modes sur les groupes de nœuds g_noeu.
Opérandes TOUT_CMP/AVEC_CMP/SANS_CMP#
♦ / TOUT_CMP = 'OUI'
Calcul des modes sur toutes les composantes libres aux nœuds définis précédemment.
/ AVEC_CMP = l_cmp
Calcul des modes sur les composantes citées seulement.
/ SANS_CMP = l_cmp
Calcul des modes en excluant les composantes citées.
mot-clé PSEUDO_MODE#
/ PSEUDO_MODE
mot-clé facteur pour la définition des modes statiques (ou pseudo-modes) à accélération imposée unitaire. Ces modes interviennent pour compléter une base modale de modes propres de vibration (opérateur DEFI_BASE_MODALE [U4.64.02] ou DYNA_ALEA_MODAL [U4.53.22]) (cf. référence [R5.06.01], pour déterminer les modes de correction en analyse spectrale (opérateur COMB_SISM_MODAL [U4.84.01], mot-clé MODE_CORR) (cf. référence [R4.05.03]). On traite le cas mono-appui (opérandes AXE/DIRECTION, voir exemple §4.3) ou multi-appuis (opérande GROUP_NO et * CMP, voir exemple §4.4).
OpérandesAXE/DIRECTION/NOM_DIR#
♦ / AXE = l_axe
Calcule des modes suivant les axes du repère global donnés (l_axe), ces axes étant \('X'\) , \('Y'\) et \('Z'\) .
♦ / DIRECTION = l_dir
Calcule le mode suivant la direction donnée(l_dir)
(l_dir) : vecteur directeur à 3 composantes.
♦ NOM_DIR = n_dir
Nom utilisateur que l’on désire donner au mode calculé dans la direction (\({n}_{\mathrm{dir}}\) ). Par défaut le nom est DIR_N, \(N\) étant le numéro du mode statique.Ce nom est obligatoire.
Opérandes TOUT/GROUP_NO#
♦ / TOUT = 'OUI'
Calcul des modes sur tous les nœuds du système.
/ GROUP_NO = g_noeu
Calcul des modes sur les groupes de nœuds g_noeud.
Remarque d’usage pour l’analyse sismique :
Dans le cadre d’une correction statique en analyse spectrale (COMB_SISM_MODAL), la prise en compte du pseudo-mode
dépend du type d’analyse :
En mono-appui (
TYPE_ANALYSE='MONO_APPUI'), seuls les pseudo-modes définis parAXEouDIRECTIONsont utilisés ;En multi-appui (
TYPE_ANALYSE='MULT_APPUI'), seuls les pseudo-modes définis parNOEUDouGROUP_NOsont pris en compte.
Il est fortement conseillé de définir des objets MODE_STATIQUE distincts pour chaque cas d’utilisation afin d’éviter
les ambiguïtés lors de l’appel à COMB_SISM_MODAL.
Opérandes TOUT_CMP/AVEC_CMP/SANS_CMP#
♦ / TOUT_CMP = 'OUI'
Calcul des modes sur toutes les composantes aux nœuds définis précédemment.
/ AVEC_CMP = l_cmp
Calcul des modes sur les composantes citées seulement.
/ SANS_CMP = l_cmp
Calcul des modes en excluant les composantes citées.
Opérandes CORRELE/NOM_APPUI#
◊ CORRELE = / 'OUI'
/ 'NON' [DEFAUT],
Les modes sont correlés, on ne calcule qu’un seul mode par direction. Ce mode correspond à la somme des modes obtenus en appliquant l’accélération en chaque noeud dans cette direction.
# Si CORRELE = 'OUI'
◆ NOM_APPUI = text,
Il faut donner un nom d’appui qui permet de retrouver le mode correspondant à l’appui.
mot-clé MODE_INTERF#
/ MODE_INTERF
mot-clé facteur pour la définition des modes de couplage. Ces modes interviennent pour compléter une base modale de modes propres de vibration (opérateur DEFI_BASE_MODALE [U4.64.02] ou DYNA_ALEA_MODAL [U4.53.22]). Cf. référence [R5.06.01] et voir exemple §4.2.
Opérande TOUT/GROUP_NO#
♦ / TOUT = 'OUI'
Calcul des modes sur tous les nœuds du système qui ont des degrés de liberté bloqués .
/ GROUP_NO = g_noeu
Calcul des modes sur les groupes de nœuds g_noeu.
Opérandes TOUT_CMP/AVEC_CMP/SANS_CMP#
♦ / TOUT_CMP = 'OUI'
Calcul des modes sur toutes les composantes bloquées aux nœuds définis précédemment.
/ AVEC_CMP = l_cmp
Calcul des modes sur les composantes citées seulement.
/ SANS_CMP = l_cmp
Calcul des modes en excluant les composantes citées.
Opérande NB_MODE#
♦ NB_MODE= nbmod
Nombre de modes à calculer. Il n’est, pour l’instant, pas possible de spécifier une bande de fréquence d’intérêt, ou la fréquence maximal des modes à calculer. L’utilisateur doit donc estimer par lui même le nombre de mode à prendre en compte. La liste des fréquences associées aux modes d’interface permet de déterminer le nombre de modes à prendre en compte dans le calcul pour le modèle réduit.
Opérande SHIFT#
♦ SHIFT = shift
Fréquence de décalage (shift) utilisée pour le calcul des modes d’interface. Le choix de cette valeur permet d’améliorer la précision du calcul des modes. On pourra choisir une valeur de shift correspondant à 10% de la première fréquence propre attendue pour les modes de couplage. La valeur arbitraire par défaut est fixée à \(1\mathit{Hz}\) .
mot-clé SOLVEUR#
◊ SOLVEUR = ...
Ce mot-clé facteur est facultatif : il permet de choisir le solveur linéaire utilisé dans certaines partie de l’algorithme. La syntaxe étant commune à plusieurs commandes, veuillez consulter le manuel [U4.50.01].
Remarque: pour le mot-clé MODE_INTERF, on doit résoudre des système linéaires mais pour ceux-ci, le solveur est choisi en «dur» dans la programmation (LDLT s’il y a très peu de ddls et MUMPS s’il y en a plus).
Opérande TITRE#
◊ TITRE = titre
Attaché au concept produit par cet opérateur [U4.03.01].
Opérande INFO#
◊ INFO
Indique le niveau d’impression d’informations sur le fichier “MESSAGE”:
1 : aucune impression
2 : impression des modes statiques calculés.
Exemples#
Calcul des modes statiques en déplacement imposé unitaire#
Calculdes modes statiques en déplacement imposé unitaire.
mode \(\Psi`solution de :math:\)lbrace begin{array}{c}Psi =-{K}^{-1}cdot {}^{t}B^{-1}cdot {lambda}_{i}\ Bcdot Psi ={V}_{i}end{array}` |
avec |
\(K\) |
: |
matrice de rigidité |
\({V}_{i}\) |
: |
vecteur valant \(1.`pour les composantes :math:\)mathrm{DX}`et :math:`mathrm{DY}`du groupe de nœuds base. |
||
\({\lambda}_{i}\) |
: |
réactions d’appui sur la liaison :math:`B`du groupe de nœuds base. |
mstat = MODE_STATIQUE ( MATR_RIGI = rigidite, MODE_STAT =_F ( GROUP_NO = “base”, ( AVEC_CMP =( “DX”,”DY”),), );
Calcul des modes statiques en force imposée unitaire#
Calculdes modes statiques en force imposée unitaire.
mode \(\Psi\) = \({K}^{-1}{F}_{i}\) |
avec |
\(K\) |
: |
matrice de rigidité |
\({F}_{i}\) |
: |
vecteur valant \(1.`pour les composantes :math:\)mathrm{DX}`et :math:`mathrm{DY}`du groupe de nœuds base. |
mstat = MODE_STATIQUE ( MATR_RIGI = rigidite, FORCE_NODALE =_F ( GROUP_NO = “base”, ( AVEC_CMP =( “DX”,”DY”),), );
Calcul des modes statiques (ou pseudo-modes) en accélération uniforme unitaire dans les 3 directions#
Calculdes modes statiques en accélération uniforme unitaire dans les 3 directions.
mode \(\Psi\) = \({K}^{-1}(M{A}_{i})\) |
avec |
\(K\) |
: |
matrice de rigidité |
\(M\) |
: |
matrice de masse |
||
\({A}_{i}\) |
: |
vecteur unitaire dans la direction \(i\) . |
mstat = MODE_STATIQUE ( MATR_RIGI = rigidite, MATR_MASS = masse, PSEUDO_MODE=_F(AXE=(“X”,”Y”,”Z”),), );
Calcul des modes statiques (ou pseudo-modes) en accélération imposée unitaire#
Calculdes modes statiques en accélération imposée unitaire.
mode \(\Psi\) = \({K}^{-1}(M{A}_{i})\) |
avec |
\(K\) |
: |
matrice de rigidité |
\(M\) |
: |
matrice de masse |
||
\({A}_{i}\) |
: |
vecteur unitaire pour les composantes \(\mathit{DX}\) et \(\mathit{DY}\) du groupe de nœuds \(\mathit{base}\) |
mstat = MODE_STATIQUE ( MATR_RIGI = rigidite, MATR_MASS = masse, PSEUDO_MODE=_F ( GROUP_NO = “base”, ( AVEC_CMP =( “DX”,”DY”),), ) ;
Calcul des modes de couplage#
Les modes de couplages :math:`\Psi =T\Phi`sont le relèvement statique des modes :math:`\Phi`du problème réduit
où :math:`T`sont les modes statiques en déplacement imposé. On ne calcule évidemment pas explicitement :math:`T`dans ce cas là. Les modes sont calculés par une méthode approchée détaillée dans la référence [:external:ref:`R4.06.02 <R4.06.02>`].
minter = MODE_STATIQUE ( MATR_RIGI = rigidite, MATR_MASS = masse, MODE_INTERF=_F ( GROUP_NO = “base”, AVEC_CMP =( “DX”,”DY”), NB_MODE=10, SHIFT=1., ), ) ;