u7.03.51 Macro-commande RAFF_XFEM#
Syntaxe#
Détail de la syntaxe
/ carte
/ cham_no = RAFF_XFEM(
◇ TYPE = / "DISTANCE" (par défaut),
/ "ZONE",
◆ FISSURE = fiss_xfem,
# Si: equal_to("TYPE", 'ZONE')
◆ RAYON = float,
)
◆ : obligatoire
◇ : optionnel
⟐ : présent par défaut
& : ensemble
/ : un seul parmi
| : plusieurs choix possibles
Fonctionnement général#
L’opérateur RAFF_XFEM permet de créer un champ en prévision d’un raffinement de maillage dans le cadre des fissures représentées par la méthode X-FEM. L’idée est de caractériser les noeuds ou les mailles situés dans une zone autour du fond de fissure (zone d’intérêt). Cela permettra de raffiner ultérieurement les mailles proches du fond de fissure, par exemple pour améliorer le calcul du taux de restitution d’énergie.
Le champ créé par RAFF_XFEM peut être qualifié de champ (ou d’indicateur) «d’erreur» a priori .
L’indicateur créé peut être de 2 types (TYPE = “DISTANCE” ou “ZONE”).
Indicateur en distance#
En choisissant ce type d'indicateur, l'opérateur RAFF_XFEM crée un champ aux nœuds «d'erreur» a priori. Cette erreur en chaque nœud témoigne de la distance minimum des distances aux fonds des fissures (ou à la surface pour les interfaces).
Ainsi, les nœuds proches des fonds des fissures X-FEM (ou des surfaces X-FEM pour les interfaces) auront une «erreur» élevée. En revanche, plus le nœud est éloigné, plus «l'erreur» sera faible. Ce critère sert pour le logiciel de raffinement de maillage, utilisé par la suite (voir par exemple sslp317a,b). Les nœuds les plus proches des fonds de fissures seront raffinés en priorité.
Plus précisément si on note :math:`\mathrm{lsn}`la level set normale et :math:`\mathrm{lst}`la level set tangente, le champ au nœuds créé a pour formule:
\(\mathrm{erreur}=-r\) où \(r\) est la distance :
au fond de fissure pour les fissures: \(r=\sqrt{({\mathrm{lsn}}^{2}+{\mathrm{lst}}^{2})}\)
à l’interface pour les interfaces: \(r=\sqrt{({\mathrm{lsn}}^{2})}\)
Les valeurs du champ sont donc toutes négatives. Les nœuds très éloignés (\(r\) grand) auront des valeurs de l’erreur négatives très éloignées de 0 et les nœuds proches (\(r\) petit) auront des valeurs de l’erreur négatives proches de 0. Il suffira de dire à Homard (MACR_ADAP_MAIL) de raffiner les mailles où la valeur est la plus grande (mathématiquement parlant). Pour cela, il faudra spécifier dans MACR_ADAP_MAIL:
USAGE_CMP = “RELATIF”
On pourra soit raffiner un pourcentage donné de mailles les plus proche du fond (CRIT_RAFF_PE), soit donner une valeur de la distance (plus précisément l’opposé de la distance) en deçà de laquelle les mailles seront raffinées (CRIT_RAFF_ABS). Pour plus de conseils, consultez la documentation [U2.05.02].
Cet indicateur en distance peut poser des problèmes que nous n’évoquerons pas ici. C’est pourquoi un deuxième indicateur, plus robuste, a été développé.
Indicateur par zone (indicateur binaire)#
C’est l’indicateur conseillé .
En choisissant cet indicateur, l’opérateur RAFF_XFEM crée un champ par maille (champ de type carte) de nature binaire. Le principe de cet indicateur est de valoir 1 dans la zone à raffiner (zone d’intérêt) et 0 partout ailleurs. La zone d’intérêt est en 2D un disque autour du fond de fissure et en 3D un tore autour du fond de fissure, caractérisée par la donnée d’un rayon \({R}_{\mathit{raff}}\) .
Pour les interfaces, la zone d’intérêt est une bande autour de l’interface.
Plus précisément:
Le champ est initialisé à 0.
Le champ est mis à 1 si la maille contient:
le fond de fissure (pour les fissures),
l’interface (pour les interfaces).
De plus, le champ est mis à 1 si la maille possède au moins un nœud situé à une distance du fond (ou de l’interface) inférieure à \({R}_{\mathit{raff}}\) . Cette distance est déterminée de la même façon que celle intervenant dans l’indicateur en distance (voir § 3.1 ).
Cet indicateur est plus facile à manipuler que l’indicateur en distance. Il s’utilise avec les mot-clés par défaut de MACR_ADAP_MAIL, mais exclusivement avec un critère en valeur absolue (CRIT_RAFF_ABS). Peu importe la valeur du critère (entre 0 et 1), mais pour des questions de lisibilité, on conseille de choisir CRIT_RAFF_ABS= 0,5. On trouvera des exemples d’utilisation dans les tests sslv155[b,c] , sslv110f , sslp317c . Pour plus de conseils, consultez la documentation [U2.05.02].
Remarque commune au 2 types d’indicateur#
Il faut noter que les 2 indicateurs se basent sur les level sets. À l’heure actuelle, les level sets sont calculées sur tout le maillage, mais on peut limiter la zone potentielle d’enrichissement à une partie seulement du maillage (mot clé GROUP_MA_ENRI de la commande DEFI_FISS_XFEM). Dans le cas où les level sets sont susceptibles de définir une fissure en dehors de la zone délimitée par GROUP_MA_ENRI [1] , l’indicateur calculé par RAFF_XFEM se basant sur les level sets, ne tient pas compte de la restriction de la fissure. Cela signifie que certains nœuds ou certaines mailles (en dehors de GROUP_MA_ENRI) pourront avoir des valeurs de l’erreur forte sans toutefois être proches du fond de fissure. Pour éviter que ces nœuds provoquent un raffinement inutile dans cette zone, il est conseillé de limiter également la zone de raffinement dans MACR_ADAP_MAIL, grâce au mot-clé GROUP_MA (mettre le même groupe de mailles que celui renseigné sous GROUP_MA_ENRI).
Opérandes#
Opérande TYPE#
◊ TYPE = / 'DISTANCE', [DEFAUT]
/ “ZONE”
Permet de choisir le type d’indicateur. Par défaut, c’est indicateur en distance qui est choisi.
- 3
Voir la description du fonctionnement des 2 types d’indicateur au §.
Opérande FISSURE#
FISSURE = (fiss1, fiss2)
(fiss1, fiss2): liste des noms des fissures (ou interfaces) définies au préalable par l’opérateur DEFI_FISS_XFEM [U4.82.08]. Le nombre de fissures (ou interfaces) n’est pas limité.
Opérande RAYON#
Permet de renseigner la valeur du rayon de la zone d’intérêt (voir § 3.2 ). Cet opérande n’est possible que pour l’indicateur par zone.