u4.64.02 Opérateur DEFI_BASE_MODALE#
Syntaxe#
Détail de la syntaxe
mode_meca = DEFI_BASE_MODALE(
◇ reuse = <objet de RITZ/BASE_MODALE>,
◆ / CLASSIQUE = _F(
◆ INTERF_DYNA = interf_dyna_clas,
◆ MODE_MECA = mode_meca,
◇ NMAX_MODE = int,
),
/ RITZ = _F(
◆ / MODE_MECA = mode_meca,
/ BASE_MODALE = mode_meca,
/ MODE_INTF = mode_meca / mult_elas,
◇ NMAX_MODE = int,
),
/ DIAG_MASS = _F(
◆ MODE_MECA = mode_meca,
◆ MODE_STAT = mode_meca,
),
/ ORTHO_BASE = _F(
◆ BASE = mode_meca / mult_elas,
◆ MATRICE = matr_asse_depl_c / matr_asse_depl_r / matr_asse_gene_r / matr_asse_pres_r,
),
# Si: exists("RITZ")
◇ INTERF_DYNA = interf_dyna_clas,
◇ NUME_REF = nume_ddl,
◇ ORTHO = / "NON" (par défaut),
/ "OUI",
◇ LIST_AMOR = listr8,
# Si: equal_to("ORTHO", 'OUI')
◆ MATRICE = matr_asse_depl_c / matr_asse_depl_r / matr_asse_gene_r / matr_asse_pres_r,
⟐ SOLVEUR = _F(
◇ METHODE = / "LDLT",
/ "MULT_FRONT",
/ "MUMPS" (par défaut),
# Si: equal_to("METHODE", 'MULT_FRONT')
◇ RENUM = / "MD",
/ "MDA" (par défaut),
◇ NPREC = int (défaut: 8),
◇ ELIM_LAGR = / "NON" (par défaut),
/ "OUI",
◇ STOP_SINGULIER = / "NON" (par défaut),
/ "OUI",
# Si: equal_to("METHODE", 'LDLT')
◇ RENUM = "RCMK",
◇ NPREC = int (défaut: 8),
◇ ELIM_LAGR = / "NON" (par défaut),
/ "OUI",
◇ STOP_SINGULIER = / "NON" (par défaut),
/ "OUI",
# Si: equal_to("METHODE", 'MUMPS')
◇ RENUM = / "AMD",
/ "AMF",
/ "AUTO" (par défaut),
/ "METIS",
/ "PARMETIS",
/ "PORD",
/ "PTSCOTCH",
/ "QAMD",
/ "SCOTCH",
◇ NPREC = int (défaut: 8),
◇ ELIM_LAGR = / "LAGR2" (par défaut),
/ "NON",
/ "OUI",
◇ STOP_SINGULIER = / "NON" (par défaut),
/ "OUI",
◇ TYPE_RESOL = / "AUTO" (par défaut),
/ "NONSYM",
/ "SYMDEF",
/ "SYMGEN",
◇ ACCELERATION = / "AUTO",
/ "FR" (par défaut),
/ "FR+",
/ "FR++",
/ "LR",
/ "LR+",
/ "LR++",
◇ LOW_RANK_SEUIL = float (défaut: 0.0),
◇ PRETRAITEMENTS = / "AUTO" (par défaut),
/ "SANS",
◇ POSTTRAITEMENTS = / "AUTO" (par défaut),
/ "FORCE",
/ "MINI",
/ "SANS",
◇ PCENT_PIVOT = int (défaut: 35),
◇ NB_RHS = int (défaut: 1),
◇ RESI_RELA = float (défaut: -1.0),
◇ GESTION_MEMOIRE = / "AUTO" (par défaut),
/ "EVAL",
/ "IN_CORE",
/ "OUT_OF_CORE",
# Si: equal_to("METHODE", 'GCPC')
◇ ELIM_LAGR = / "NON" (par défaut),
/ "OUI",
◇ PRE_COND = / "LDLT_DP",
/ "LDLT_INC" (par défaut),
/ "LDLT_SP",
◇ RESI_RELA = float (défaut: 1e-06),
◇ NMAX_ITER = int (défaut: 0),
# Si: equal_to("PRE_COND", 'LDLT_INC')
◇ RENUM = "RCMK",
◇ NIVE_REMPLISSAGE = int (défaut: 0),
# Si: is_in("PRE_COND", ('LDLT_SP', 'LDLT_DP'))
◇ RENUM = / "METIS",
/ "PARMETIS" (par défaut),
/ "SANS",
◇ REAC_PRECOND = int (défaut: 30),
◇ PCENT_PIVOT = int (défaut: 20),
◇ GESTION_MEMOIRE = / "AUTO" (par défaut),
/ "IN_CORE",
◇ LOW_RANK_SEUIL = float (défaut: 0.0),
# Si: equal_to("METHODE", 'PETSC')
◇ ELIM_LAGR = / "NON" (par défaut),
/ "OUI",
◇ ALGORITHME = / "CG",
/ "CR",
/ "FGMRES" (par défaut),
/ "GCR",
/ "GMRES",
/ "GMRES_LMP",
◇ OPTION_PETSC = text (défaut: ""),
◇ PRE_COND = / "BLOC_LAGR",
/ "BOOMER",
/ "FIELDSPLIT",
/ "GAMG",
/ "HPDDM",
/ "JACOBI",
/ "LDLT_DP",
/ "LDLT_INC",
/ "LDLT_SP" (par défaut),
/ "ML",
/ "SANS",
/ "SOR",
/ "UTILISATEUR",
◇ RESI_RELA = float (défaut: 1e-06),
◇ NMAX_ITER = int (défaut: 0),
# Si: equal_to("PRE_COND", 'LDLT_INC')
◇ RENUM = "RCMK",
◇ NIVE_REMPLISSAGE = int (défaut: 0),
◇ REMPLISSAGE = float (défaut: 1.0),
# Si: is_in("PRE_COND", ('LDLT_SP', 'LDLT_DP'))
◇ RENUM = / "METIS",
/ "PARMETIS" (par défaut),
/ "SANS",
◇ REAC_PRECOND = int (défaut: 30),
◇ PCENT_PIVOT = int (défaut: 20),
◇ GESTION_MEMOIRE = / "AUTO" (par défaut),
/ "IN_CORE",
◇ LOW_RANK_SEUIL = float (défaut: 0.0),
# 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 = / "RCMK",
/ "SANS" (par défaut),
),
◇ TITRE = text,
◇ INFO = / 1 (par défaut),
/ 2,
)
◆ : obligatoire
◇ : optionnel
⟐ : présent par défaut
& : ensemble
/ : un seul parmi
| : plusieurs choix possibles
Opérandes#
Mot-clé facteur CLASSIQUE#
♦ / CLASSIQUE = _F(
Mot-clé facteur pour la définition d’une base modale de type’CLASSIQUE”, quand on réalise un calcul par sous-structuration dynamique.
Opérande INTERF_DYNA#
♦ INTERF_DYNA = intdyn
Nom du concept de type interf_dyna_clasproduit par DEFI_INTERF_DYNA[U4.64.01].
L’opérateur calcule les déformées statiques correspondant aux différentes interfaces définies, en s’appuyant sur la numérotation utilisée pour le calcul des modes propres.
Opérandes MODE_MECA / NMAX_MODE#
◊ MODE_MECA = modes
Liste des concepts de type mode_meca contenant les modes propres de la structure.
◊ NMAX_MODE = nbmodes
Liste d’entiers donnant, pour chaque concept mode_meca, le nombre maximal de modes propres à retenir. A partir de la ième base modale de la liste modes, on retient alors les modes correspondant aux nbmodes[i] fréquences les plus basses.
En général, la longueur de la liste d’entiers, renseignée sous le mot-clé NMAX_MODE, doit correspondre à celle de la liste des bases modales (mot-clé MODE_MECA). La seule exception à cette règle est quand une unique valeur est donnée dans NMAX_MODE. Dans ce cas, la valeur de NMAX_MODE est utilisée pour chacune des bases modales.
Si NMAX_MODE n’est pas renseigné, on prend par défaut tous les modes de chacune de bases modales données sous le mot-clé MODE_MECA.
Mot-clé facteur RITZ#
♦ / RITZ = _F(
Mot-clé facteur permettant:
dans le cas d’un calcul par sous-structuration, de construire une base modale de sous-structure de type “RITZ”;
dans le cas d’un calcul directement avec la structure complète, de construire une base modale enrichie (par exemple: des modes propres de vibration, qu’on enrichit de modes statiques associés à des forces extérieures).
La base est constituée de deux manières différentes: soit à partir de deux occurrences du mot-clé RITZ (une avec le mot-clé MODE_MECA ou BASE_MODALE, une autre forcément avec le mot-clé MODE_INTF, les autres possibilités ne sont pas autorisées); soit à partir d’une unique occurrence du mot-clé RITZ et seul le mot-clé MODE_MECA est alors accepté (peu utilisé sauf éventuellement pour réduire le nombre de modes ou changer la numérotation de référence).
Mot-clé MODE_MECA#
Nom du concept de type mode_meca contenant les modes propres de vibration de la structure, ou de la sous-structure dans le cas d’un calcul par sous-structuration.
Il peut être utilisé seul ou en présence d’une seconde occurrence de RITZ avec le mot-clé MODE_INTF (si on souhaite ajouter des modes d’interface par exemple).
On peut donner une liste de mode_meca obtenus pour la même structure (avec des conditions aux limites différentes par exemple).
Mot-clé MODE_INTF#
Nom du concept de type mode_meca (produit par CALC_MODES [U4.52.02] ou par MODE_STATIQUE [U4.52.14]) ou mult_elas (produit par MACRO_ELAS_MULT [U4.51.02]) contenant:
dans le cas d’un calcul par sous-structuration: les modes qu’on veut utiliser comme modes d’interface de la sous‑structure;
dans le cas d’un calcul directement sur la structure complète: des modes qui enrichissent la base de modes propres de vibration donnée sous le mot-clé MODE_MECA précédent. Cela peut par exemple être des déformées statiques associées à des forces extérieures (force imposée connue; force de choc associée à un obstacle; etc.).
Il ne peut être utilisé qu’en présence d’une seconde occurrence du mot-clé RITZ qui contiendra le mot-clé MODE_MECA ou BASE_MODALE (quitte à affecter NMAX_MODE à zéro si on ne souhaite pas prendre en compte ce mot-clé par exemple).
Mot-clé BASE_MODALE#
Nom de concept de type mode_meca produit par un appel précédent de l’opérateur de DEFI_BASE_MODALE [U4.64.02]. Il ne peut être entré que lorsque le nombre d’occurrence du mot-clé RITZ est égal à deux. L’autre occurrence du mot-clé RITZ contiendra alors obligatoirement le mot-clé MODE_INTF (pour enrichir une base existante). Le nom de concept mode_meca résultat de l’opérateur peut être différent de celui-ci ou identique (il est alors réentrant).
Opérande NMAX_MODE#
Nombre de modes à retenir dans les modes dynamiques (ou statiques) donnés par un des mots-clés précédents sous l’occurrence du mot-clé RITZ. Si on renseigne une liste de mode_meca, il faut donner soit une liste de la même taille pour les nombres de modes à retenir, soit une valeur unique (dans ce cas, cette valeur est appliquée à tous les concepts mode_meca).
Si NMAX_MODE n’est pas renseigné, on prend par défaut tous les modes.
Opérande INTERF_DYNA#
Interface dynamique de la sous-structure (à renseigner éventuellement et seulement si l’on utilise le mot-clé facteur “RITZ”).
Opérande NUME_REF#
Numérotation de référence sur laquelle tous les champs de déplacement (modes dynamiques et statiques) constituant la base de “RITZ” seront réordonnés.
Opérande LIST_AMOR#
Liste des amortissements modaux que l’utilisateur peut fournir pour enrichir les modes déclares sous le mot-clé MODE_MECA. Ça revient à ajouter des amortissements réduits pour ces modes mêmes si à l’origine ils sont des modes réels. Cette option est utile pour simuler des résultats expérimentaux.
Opérande ORTHO#
Opérande permettant de faire une orthonormalisation de la base de Ritz (à renseigner si on souhaite cette ré-orthonormalisation et seulement si l’on utilise le mot-clé facteur “RITZ”). Cette orthonormalisation est faite avec un algorithme de type Graam-Schmidt itératif (IGS) suivant la version de Kahan-Parlett.
Mot-clé MATRICE#
Nom du concept de type matr_asse_* qui sera pris en compte pour les produits scalaires lors de la réorthonormalisation de la base de RITZ. C’est un mot-clé obligatoire si ORTHO=”OUI”.
Mot-clé facteur DIAG_MASS#
♦ / DIAG_MASS = _F(
Mot-clé permettant de recalculer les modes statiques en éliminant la contribution dynamique et en procédant à une orthogonalisation de Graam-Schmidt.
Mot-clé MODE_MECA#
Nom du concept de type mode_meca contenant les modes propres dynamiques de la sous-structure traitée.
Mot-clé MODE_STAT#
Nom du concept de type mode_meca produit par l’opérateur MODE_STATIQUE [U4.52.14] qui contient les modes statiques.
Mot-clé facteur ORTHO_BASE#
♦ / ORTHO_BASE = _F(
Mot-clé permettant d’orthonormaliser les modes d’une base Cette orthonormalisation est faite avec un algorithme de type Graam-Schmidt itératif (IGS) suivant la version de Kahan-Parlett.
Mot-clé BASE#
Nom du concept de type mode_mecaou mult_elascontenant des modes propres dynamiques.
Mot-clé MATRICE#
Nom du concept de type matr_asse_* qui contient sera pris en compte pour les produits scalaires lors de la réorthogonalisation.
Mot-clé facteur SOLVEUR#
◊ SOLVEUR = _F(...)
Ce mot-clé facteur est facultatif : il permet de choisir un autre solveur de résolution de système. Dans le cas de cette commande, la syntaxe du mot-clé est restreinte à deux méthodes: on peut choisir entre la méthode par défaut, MULT_FRONT, et les méthodes LDLT ou MUMPS. La syntaxe étant commune à plusieurs commandes, veuillez consulter le manuel [U4.50.01].
Opérande TITRE#
◊ TITRE = titre
Titre du concept créé.
Opérande INFO#
◊ INFO =
Niveau des informations fournies dans le fichier MESSAGE:
1 |
pas d’impression; |
2 |
écriture des généralités (concepts amont, type de base). |
Exemples#
Sous-structuration dynamique#
Les différentes modélisations du cas-test SDLS106 présentent la mise en œuvre complète d’un calcul par sous-structuration, avec différentes méthodes (Craig-Bampton, Mc Neal, maillages compatibles ou non, etc.).
Enrichissement d’une base de modes propres avec des modes statiques#
# calcul des matrices assemblées et de la numérotation des DDL
...
# calcul des modes propres de vibration
modesvib = CALC_MODES( MATR_RIGI=K_ASSE,
MATR_MASS=M_ASSE,
CALC_FREQ=_F( NMAX_FREQ = nb_freq) ,
);
# application d'une force extérieure
force = AFFE_CHAR_MECA( MODELE=modele,
FORCE_NODALE=_F( NOEUD = 'N11',
FX=800., FY = -1000.));
# calcul de la déformée statique associée à cette force extérieure
modestat = MODE_STATIQUE( MATR_RIGI=K_ASSE,
MATR_MASS=M_ASSE,
FORCE_NODALE=_F( NOEUD='N11',
AVEC_CMP=('DX','DY') ),
);
# construction de la base modale enrichie
basemode = DEFI_BASE_MODALE( RITZ =(_F( MODE_MECA=modesvib ),
_F( MODE_INTF=modestat ),
),
NUME_REF=NUMDDL,
);
Le cas-test SDNL104c présente la mise en œuvre complète de cette technique.
Un autre exemple est donné par le cas-test SDNL301a, où les déformées statiques qui enrichissent la base des modes propres, sont celles liées à des forces extérieures engendrées par des chocs.