u4.51.02 Macro commande MACRO_ELAS_MULT#

Syntaxe#

Détail de la syntaxe
/ fourier_elas
/ mult_elas
/ nume_ddl = MACRO_ELAS_MULT(
    ◇ reuse = <objet de RESULTAT>,
    ◇ RESULTAT = fourier_elas / mult_elas,
    ◆ MODELE = modele,
    ◇ CHAM_MATER = cham_mater,
    ◇ CARA_ELEM = cara_elem,
    ◇ NUME_DDL = co / nume_ddl,
    ◆ / CHAR_MECA_GLOBAL = char_meca,
      / LIAISON_DISCRET = "OUI" (ou non renseigné),
    ◆ CAS_CHARGE = _F(
         ◆ / NOM_CAS = text,
           / MODE_FOURIER = int,
         ◇ TYPE_MODE = / "ANTI",
                       / "SYME" (par défaut),
                       / "TOUS",
         ◆ / CHAR_MECA = char_meca,
           / VECT_ASSE = cham_no,
         ◇ OPTION = / "SANS",
                    / "SIEF_ELGA" (par défaut),
         ◇ SOUS_TITRE = text,
      ),
    ⟐ SOLVEUR = _F(
         ◇ METHODE = / "LDLT",
                     / "MULT_FRONT",
                     / "MUMPS" (par défaut),
         # Si: equal_to("METHODE", 'MULT_FRONT')
             ◇ RENUM = / "MD",
                       / "MDA" (par défaut),
             ◇ STOP_SINGULIER = / "NON",
                                / "OUI" (par défaut),
             ◇ NPREC = int (défaut: 8),
         # Si: equal_to("METHODE", 'LDLT')
             ◇ RENUM = "RCMK",
             ◇ STOP_SINGULIER = / "NON",
                                / "OUI" (par défaut),
             ◇ NPREC = int (défaut: 8),
         # Si: equal_to("METHODE", 'MUMPS')
             ◇ RENUM = / "AMD",
                       / "AMF",
                       / "AUTO" (par défaut),
                       / "METIS",
                       / "PARMETIS",
                       / "PORD",
                       / "PTSCOTCH",
                       / "QAMD",
                       / "SCOTCH",
             ◇ STOP_SINGULIER = / "NON",
                                / "OUI" (par défaut),
             ◇ NPREC = int (défaut: 8),
             ◇ TYPE_RESOL = / "AUTO" (par défaut),
                            / "NONSYM",
                            / "SYMDEF",
                            / "SYMGEN",
             ◇ PRETRAITEMENTS = / "AUTO" (par défaut),
                                / "SANS",
             ◇ PCENT_PIVOT = int (défaut: 20),
             ◇ ELIM_LAGR = / "LAGR2" (par défaut),
                           / "NON",
             ◇ GESTION_MEMOIRE = / "EVAL",
                                 / "IN_CORE" (par défaut),
                                 / "OUT_OF_CORE",
             ◇ ACCELERATION = / "AUTO" (par défaut),
                              / "FR",
                              / "FR+",
                              / "LR",
                              / "LR+",
             ◇ LOW_RANK_SEUIL = float (défaut: 0.0),
             ◇ RESI_RELA = float (défaut: 1e-06),
             ◇ POSTTRAITEMENTS = / "AUTO" (par défaut),
                                 / "FORCE",
                                 / "MINI",
                                 / "SANS",
      ),
    ◇ INFO = / 1 (par défaut),
             / 2,
    ◇ TITRE = text,
)


◆ : obligatoire
◇ : optionnel
⟐ : présent par défaut
& : ensemble
/ : un seul parmi
| : plusieurs choix possibles

Opérandes#

MACRO_ELAS_MULT est une macro commande qui appelle des opérateurs élémentaires susceptibles de créer temporairement des concepts sur la base globale, il est donc possible que le fichier associé à cette dernière contienne des enregistrements marqués détruits superflus. Pour réduire la taille final du fichier, lorsque l’on désire le conserver, on pourra utiliser la procédure FIN et le mot clé RETASSAGE=”OUI” dans le jeu de commandes.

Opérandes MODELE / CHAM_MATER / CARA_ELEM#

On fournit les arguments permettant de calculer la matrice de rigidité (et les seconds membres).

♦    MODELE    =    mo,

Nom du modèle dont les éléments font l’objet du calcul mécanique.

◊    CHAM_MATER    =    chmat,

Nom du champ de matériau.

◊    CARA_ELEM    =    carac,

Nom des caractéristiques des éléments structuraux (poutre, coque, discrets, …) s’ils sont utilisés dans le modèle.

Opérande NUME_DDL#

◊    NUME_DDL    =    nu,

Mot clé utilisé pour nommer la numérotation pour une utilisation ultérieure ou pour utiliser une numérotation existante. Si aucun nom n’est fourni, une numérotation est créée temporairement pour chaque appel à MACRO_ELAS_MULT.

Opérandes CHAR_MECA_GLOBAL / LIAISON_DISCRET#

♦    /    CHAR_MECA_GLOBAL    =    lchmg,

Mot clé définissant les conditions aux limites mécaniques de blocage de la structure.

Ces conditions sont les mêmes pour tous les cas de charge. Elles sont définies par AFFE_CHAR_MECA ou AFFE_CHAR_MECA_F [U4.44.01].


/ LIAISON_DISCRET= “OUI”,

Ce mot clé sert simplement à dire qu’il n’y a pas de conditions mécaniques ou cinématiques de blocage de la structure.

