Opérandes ========= Choix du maillage ----------------- Le mot-clef ``MAILLAGE`` donne le maillage associé à l'étude sur lequel on affecte les éléments finis. Remarque Pour les modélisations axisymétriques, l’axe de révolution est l’axe :math:`Y` du maillage. Toute la structure doit être maillée en :math:`X\ge 0`. L'axe :math:`{Ox}` désigne donc la direction radiale. Les composantes des champs calculés seront donc: :math:`X` pour la direction radiale, :math:`Y` pour la direction axiale et :math:`Z` pour la direction orthoradiale (circonférentielle). .. _u4.41.01-affe-phenomene_modelisation_formulation: Affectation des éléments finis ------------------------------ Le mot-clé ``AFFE`` définit les types d'éléments finis qui seront affectés sur les entités du maillage choisies. Pour chaque occurrence, on spécifie une modélisation. Remarque On rappelle qu'on applique la règle de surcharge (voir [:ref:`U1.03.00`]): * les affectations se font en superposant les effets des différents mots-clés * en cas de conflit, le dernier mot-clé renseigné l’emporte sur les précédents. Les entités du maillage sont précisées par le mot-clé ``TOUT = 'OUI'`` qui affecte la totalité des mailles du maillage et ``GROUP_MA = g_mail`` qui affecte une liste de groupes de mailles. Le type d’élément fini est précisé par les mot-clefs suivants: * ``PHENOMENE`` : phénomène physique modélisé (équation de conservation associée) * ``MODELISATION`` : type d’interpolation et de discrétisation * ``FORMULATION`` : type de formulation dans certains cas Les deux premiers mots-clés ``PHENOMENE`` et ``MODELISATION`` sont obligatoires pour chaque occurrence du mot clé facteur ``AFFE``. Ce couple de mots-clés définit de façon bijective le type d'élément affecté à un type de maille. Dans certains cas, il peut être nécessaire de préciser la ``FORMULATION`` employée: * Pour la discrétisation de type HHO (``3D_HHO``, ``AXIS_HHO`` ou ``D_PLAN_HHO``), on peut préciser si c'est une approche constante (``CONSTANTE``), linéaire (``LINEAIRE``), quadratique (``QUADRATIQUE``), cubique (``CUBIQUE``) ou quartique (``QUARTIQUE``), voir la documentation [:ref:`R3.06.14 `]. Il peut exister des limitations en fonction de la physique. Par exemple, l'approche constante n'est disponible qu'en thermique; * Pour les discrétisations en fluide ou en interaction fluide-structure, on peut préciser si c'est une formulation à trois variables :math:`(U,P,\varphi )` à deux variables :math:`(U,P)` ou :math:`(U,\psi )`, voir la documentation [:ref:`R4.02.02 `]. * Pour les modélisations de second gradient en mécanique, on peut préciser si c’est la formulation historique du modèle de second gradient qui doit être utilisée (``DIL``) ou la formulation incompressible (``DIL_INCO``). Remarques * le mot-clef ``PHENOMENE`` doit avoir la même valeur pour toutes les occurrences du mot-clef facteur ``AFFE``. * en affectant les éléments finis sur les mailles de volume (et/ou de surface) du groupe de mailles ``g_mail``, si ce groupe de mailles contient aussi les mailles de bords (et/ou d’arêtes) des mailles de volume (et/ou de surface), alors on affecte aussi automatiquement sur ces dernières les éléments finis nécessaires à certaines options de calcul (affectation de chargements extérieurs par exemple). Si on a besoin d’affecter sur ces interfaces des modélisations supplémentaires, il convient alors de prévoir dans le maillage des mailles dédoublées: c’est par exemple le cas en interaction fluide-structure. Liste des modélisations disponibles ----------------------------------- Les modélisations possibles sont indiquées ci-dessous en les listant par «paquets» : ACOUSTIQUE ~~~~~~~~~~ ACOUSTIQUE 2D des milieux continus PLAN : [:ref:`R4.02.01`] ACOUSTIQUE 3D des milieux continus 3D : [:ref:`R4.02.01`] THERMIQUE ~~~~~~~~~ THERMIQUE 2D coque COQUE_AXIS : [:ref:`R3.11.01`] COQUE_PLAN : [:ref:`R3.11.01`] THERMIQUE 2D milieux continus AXIS_DIAG : [:ref:`R3.06.07`] AXIS_FOURIER AXIS : [:ref:`R3.06.02`] PLAN_DIAG : [:ref:`R3.06.07`] PLAN : [:ref:`R3.06.02`] PLAN_HHO : [:ref:`R3.06.14`] AXIS_HHO : [:ref:`R3.06.14`] THERMIQUE coque COQUE : [:ref:`R3.11.01`] THERMIQUE 3D milieux continus 3D_DIAG : [:ref:`R3.06.07`] 3D : [:ref:`R3.06.02`] 3D_HHO : [:ref:`R3.06.14`] MECANIQUE (2D) ~~~~~~~~~~~~~~ MECANIQUE 2D éléments discrets 2D_DIS_TR 2D_DIS_T MECANIQUE 2D fluide-structure vibroacoustique 2D_FLUIDE : [:ref:`R4.02.02`] 2D_FLUI_ABSO : [:ref:`R4.02.05`] 2D_FLUI_PESA : [:ref:`R4.02.04`] 2D_FLUI_STRU : [:ref:`R4.02.02`] AXIS_FLUIDE : [:ref:`R4.02.02`] AXIS_FLUI_ABSO : [:ref:`R4.02.05`] AXIS_FLUI_STRU : [:ref:`R4.02.02`] D_PLAN_ABSO : [:ref:`R4.02.05`] MECANIQUE 2D milieux continus AXIS : [:ref:`R3.01.01`] AXIS_FOURIER AXIS_SI : [:ref:`R3.06.10`] C_PLAN_SI : [:ref:`R3.06.10`] C_PLAN : [:ref:`R3.01.01`] D_PLAN_SI : [:ref:`R3.06.10`] D_PLAN : [:ref:`R3.01.01`] D_PLAN_HHO: [:ref:`R3.06.14`] MECANIQUE 2D quasi incompressible: [:ref:`R3.06.08`] AXIS_INCO_UP D_PLAN_INCO_UP AXIS_INCO_UPG D_PLAN_INCO_UPG MECANIQUE 2D non local D_PLAN_GRAD_VARI D_PLAN_GVNO : [:ref:`R5.04.04`] AXIS_GVNO : [:ref:`R5.04.04`] D_PLAN_GRAD_SIGM : [:ref:`R5.03.24`] D_PLAN_DIL : [:ref:`R5.04.03`] D_PLAN_GRAD_HHO: [:ref:`R3.06.14`] MECANIQUE 2D plaques et coques COQUE_AXIS : [:ref:`R3.07.02`] MECANIQUE 2D éléments joints pour la propagation de fissure PLAN_JOINT : [:ref:`R3.06.09`] AXIS_JOINT : [:ref:`R3.06.09`] PLAN_JOINT_HYME : [:ref:`R3.06.09`] PLAN_INTERFACE : [:ref:`R3.06.13`] PLAN_INTERFACE_S : [:ref:`R3.06.13`] AXIS_INTERFACE : [:ref:`R3.06.13`] AXIS_INTERFACE_S : [:ref:`R3.06.13`] MECANIQUE 2D thermo-hydro-mécanique: [:ref:`R7.01.10`] AXIS_HH2MD AXIS_HH2MS AXIS_HHMD AXIS_HHMS AXIS_HHM AXIS_HMD AXIS_HMS AXIS_HM AXIS_THH2D AXIS_THH2S AXIS_THH2MD AXIS_THH2MS AXIS_THHD AXIS_THHS AXIS_THHMD AXIS_THHMS AXIS_THMD AXIS_THMS AXIS_THM AXIS_HHD AXIS_HHS AXIS_HH2D AXIS_HH2S D_PLAN_HH2MD D_PLAN_HH2MS D_PLAN_HHMD D_PLAN_HHMS D_PLAN_HHM D_PLAN_HMD D_PLAN_HMS D_PLAN_HM D_PLAN_THH2D D_PLAN_THH2S D_PLAN_THH2MD D_PLAN_THH2MS D_PLAN_THHD D_PLAN_THHS D_PLAN_THHMD D_PLAN_THHMS D_PLAN_THMD D_PLAN_THMS D_PLAN_THM D_PLAN_HHD D_PLAN_HHS D_PLAN_HS D_PLAN_HH2D D_PLAN_HH2S D_PLAN_HMS_DIL: [:ref:`R7.01.10`] et [:ref:`R5.04.03`] D_PLAN_HM_SI_DIL: [:ref:`R7.01.10`] et [:ref:`R5.04.03`] D_PLAN_THMS_DIL: [:ref:`R7.01.10`] et [:ref:`R5.04.03`] D_PLAN_HH2MS_DIL: [:ref:`R7.01.10`] et [:ref:`R5.04.03`] MECANIQUE 2D hydraulique non saturé en volumes finis D_PLAN_HH2SUDA: [:ref:`R7.01.34`] MECANIQUE 2D éléments joints avec couplage hydromécanique AXIS_JHMS PLAN_JHMS Pour les maillages 2D, permet de renseigner les groupes de mailles ou les mailles susceptibles d’être coupées par la fissure lorsque le contact est défini sur les lèvres de la fissure. Sont permis les types de mailles suivants: les QUAD8 et TRIA6 et les mailles de bord de ces éléments, soient les SEG3. Si les mailles sont linéaires, il faut au préalable les transformer en mailles quadratiques (avec LINE_QUAD de la commande [:ref:`CREA_MAILLAGE `]). MECANIQUE (3D) ~~~~~~~~~~~~~~ MECANIQUE 3D barres et câbles 2D_BARRE: [:ref:`R3.08.01`] BARRE: [:ref:`R3.08.01`] CABLE_POULIE: [:ref:`R3.08.02`] CABLE: [:ref:`R3.08.02`] CABLE_GAINE: [:ref:`R3.08.10`] MECANIQUE 3D éléments discrets DIS_TR DIS_T MECANIQUE 3D fluide-structure 3D_FAISCEAU: [:ref:`R4.07.05`] 3D_FLUIDE: [:ref:`R4.02.02`] MECANIQUE 3D frontière absorbante 3D_ABSO: [:ref:`R4.02.05`] 3D_FLUI_ABSO: [:ref:`R4.02.05`] MECANIQUE 3D grilles d'armatures de béton GRILLE_MEMBRANE: [:ref:`R3.08.07`] GRILLE_EXCENTRE: [:ref:`R3.08.07`] MECANIQUE 3D milieux continus 3D_SI: [:ref:`R3.06.10`] 3D: [:ref:`R3.01.01`] 3D_HHO: [:ref:`R3.06.14`] MECANIQUE 3D non local 3D_GRAD_VARI 3D_GVNO: [:ref:` R5.04.04`] 3D_DIL: [:ref:`R5.04.03`] 3D_GRAD_HHO: [:ref:`R3.06.14`] MECANIQUE 3D plaques, coques et membranes COQUE_3D: [:ref:`R3.07.04`] DKT : [:ref:`R3.07.03`] DST : [:ref:`R3.07.03`] Q4G : [:ref:`R3.07.03`] DKTG : [:ref:`R3.07.03`] Q4GG: [:ref:`R3.07.09`] MEMBRANE: [:ref:`R3.08.07`] COQUE_SOLIDE: [:ref:`R3.07.10`] (élément hors AQ) PLAQ_MITC: [:ref:`R3.07.11`] (élément hors AQ) MECANIQUE fluide fluide-structure FLUIDE FLUI_STRU MECANIQUE 3D poutres POU_FLUI_STRU POU_D_E: [:ref:`R3.08.01`] POU_D_EM: [:ref:`R3.08.08`] POU_D_SQUE: [:ref:`R3.08.08`] POU_D_T: [:ref:`R3.08.01`] POU_D_TGM POU_D_TG POU_D_T_GD MECANIQUE 3D quasi incompressible: [:ref:`R3.06.08`] 3D_INCO_UP 3D_INCO_UPG 3D_INCO_UPO MECANIQUE 3D thermo-hydro-mécanique 3D_HHMD 3D_HHM 3D_HMD 3D_HM 3D_THHD 3D_THHMD 3D_THHM 3D_THMD 3D_THM 3D_THVD 3D_THH2MD 3D_THH2M 3D_HH2MD 3D_HH2MS 3D_THH2S 3D_THH2D 3D_HHD 3D_HHS 3D_HS 3D_HH2D 3D_HH2S 3D_HMS_DIL: [:ref:`R5.04.03`] 3D_HM_SI_DIL: [:ref:`R5.04.03`] 3D_THMS_DIL: [:ref:`R5.04.03`] 3D_HH2MS_DIL: [:ref:`R5.04.03`] MECANIQUE 3D hydraulique non saturé en volumes finis 3D_HH2SUDA: [:ref:`R7.01.34`] MECANIQUE 3D tuyaux TUYAU_3M: [:ref:`R3.08.06`] TUYAU_6M: [:ref:`R3.08.06`] MECANIQUE 3D éléments joints pour la propagation de fissure Pour les maillages 3D, permet de renseigner les groupes de mailles ou les mailles susceptibles d’être coupées par la fissure lorsque le contact est défini sur les lèvres de la fissure. Sont permis les types de mailles suivants: ``HEXA20``, ``PENTA15``, ``TETRA10``, et les mailles de bord de ces éléments, soient les ``QUAD8`` et ``TRIA6``. Si les mailles sont linéaires, il faut au préalable les transformer en mailles quadratiques (avec ``LINE_QUAD`` de la commande [:ref:`CREA_MAILLAGE `]). 3D_JOINT: [:ref:`R3.06.09`] 3D_JOINT_HYME: [:ref:`R3.06.09`] 3D_INTERFACE: [:ref:`R3.06.13`] 3D_INTERFACE_S: [:ref:`R3.06.13`] Affectation des macro-éléments ------------------------------ Le mot-clé ``AFFE_SOUS_STRUC`` est utilisable uniquement pour un modèle utilisant des sous-structures (ou macro-éléments ou super-éléments) statiques. ``SUPER_MAILLE`` est la liste des super-mailles que l'on veut affecter dans le modèle. Comme pour les éléments finis, il n'est pas obligatoire d'affecter toutes les mailles du maillage. C'est ``AFFE_MODELE`` qui confirme quelles sont les sous-structures qui seront utilisées dans le modèle. La différence avec les éléments finis classiques est que sur les super-mailles, on ne choisit ni la ``MODELISATION`` ni le ``PHENOMENE`` car le macro-élément (construit par l'opérateur [:ref:`MACR_ELEM_STAT `]) qui sera affecté sur la super-maille possède sa propre modélisation et son propre phénomène (ceux qui ont servi à le calculer). Attention ! Votre modèle doit contenir au moins un élément fini (mot-clé ``AFFE``) quand vous utilisez des sous-structures statiques définies à partir d'un maillage physique (lu par [:ref:`LIRE_MAILLAGE `]) car il n'est pas possible de n'avoir que des macro-éléments dans ce cas. Si ``TOUT = 'OUI'``, toutes les (super) mailles sont affectées. Vérifications ------------- Le mot-clé ``VERI_JACOBIEN`` sert à vérifier que les mailles du modèle ne sont pas trop distordues. On calcule le jacobien de la transformation géométrique qui transforme l'élément de référence en chaque maille réelle du modèle. Si sur les différents points d'intégration d'une maille, le jacobien change de signe, c'est que cette maille est très «mal fichue». Une alarme est alors émise. Le mot-clé ``VERI_NORM_IFS`` sert à vérifier que toutes les normales sur les interfaces fluide-structure (modélisation de type ``FLUI_STRU``) sont bien orientées dans le même sens. Si ce n'est pas le cas, une alarme est émise et l’utilisateur est invité à réorienter ces normales soit dans son maillage directement, soit via la commande [:ref:`MODI_MAILLAGE `]. Le mot-clé ``VERI_PLAN`` sert à vérifier que les mailles de type ``QUAD4`` utilisées dans les formulations de plaque (``DKT``, ``DST``, etc.) sont bien planes. On construit un plan sur les trois premiers noeuds de l'élément, puis on calcule la distance du quatrième point par rapport à ce plan. Si la distance est supérieure à :math:`1,0 \times 10^{-4}`, alors l'alarme est émise avec la liste des mailles concernées. Le mot-clé ``VERI_FORMULATION_IFS`` sert à vérifier qu'on utilise la même ``FORMULATION`` pour les mailles de fluide et ``FLUI_STRU``. Néanmoins, on peut lever cette vérification dans certaines situations. Typiquement, si les mailles affectées par le fluide (ou l'interface) ne sont pas connectées entre elles (par leur noeuds), on peut affecter des formulations différentes. Mot-clé facteur ``GRANDEUR_CARA`` --------------------------------- Le mot-clé facteur ``GRANDEUR_CARA`` sert à définir quelques grandeurs physiques caractéristiques du problème traité. Ces grandeurs sont utilisées actuellement pour «a-dimensionner» certains termes des estimateurs d'erreur en HM. Voir [:ref:`R4.10.05`]. Distribution des mailles ------------------------ Principes ~~~~~~~~~ Le mot-clé facteur ``DISTRIBUTION`` permet de répartir les éléments finis du modèle pour le parallélisme des calculs élémentaires, des assemblages et de certains solveurs linéaires, voir [:ref:`Notice d'utilisation du parallélisme `]. Il définit comment seront distribués (ou non) les mailles/éléments pour les phases parallélisées. L'utilisateur a donc la possibilité de piloter cette distribution entre les processeurs. Le parallélisme opère: * sur les calculs élémentaires et sur les assemblages de matrices et vecteurs (c'est ce que le mot-clé facteur ``DISTRIBUTION`` permet de contrôler), * à la résolution du système linéaire si le solveur est parallélisé ([:ref:`Mot-clé SOLVEUR `]). Remarque Dans le cas du mode de parallélisme (maillage parallèle de type ``maillage_p``), le mode de distribution est obligatoirement ``CENTRALISE`` car le maillage a déjà été distribué et il n’est pas possible de redistribuer à nouveau les calculs. Si un autre mode de distribution est choisi pour ce mode de parallélisme, il sera automatiquement basculé en mode ``CENTRALISE`` sans en avertir l’utilisateur. Il est possible de modifier le mode de distribution au cours de son étude. Il suffit d'utiliser la commande [:ref:`MODI_MODELE `]. Il peut être pratique de poursuivre un calcul parallèle avec un nombre de processeurs différents de celui utilisé pour le calcul initial. En particulier, on peut vouloir réaliser certains post-traitements en séquentiel. Il est recommandé d'utiliser la commande [:ref:`MODI_MODELE `] pour définir la distribution à utiliser en poursuite. Plus précisément, lorsque le calcul initial a utilisé le parallélisme par groupes d'éléments (``GROUP_ELEM`` ou ``SOUS_DOMAINE``), la commande [:ref:`MODI_MODELE `] est inutile. En revanche, lorsque le calcul initial a utilisé le parallélisme "par éléments" (``MAIL_CONTIGU`` ou ``MAIL_DISPERSE``), la commande [:ref:`MODI_MODELE `] est obligatoire. Si on l'oublie, on est arrêté lors du calcul par un message d'erreur. Choix de la méthode ~~~~~~~~~~~~~~~~~~~ Il existe différents modes de distribution des mailles, contrôlés par le mot-clé ``METHODE``. Quand on choisit la méthode ``METHODE='CENTRALISE'``, le parallélisme ne commence qu'au niveau du solveur linéaire. Chaque processeur construit et fournit au solveur l'intégralité du système à résoudre. Les calculs élémentaires ne sont pas parallélisés. C’est la méthode de distribution obligatoire dans le cas d’un maillage parallèle de type ``maillage_p``. La méthode de distribution ``METHODE='GROUP_ELEM'`` permet un équilibrage de charge parfait (en terme de nombres de calculs élémentaires) *a priori* , c’est-à-dire que chaque processeur effectuera, pour un type d'élément donné, le même nombre de calculs élémentaires (à un près). Bien évidemment cela ne préjuge en rien de l'équilibrage de charge final en particulier dans les calculs non-linéaires où le coût d'un calcul élémentaire dépend d'autres paramètres que le type d'élément. Dans ce mode, les éléments du modèle sont regroupés par «groupe» afin de mutualiser certains calculs ce qui permet de gagner en efficacité. Le nombre d'éléments par groupe peut être choisi dans la commande [:ref:`DEBUT `]. Par ailleurs, il s'agit du seul mode en mesure de répartir les calculs élémentaires induits par les éléments tardifs, c’est-à-dire par les chargements tels que les conditions aux limites dualisées ou le contact. La distribution par ``METHODE='MAIL_DISPERSE'`` s'opère sur les mailles. Elles sont réparties équitablement sur les différents processeurs disponibles. Les mailles sont réparties sur les différents processeurs comme on le fait quand on distribue des cartes à plusieurs joueurs. On parle aussi de distribution «cyclique». Par exemple, avec un modèle comportant 8 mailles, effectué sur 4 processeurs, on obtient la répartition suivante: .. csv-table:: "Mode de distribution", "Maille 1", "Maille 2", "Maille 3", "Maille 4", "Maille 5", "Maille 6", "Maille 7", "Maille 8" "MAIL_DISPERSE", "Proc. 0", "Proc. 1", "Proc. 2", "Proc. 3", "Proc. 0", "Proc. 1", "Proc. 2", "Proc. 3" On voit qu'avec ce mode de distribution, un processeur traitera des mailles régulièrement espacées dans l'ordre des mailles du maillage. L'avantage de cette répartition est que «statistiquement», : chaque processeur traitera autant d'hexaèdres, de pentaèdres, …, et de triangles. La charge de travail pour les calculs élémentaires sera en général bien répartie. En revanche, la matrice assemblée sur un processeur sera très «dispersée», à l'inverse de ce qui se passe pour le mode ``MAIL_CONTIGU`` suivant. La distribution par ``METHODE='MAIL_CONTIGU'`` s'opère sur les mailles. Elles sont réparties en paquets de mailles contiguës sur les différents processeurs disponibles. Par exemple, avec un modèle comportant 8 mailles, une machine de 4 processeurs disponibles, on obtient la répartition suivante: .. csv-table:: "Mode de distribution", "Maille 1", "Maille 2", "Maille 3", "Maille 4", "Maille 5", "Maille 6", "Maille 7", "Maille 8" "MAIL_CONTIGU", "Proc. 0", "Proc. 0", "Proc. 1", "Proc. 1", "Proc. 2", "Proc. 2", "Proc. 3", "Proc. 3" Contrôle de la charge ~~~~~~~~~~~~~~~~~~~~~ Pour les modes de distribution par éléments, la charge de travail pour les calculs élémentaires peut être moins équilibrée. Par exemple, un processeur peut n'avoir à traiter que des mailles «faciles» de bord. En revanche, la matrice assemblée sur un processeur est en général plus compacte. Le mot-clé ``CHARGE_PROC0_MA`` n'est accessible que pour les modes de distribution ``MAIL_DISPERSE`` et ``MAIL_CONTIGU``. En effet ces modes de distribution ne répartissent en général pas équitablement la charge des calculs à cause des conditions aux limites dualisées dont les calculs élémentaires sont traités par le processeur 0. Si l'on souhaite soulager le processeur 0 (ou au contraire le surcharger), on peut utiliser le mot-clé ``CHARGE_PROC0_MA``. Il permet à l'utilisateur de choisir le pourcentage de charge que l'on souhaite affecter au processeur 0. Par exemple, si l'utilisateur choisit ``CHARGE_PROC0_MA=80`` le processeur 0 traitera 20% d'éléments de moins que les autres processeurs, soit 80% de la charge qu'il devrait supporter si le partage était équitable entre les processeurs. Décomposition du maillage ~~~~~~~~~~~~~~~~~~~~~~~~~ La distribution par la méthode ``METHODE='SOUS_DOMAINE'`` des mailles se base sur une décomposition du maillage en sous-domaines, construite par un outil externe de partitionnement défini par le mot-clé ``PARTITIONNEUR``. Le nombre de sous-domaines peut être déterminé par l'utilisateur, via le mot-clé ``NB_SOUS_DOMAINE``. Par défaut, le nombre de sous-domaines est pris égal au nombre de processeurs impliqués dans le calcul. Les éléments du modèle éléments finis portés par les mailles de chaque sous-domaine sont ensuite répartis par groupes d'éléments semblables (comme dans la distribution correspondant à la méthode ``GROUP_ELEM``), afin d'équilibrer au mieux les calculs élémentaires. Le partitionnement préalable du maillage en sous-domaines permet d'assurer que tous les éléments d'un groupe d'éléments finis appartiennent à un seul sous-domaine.