Mot clé CAS_CHARGE#

Mot clé facteur permettant de définir un cas de charge.

Pour chaque occurrence du mot clé facteur, on construit un second membre (sauf si on utilise VECT_ASSE (auquel cas le second membre est déjà assemblé)) et on résoud le système linéaire.

Opérande NOM_CAS#

♦    NOM_CAS    =    moncas,

Chaîne de caractères, sert de variable d’accès à la structure de données résultat.

Remarque:

Chaque cas est nommé par l’utilisateur et la notion de numéro d’ordre n’existe pas.

Opérandes MODE_FOURIER / TYPE_MODE#

◊    MODE_FOURIER    =    mode,

Entier positif ou nul indiquant l’harmonique de FOURIER sur laquelle on calcule la matrice élémentaire de rigidité et le vecteur élémentaire.

◊    TYPE_MODE    =    type,

Le type de l’harmonique sera symétrique (“SYME”), ou antisymétrique (“ANTI”) ou symétrique et antisymétrique (“TOUS”) (cf. La notice d’utilisation Fourier [U2.01.07]).

Opérandes CHAR_MECA / VECT_ASSE#

◊    CHAR_MECA    =    lcharm,

Liste de concepts de type char_meca produit par AFFE_CHAR_MECA [U4.44.01] ou AFFE_CHAR_MECA_F [U4.44.01] à partir du modèle mo.

Remarque pour définir un cas de charge de « dilatation thermique seule » :

  • la prise en compte de la dilatation thermique dans un cas de charge est systématique si le champ de matériau « contient » de la température (AFFE_VARC/NOM_VARC=”TEMP”).

  • pour que ce chargement soit le seul pris en compte, il faut que lcharm contienne une charge mécanique « nulle » (par exemple une force nodale nulle sur un nœud).

◊    VECT_ASSE    =    chdep,

Concept de type cham_no_depl_r représentant le second membre du système linéaire à résoudre.

Opérandes OPTION#

◊    OPTION =    /    'SANS',

/ “SIEF_ELGA”, [DEFAUT]

Par défaut la commande MACRO_ELAS_MULT calcule les contraintes aux points de Gauss (ou efforts généralisés pour les éléments de structure).

Les autres options de post-traitement seront calculées à posteriori par la commande CALC_CHAMP [U4.81.04].

Si l’utilisateur indique OPTION = “SANS”, ces contraintes ne seront pas calculées et la structure de données produite sera moins volumineuse.

Opérande SOUS_TITRE#

♦    SOUS_TITRE    =    soustitre,

Sous titre que l’on veut donner au champ de déplacement résultat.

Mot clé SOLVEUR [U4.50.01]#

Ce mot clé permet de choisir la méthode de résolution des systèmes linéaires. Rappelons que, dans le cas du cas de charges multiple, une seule factorisation est faite pour chaque appel à MACRO_ELAS_MULT et une résolution pour chaque cas de charge.

Opérande TITRE#

Voir [U4.03.01].

Exemples#

On pourra se reporter au test SSLL14 A [V3.01.014].

# définition des conditions aux limites de blocage

bloqu    =    AFFE_CHAR_MECA(    MODELE= modele,

DDL_IMPO=(_F(TOUT=”OUI” , DZ=0. ), _F(GROUP_NO=(“A”,”B”),DX=0.,DY=0.,),))

# définition de 4 chargements

charg1 = AFFE_CHAR_MECA( MODELE= modele,

FORCE_POUTRE=_F( GROUP_MA= “D2” , FY= P ) )

charg2 = AFFE_CHAR_MECA( MODELE= modele,

FORCE_NODALE=_F( GROUP_NO= “C” , FY= F1 ) )

charg3 = AFFE_CHAR_MECA( MODELE= modele,

FORCE_NODALE=_F( GROUP_NO= “D” , FX= F2 ) )

charg4 = AFFE_CHAR_MECA( MODELE= modele,

FORCE_NODALE=_F( GROUP_NO= “D” , MZ= M ) )

statique = MACRO_ELAS_MULT ( MODELE = modele,

CHAM_MATER = ch_mater, CARA_ELEM = cara_ele, CHAR_MECA_GLOBAL = bloqu,

# on donne un nom afin de recupérer le concept NUME_DDL

NUME_DDL = nu_ddl, CAS_CHARGE=_F ( NOM_CAS = “charge numero 1”, CHAR_MECA = charg1, OPTION = “SIEF_ELGA”, SOUS_TITRE=”charge repartie verticale sur DC”, ), )

# deuxième série de cas de charge


statique=    MACRO_ELAS_MULT    (        reuse                = statique,

MODELE = modele, CHAM_MATER = ch_mater, CARA_ELEM = cara_ele, CHAR_MECA_GLOBAL = bloqu,

# on donne le concept NUME_DDL calculé précédemment

NUME_DDL = nu_ddl, CAS_CHARGE=(_F( NOM_CAS = “charge numero 2”, CHAR_MECA = charg2, OPTION = ( “SIEF_ELGA”,”REAC_NODA” ), SOUS_TITRE= “force ponctuelle verticale en C”, ),

_F ( NOM_CAS =”charge numero 3”, CHAR_MECA =charg3, OPTION =( “SIEF_ELGA”,”REAC_NODA” ), SOUS_TITRE=”force ponctuelle horizontale en C”, ), _F ( NOM_CAS = “charge numero 4”, CHAR_MECA = charg4, OPTION = ( “SIEF_ELGA”,”REAC_NODA” ), SOUS_TITRE= “moment en C”, ),), )