Code_Aster ®
Version
8.2

Titre :

Macro-commande MACR_ADAP_MAIL


Date :
31/01/06
Auteur(s) :
G. NICOLAS Clé
:
U7.03.01-D1 Page :
1/14

Organisme(s) : EDF-R&D/SINETICS
















Manuel d'Utilisation
Fascicule U7.0- : Echanges de données
Document : U7.03.01




Macro-commande MACR_ADAP_MAIL



1 But

Adapter un maillage avec le logiciel HOMARD.

Cette opération se place après un premier calcul sur un maillage formé de segments, mailles-points,
triangles, quadrangles, tétraèdres. Un indicateur de l'erreur aura été calculé. En fonction de sa valeur
maille par maille, le logiciel HOMARD modifiera le maillage. Il est également possible d'interpoler des
champs aux noeuds ou constants par éléments de l'ancien maillage vers le nouveau.

On peut enchaîner calcul et adaptation au fur et à mesure d'un processus d'amélioration du calcul.
Toutefois, ce processus ne peut pas être interrompu puis repris par une "POURSUITE". Tout doit avoir
lieu en une passe.

Le logiciel HOMARD est présenté sur le site :

http://www.code-aster.org/outils/homard

On y trouve une description de la technique utilisée pour modifier les maillages ainsi que des
exemples.
Pour en savoir plus sur HOMARD, on peut se référer aux documents cités en bibliographie.
Manuel d'Utilisation
Fascicule U7.0- : Echanges de données
HT-62/06/004/A

Code_Aster ®
Version
8.2

Titre :

Macro-commande MACR_ADAP_MAIL


Date :
31/01/06
Auteur(s) :
G. NICOLAS Clé
:
U7.03.01-D1 Page :
2/14


2 Syntaxe

MACR_ADAP_MAIL (
# caractéristiques de l'adaptation

ADAPTATION =
_F (

# choix du type d'adaptation

/ LIBRE = / 'RAFF_DERA'
/
'RAFFINEMENT'
/
'DERAFFINEMENT'
/ UNIFORME = / 'RAFFINEMENT'
/
'DERAFFINEMENT'
/
'RIEN'


# le maillage à modifier

MAILLAGE_N = man











[maillage]


# le nouveau maillage


MAILLAGE_NP1
=
co
(manp1) [K8]


# Si l'adaptation est libre


# choix de la structure contenant l'indicateur



/
RESULTAT_N =
resun
[evol_elas]
[evol_thme]
[evol_noli]
[evol_ther]




INDICATEUR =
indic
[K16]
/
CHAM_GD =
cham_gd_i
[cham_gd]


NOM_CMP_INDICA = cmp
[K8]


Sélection du paramètre temporel
/
NUME_ORDRE
=
ordre
[I]
/
INST
=
instant
[R]




I PRECISION
=
/
prec [R]
/
1.0E-3
[DEFAUT]





I CRITERE = / 'RELATIF'
[DEFAUT]
/
'ABSOLU'

#
Si
raffinement



/ CRIT_RAFF_PE
= crp
[R]
/
CRIT_RAFF_REL
=
crr
[R]
/
CRIT_RAFF_ABS
=
cra
[R]


# Finsi
#
Si
déraffinement



/ CRIT_DERA_PE
= cdp
[R]
/
CRIT_DERA_REL
=
cdr
[R]
/
CRIT_DERA_ABS
=
cda
[R]


# Finsi


# Finsi


# Si raffinement, libre ou uniforme


NIVE_MAX
=
nivmax
[I]

# Finsi

# Si déraffinement, libre ou uniforme


NIVE_MIN
=
nivmin
[I]

# Finsi






)
Manuel d'Utilisation
Fascicule U7.0- : Echanges de données
HT-62/06/004/A

Code_Aster ®
Version
8.2

Titre :

Macro-commande MACR_ADAP_MAIL


Date :
31/01/06
Auteur(s) :
G. NICOLAS Clé
:
U7.03.01-D1 Page :
3/14


# Suivi d'une frontière

MAILLAGE_FRONTIERE
=
maf
[maillage]


GROUP_MA
=
l_grma [l_gr_maille]

# Mise à jour de champs sur le nouveau maillage
MAJ_CHAM = _F (


# choix de la structure contenant le champ à mettre à jour



/
RESULTAT
=
resu [evol_elas]
[evol_thme]
[evol_noli]
[evol_ther]




NOM_CHAM
=
nomsymb [K16]
/
CHAM_GD =
cham_gd [cham_gd]

Sélection du paramètre temporel
/
NUME_ORDRE
=
ordre
[I]
/
INST
=
instant
[R]



I PRECISION
=
/
prec [R]
/
1.0E-3
[DEFAUT]




I CRITERE = / 'RELATIF'
[DEFAUT]
/
'ABSOLU'


CHAM_MAJ
=
co
(chpmaj)
[K8]

TYPE_CHAM
= / 'NOEU_TEMP_R'







/ 'NOEU_DEPL_R'
/
etc
...





)


NON_SIMPLEXE = / 0






/ 1
/
2
[DEFAUT]

NOMBRE
=
/
'OUI'
[DEFAUT]
/
'NON'

QUALITE = / 'OUI'
/
'NON'
[DEFAUT]
CONNEXITE
= / 'OUI'
/
'NON'
[DEFAUT]
TAILLE
=
/
'OUI'
/
'NON'
[DEFAUT]
INTERPENETRATION
= / 'OUI'
/
'NON'
[DEFAUT]

LANGUE
=
/
'FRANCAIS' [DEFAUT]
'FRENCH'
'ANGLAIS'
'ENGLISH'
VERSION_HOMARD = / 'V7_7'
[DEFAUT]
/
'V7_N'
/
'V7_N_PERSO'
INFO = / 1 [DEFAUT]




/ 2





) ;
Manuel d'Utilisation
Fascicule U7.0- : Echanges de données
HT-62/06/004/A

Code_Aster ®
Version
8.2

Titre :

Macro-commande MACR_ADAP_MAIL


Date :
31/01/06
Auteur(s) :
G. NICOLAS Clé
:
U7.03.01-D1 Page :
4/14


3
Description d'une adaptation de maillage

3.1
Schéma général d'une adaptation

Le principe d'un calcul avec adaptation de maillage est le suivant :

Phase 1 :
Lecture du maillage initial, m0
Définition des matériaux
Phase 2 :
·
définition du modèle, des chargements sur ce maillage m0
·
calcul mécanique produisant un résultat resu0
·
calcul d'un indicateur d'erreur, ERR0

Cette phase initiale est la phase standard de tout calcul

Phase 3 :
Adaptation. On récupère un nouveau maillage , m1
Phase 4 :
·
définition du modèle, des chargements sur le maillage m1,
·
calcul mécanique produisant un résultat resu1,
·
calcul d'un indicateur d'erreur, ERR1.

La phase 4 est la copie de la phase 2. La seule chose qui a changé est le maillage. De ce fait, tous les
concepts en dépendant doivent être repris. Aujourd'hui, il n'y a pas de possibilité ni de réutiliser les
anciens concepts, ni de les détruire automatiquement.

Ensuite, on peut poursuivre, autant de fois que l'on veut, le tandem phase 3/phase 4. En l'absence de
structure de boucle dans le langage de commandes, l'utilisateur doit dupliquer lui-même les
instructions.

Voir la référence [bib1] pour une présentation générale de l'adaptation de maillage et de HOMARD,
accompagnée d'exemples.

Attention :

Cet enchaînement de calculs et d'adaptations ne doit pas être interrompu puis repris par une
"POURSUITE".


3.2
Fonctionnement de la macro-commande

La phase 3 réalise l'adaptation du maillage. Elle est activée par la macro-commande
MACR_ADAP_MAIL, décrite dans ce document. Elle a pour argument essentiel le nom du concept du
maillage courant et le nom que l'on donnera au concept du futur maillage. L'autre donnée obligatoire
est le type d'adaptation que l'on souhaite : libre, c'est-à-dire en fonction des valeurs que prend un
indicateur d'erreur sur les éléments du maillage, ou uniforme, c'est-à-dire que tous les éléments sont
traités de la même manière.

Les autres données dépendent ensuite des options retenues.

En complément à l'adaptation, HOMARD peut fournir sur demande des bilans sur la qualité des
éléments du maillage, la connexité du domaine de calcul, les tailles caractéristiques ou un contrôle de
la non interpénétration des éléments. Ces renseignements s'obtiennent par l'activation des mots-clés
associés.

De manière générale, les impressions essentielles fournies par HOMARD sont insérées dans le fichier
"mess" à l'exécution. En cas d'erreur, ou en mode d'information 2, des impressions plus détaillées ont
lieu.

Manuel d'Utilisation
Fascicule U7.0- : Echanges de données
HT-62/06/004/A

Code_Aster ®
Version
8.2

Titre :

Macro-commande MACR_ADAP_MAIL


Date :
31/01/06
Auteur(s) :
G. NICOLAS Clé
:
U7.03.01-D1 Page :
5/14


4 Opérandes

4.1 Mot-clé
ADAPTATION

ADAPTATION = _F (

Cet opérande permet de définir le type d'adaptation souhaité. La sélection se fait d'abord parmi
deux types : libre ou uniforme.

4.1.1 Opérande
LIBRE

/ LIBRE
= / 'RAFF_DERA'
/
'RAFFINEMENT'
/
'DERAFFINEMENT'

Cet opérande est employé pour faire de l'adaptation libre d'un maillage. En d'autres termes,
la décision de (dé) raffiner un élément se prend en fonction de la valeur d'un indicateur
d'erreur calculé auparavant.

Le choix peut se faire entre trois variantes :

·
'RAFF_DERA' : le maillage est raffiné et déraffiné en fonction de l'indicateur
d'erreur,
·
'RAFFINEMENT' : seule la fonction de raffinement est activée. Les éléments à
faible niveau d'erreur ne sont pas déraffinés,
·
'DERAFFINEMENT' : c'est l'inverse, seule la fonction de déraffinement est activée.
Les éléments à haut niveau d'erreur ne sont pas raffinés.

4.1.2 Opérande
UNIFORME

/ UNIFORME
= / 'RAFFINEMENT'
/
'DERAFFINEMENT'
/
'RIEN'

Cet opérande est employé pour faire une adaptation uniforme d'un maillage. En d'autres
termes, tous les éléments du maillage sont traités de la même manière, sans tenir compte
d'un indicateur d'erreur. Le choix peut se faire entre trois variantes :

·
'RAFFINEMENT' : tous les éléments sont raffinés,
·
'DERAFFINEMENT' : tous les éléments sont déraffinés,
·
'RIEN' : tous les éléments sont conservés ; le maillage est le même à la sortie qu'à
l'entrée.

4.1.3 Opérande
MAILLAGE_N

MAILLAGE_N = man

Maillage de type [maillage] à adapter. Attention, l'adaptation ne peut porter que sur les
simplexes : segments, mailles-points, triangles, quadrangles ou tétraèdres, en degré 1 ou 2. Si on
fournit un maillage comportant d'autres éléments, deux cas de figure sont possibles : soit un arrêt
en erreur, soit une adaptation sur la zone en simplexe et une restitution à l'identique du reste du
maillage. Le choix entre ces deux modes de fonctionnement est fait par le mot-clé
NON_SIMPLEXE.

4.1.4 Opérande
MAILLAGE_NP1

MAILLAGE_NP1 = co
(manp1)

Le nom du concept de type [maillage] qui contiendra le maillage issu de l'adaptation. Ce nom
doit respecter les contraintes habituelles des noms de concept (8 caractères au maximum) et ne
jamais avoir été utilisé.
Manuel d'Utilisation
Fascicule U7.0- : Echanges de données
HT-62/06/004/A

Code_Aster ®
Version
8.2

Titre :

Macro-commande MACR_ADAP_MAIL


Date :
31/01/06
Auteur(s) :
G. NICOLAS Clé
:
U7.03.01-D1 Page :
6/14


4.1.5 Opérande
RESULTAT_N

RESULTAT_N = resun

Cet opérande permet de désigner le concept de type [resultat] qui contient l'indicateur d'erreur
à utiliser pour de l'adaptation libre.

4.1.6 Opérande
INDICATEUR

INDICATEUR = indic

On précise ici quel est l'indicateur d'erreur qui est utilisé pour l'adaptation.

Attention :

Le champ doit être présent dans le résultat ; s'il est absent, il n'est pas calculé d'office.
L'utilisateur a le choix de l'indicateur : soit des champs déjà définis en standard dans
Aster (cf. [U4.81.02] et [U4.81.03], soit un champ personnalisé. A lui de choisir ce qui est
pertinent pour son calcul.


4.1.7 Opérande
CHAM_GD

CHAM_GD = cham_gd_i

Cet opérande permet de désigner le concept de type [cham_gd] qui contient l'indicateur d'erreur à
utiliser pour de l'adaptation libre.

4.1.8 Opérande
NOM_CMP_INDICA

NOM_CMP_INDICA = cmp

Nom de la composante du champ indicateur qui doit être utilisée pour piloter l'adaptation de
maillage.

4.1.9 Sélection du paramètre temporel

Si la structure de résultat ne contient le champ d'indicateur d'erreur que pour un seul numéro d'ordre,
rien n'est à préciser. Ce sont les valeurs du champ à ce numéro d'ordre qui seront utilisées.
Sinon, il faut préciser de quel numéro il s'agit. Cela se fait par la désignation d'un numéro d'ordre ou
d'une valeur d'instant. Se référer au document [U4.71.00] pour les détails sur ces mots-clés.

4.1.10 Opérande CRIT_RAFF_xxxx

Dans le cas d'adaptation libre impliquant du raffinement de maillage, il faut définir un critère haut de
l'erreur. Tous les éléments pour lesquels l'indicateur d'erreur est supérieur à ce critère seront raffinés.
Il est important de regarder a posteriori l'allure de la répartition de l'erreur. Cela est possible grâce aux
impressions réalisées par HOMARD dans le fichier mess. On y trouvera en particulier un tableau
présentant cette répartition sous forme d'histogramme ; voir le chapitre 5 pour un exemple commenté.

Pour le choix du critère, trois variantes sont possibles :

4.1.10.1 Opérande CRIT_RAFF_PE

/ CRIT_RAFF_PE = crp

Le critère est défini par une proportion d'éléments à raffiner. C'est un nombre réel compris
entre 0 et 1. Le processus est le suivant :

·
calcul du nombre d'éléments n correspondant à la proportion définie par crp soit
n = crp x nombre total d'éléments
·
raffinement des n éléments avec la plus forte erreur.

Manuel d'Utilisation
Fascicule U7.0- : Echanges de données
HT-62/06/004/A

Code_Aster ®
Version
8.2

Titre :

Macro-commande MACR_ADAP_MAIL


Date :
31/01/06
Auteur(s) :
G. NICOLAS Clé
:
U7.03.01-D1 Page :
7/14


4.1.10.2 Opérande CRIT_RAFF_ABS


/ CRIT_RAFF_ABS = cra

Le critère est défini par une valeur absolue de l'erreur. Tous les éléments avec une erreur
supérieure à cette valeur seront raffinés.

4.1.10.3 Opérande CRIT_RAFF_REL


/ CRIT_RAFF_REL = crr

Le critère est défini par une valeur relative de l'erreur. C'est un nombre compris entre 0 et 1.
Le processus est le suivant :

·
calcul des valeurs minimales et maximales de l'indicateur d'erreur,
·
calcul de la valeur correspondant à la proportion d'erreur : v = vmin + crr (vmax ­
vmin),
·
raffinement de tous les éléments dont l'erreur est supérieure à cette valeur.

4.1.11 Opérande CRIT_DERA_xxxx

Dans le cas d'adaptation libre impliquant du déraffinement, il faut définir un critère bas d'erreur. Tous
les éléments dont l'erreur est inférieure à ce critère seront déraffinés. Trois variantes sont possibles.

4.1.11.1 Opérande CRIT_DERA_PE

/ CRIT_DERA_PE = cdp

Le critère est défini par une proportion d'éléments à raffiner. C'est un nombre compris entre 0
et 1. Le processus est le suivant :

·
calcul du nombre d'éléments n correspondant à la proportion définie par cdp soit n =
cdp x nombre total d'éléments
·
déraffinement des n éléments avec la plus faible erreur.

4.1.11.2 Opérande CRIT_DERA_ABS


/ CRIT_DERA_ABS = cda

Le critère est défini par une valeur absolue de l'erreur. Tous les éléments avec une erreur
inférieure à cette valeur seront déraffinés.

4.1.11.3 Opérande CRIT_DERA_REL


/ CRIT_DERA_REL = cdr

Le critère est défini par une valeur relative de l'erreur. C'est un nombre compris entre 0 et 1.
Le processus est le suivant :

·
calcul des valeurs minimales et maximales de l'indicateur d'erreur,
·
calcul de la valeur d'erreur V correspondant à la proportion d'erreur cdr telle que :
v = vmin + cdr (vmax ­ vmin),
·
déraffinement de tous les éléments dont l'erreur est inférieure à cette valeur.

4.1.12 Opérande NIVE_MAX

NIVE_MAX = nivmax

C'est le niveau maximal de raffinement du maillage. Autrement dit un élément du maillage initial
ne pourra pas être divisé plus de nivmax fois dans l'ensemble du processus.
Manuel d'Utilisation
Fascicule U7.0- : Echanges de données
HT-62/06/004/A

Code_Aster ®
Version
8.2

Titre :

Macro-commande MACR_ADAP_MAIL


Date :
31/01/06
Auteur(s) :
G. NICOLAS Clé
:
U7.03.01-D1 Page :
8/14


4.1.13 Opérande NIVE_MIN

NIVE_MIN = nivmin

C'est le niveau minimal de déraffinement du maillage. C'est-à-dire que seuls les éléments issus
d'au moins nivmin découpages de maillage peuvent être déraffinés.

4.2 Mot
clé
MAILLAGE_FRONTIERE

MAILLAGE_FRONTIERE = maf

En dimension 2, le choix de cette option permet au processus d'adaptation de suivre la courbure
des bords du maillage. On fournit ici un concept Code_Aster de type maillage qui contient un
maillage fin des bords de la géométrie. Ce maillage n'est donc formé à priori que de segments.
Leurs longueurs sont très inférieures à celles des segments de bord du maillage à adopter. Si le
processus d'adaptation est amené à couper un segment de bord, le nouveau noeud sera placé sur
le maillage de la frontière. Ainsi les angles seront adoucis au fur et à mesure des adaptations.
Le repérage des différents bords se fait par les groupes selon la règle suivante : les segments qui
forment un bord sont rassemblés dans un groupe qui porte le même nom dans le maillage de
calcul et dans le maillage de la frontière.
On regardera les cas-tests ZZZZ121d et ZZZZ175a pour des exemples de suivi de frontière.

4.2.1 Opérande
GROUP_MA

GROUP_MA = l_grma

Si cette option est absente, le suivi de la frontière se fait pour tous les groupes définis dans le
maillage de la frontière. Si on souhaite restreindre ce suivi à une partie de la frontière, on donne
ici la liste des groupes de segments qui définissent cette partie de frontière.

4.3 Mot
clé
MAJ_CHAM

MAJ_CHAM = _F (

Ce mot-clé est à employer autant de fois que l'on a de champs à mettre à jour de l'ancien maillage
vers le maillage adapté.

4.3.1 Opérande
RESULTAT

RESULTAT
= resu

Nom du concept [resultat] contenant le champ à mettre à jour.

4.3.2 Opérande
NOM_CHAMP

NOM_CHAMP
=
nomsymb [K16]

Nom symbolique du champ que l'on souhaite exprimer sur le nouveau maillage.


4.3.3 Opérande
CHAM_GD

CHAM_GD
=
cham_gd

Nom du concept [cham_gd] contenant le champ à mettre à jour.

4.3.4 Sélection du paramètre temporel

La sélection du numéro d'ordre associé au champ à interpoler se fait par la désignation d'un numéro
d'ordre ou d'une valeur d'instant. Se référer au document [U4.71.00] pour les détails sur ces mots-clés.
Manuel d'Utilisation
Fascicule U7.0- : Echanges de données
HT-62/06/004/A

Code_Aster ®
Version
8.2

Titre :

Macro-commande MACR_ADAP_MAIL


Date :
31/01/06
Auteur(s) :
G. NICOLAS Clé
:
U7.03.01-D1 Page :
9/14


4.3.5 Opérande
CHAM_MAJ


CHAM_MAJ
= co
(chpmaj)
[K8]

Nom du concept qui contiendra le champ exprimé sur le nouveau maillage. Ce concept ne doit
pas exister. Il sera automatiquement créé.

4.3.6 Opérande
TYPE_CHAM

TYPE_CHAM
= / 'NOEU_DEPL_R'
/
'NOEU_TEMP_R'
/
etc
...

On désigne ici le type du concept à mettre à jour sur le nouveau maillage. Le nom de ce type est
construit avec la logique habituelle de Code_Aster. Les 4 premiers caractères sont 'NOEU',
'ELEM', 'ELNO' ou 'ELGA'. On trouve ensuite '_'. La séquence suivante définit le type de
champ : 'TEMP', 'DEPL', etc. Le nom se termine par '_R' pour un champ réel.

Exemple : 'NOEU_TEMP_R', 'NOEU_DEPL_R', etc.

Attention :

Il n'y a pas de contrôle de cohérence entre le type demandé et le type véritable du
champ à interpoler.


4.4 Opérande
NOMBRE

Remarque :

On consultera le document [U7.03.02] décrivant la commande MACR_INFO_MAIL pour
des commentaires sur les restitutions des opérandes QUALITE, INTERPENETRATION,
NOMBRE, CONNEXITE et TAILLE.


NOMBRE
=
/
'OUI'
[DEFAUT]
/
'NON'

Si le choix est 'NON', rien ne se passe.
Si le choix est 'OUI', un bilan des nombres de noeuds et d'éléments est imprimé sur le fichier de
messages.

4.5 Opérande
QUALITE

QUALITE
=
/ 'OUI'
/
'NON'
[DEFAUT]

Si le choix est 'NON', rien ne se passe.
Si le choix est 'OUI', un bilan de la qualité des éléments est imprimé sur le fichier de message.
La qualité d'un triangle est définie comme étant le rapport entre la longueur du plus grand côté et
le rayon du cercle inscrit. La qualité d'un quadrangle est définie comme le quotient du produit de
la plus grande longueur et des moyennes sur les côtés et les diagonales par la plus petite des
surfaces des triangles internes aux quadrangles. De même, la qualité d'un tétraèdre est définie
comme étant le rapport entre la longueur du plus grand côté et le rayon de la sphère inscrite. Ces
rapports sont normalisés pour valoir 1 dans le cas d'un triangle équilatéral, d'un carré, ou d'un
tétraèdre équilatéral. Pour tout élément non équilatéral, la qualité est supérieure à 1. Voir la
référence [bib1] pour des explications détaillées.
Le résultat est présenté sous forme de tableaux, avec les valeurs extrêmes.
Manuel d'Utilisation
Fascicule U7.0- : Echanges de données
HT-62/06/004/A

Code_Aster ®
Version
8.2

Titre :

Macro-commande MACR_ADAP_MAIL


Date :
31/01/06
Auteur(s) :
G. NICOLAS Clé
:
U7.03.01-D1 Page :
10/14


4.6 Opérande
INTERPENETRATION

INTERPENETRATION
= / 'OUI'
/
'NON'
[DEFAUT]

Si le choix est 'NON', rien ne se passe.
Si le choix est 'OUI', on vérifie que le maillage est correct du point de vue du recouvrement :
aucun triangle n'est à cheval sur un autre triangle, aucun quadrangle n'est à cheval sur un autre
quadrangle, aucun tétraèdre n'entre dans un autre tétraèdre.

4.7 Opérande
TAILLE

TAILLE
=
/
'OUI'
/
'NON'
[DEFAUT]

Si le choix est 'NON', rien ne se passe.
Si le choix est 'OUI', un bilan des tailles des sous-domaines est imprimé sur le fichier de
messages. Un sous-domaine est défini comme un ensemble de mailles de même dimension et
appartenant aux mêmes groupes.

4.8 Opérande
CONNEXITE

CONNEXITE
=
/
'OUI'
/
'NON'
[DEFAUT]

Si le choix est 'NON', rien ne se passe.
Si le choix est 'OUI', un bilan des connexités est imprimé sur le fichier de messages. On précise
alors si les segments, les éléments 2D (triangles et quadrangles réunis) ou les tétraèdres sont
d'un seul tenant ou répartis en plusieurs blocs.

4.9 Opérande
LANGUE

LANGUE
=
/
'FRANCAIS' [DEFAUT]
'FRENCH'
'ANGLAIS'
'ENGLISH'

Cet opérande précise la langue dans laquelle sont imprimés les messages issus de HOMARD.

4.10 Opérande
VERSION_HOMARD

VERSION_HOMARD
=
'V7_7'
[DEFAUT]
'V7_N'
'V7_N_PERSO'

Cet opérande permet de sélectionner la version de HOMARD qui est utilisée pour l'adaptation.
Par défaut, HOMARD 7.7 est lancé. C'est la version de référence. Le choix 'V7_N' active la
version 7.n de HOMARD qui est la version de développement. Le choix 'V7_N_PERSO' active
une version de développement propre à l'utilisateur. Cette option est de fait réservée à l'équipe de
développement de HOMARD pour mettre au point de nouvelles fonctionnalités.

4.11 Opérande
INFO

INFO
=
/ 1




/ 2

Si INFO vaut 2, l'intégralité de la sortie de HOMARD est incluse dans le fichier de message.
Sinon, rien de particulier n'a lieu.
Manuel d'Utilisation
Fascicule U7.0- : Echanges de données
HT-62/06/004/A

Code_Aster ®
Version
8.2

Titre :

Macro-commande MACR_ADAP_MAIL


Date :
31/01/06
Auteur(s) :
G. NICOLAS Clé
:
U7.03.01-D1 Page :
11/14


4.12 Opérande
NON_SIMPLEXE

NON_SIMPLEXE
= / 0







/ 1
/
2
[DEFAUT]

Dans sa version actuelle, HOMARD sait lire tous les types d'éléments mais ne fait porter
l'adaptation que sur certains : mailles-points, segments, triangles, quadrangles et tétraèdres.
En retenant l'option 0, la transmission d'un maillage contenant autre chose que des simplexes
entraînera un arrêt en erreur.
En choisissant l'option 1, on pourra transmettre un maillage comportant n'importe quel type
d'élément. L'adaptation ne portera que sur la zone en simplexes ou en quadrangles. Si par suite
de propagation du raffinement, une zone en hexaèdre ou pentaèdre venait à être touchée, il y a
un arrêt en erreur. Sinon, quand le raffinement se limite à la zone en simplexes ou en
quadrangles, les autres éléments sont restitués sans changement.
Avec l'option 2, on n'autorise le raffinement que sur tous les éléments que sait traiter HOMARD :
mailles-points, segments, triangles, quadrangles et tétraèdres. La présence d'hexaèdres ou de
pentaèdres entraînera un arrêt en erreur. C'est l'option par défaut.



5 Exemple

On regardera avec profit les fichiers de commandes associés aux cas-tests ZZZZ121a, b, c, d. Ils
expriment les processus d'adaptation de maillage sous la forme d'une boucle en langage Python.

Voici un exemple de paramétrage de la macro-commande.

MACR_ADAP_MAIL (
ADAPTATION =
_F
(
LIBRE
=
'RAFF_DERA',
MAILLAGE_N
=
mun,
MAILLAGE_NP1
=
CO
("mdeux"),
RESULTAT_N
=
remeun,
INDICATEUR
=
'ERRE_ELGA_NORE',
NOM_CMP_INDICA
=
'ERREST'
NUME_ORDRE
=
3,
CRIT_RAFF_PE
=
0.01,
CRIT_DERA_PE
=
0.25,
NIVE_MAX
=
5










),
MAJ_CHAM
=
_F
(
RESULTAT

=
rethun,
NOM_CHAM
=
'TEMP',
TYPE_CHAM
=
'NOEU_TEMP_R',
INST
=
12.5,
CHAM_MAJ

=
CO
("tempdeux")










),
QUALITE
=
'OUI',
INTERPENETRATION
=
'NON'





)

Cette séquence va adapter le maillage contenu dans le concept mun et restituer un concept maillage
de nom mdeux. L'adaptation se fait par raffinement et déraffinement libre, selon l'indicateur d'erreur
contenu dans le champ ERRE_ELGA_NORE du résultat remeun, au 3ème instant ; la composante utilisée
est ERREST. Les éléments seront classés en fonction de leur niveau d'erreur décroissant. Le premier
% sera raffiné ; les 25% derniers seront candidats au déraffinement. Aucun élément du maillage final
ne devra être issu de plus de 5 raffinements.

Le champ TEMP du résultat rethun à l'instant 12,5 est exprimé sur le maillage mun. Il sera exprimé
sur le maillage mdeux sous la forme du champ de température aux noeuds tempdeux.

Un récapitulatif de la qualité des éléments du nouveau maillage est produit. On ne contrôle pas
l'interpénétration des éléments.
Manuel d'Utilisation
Fascicule U7.0- : Echanges de données
HT-62/06/004/A

Code_Aster ®
Version
8.2

Titre :

Macro-commande MACR_ADAP_MAIL


Date :
31/01/06
Auteur(s) :
G. NICOLAS Clé
:
U7.03.01-D1 Page :
12/14


Voici un exemple du tableau présentant la répartition de l'indicateur d'erreur sur le maillage.


**********************************************************
* Indicateurs d'erreur sur le maillage de calcul *
* Erreur sur les 956 triangles *
**********************************************************
* Minimum : 40.577 Maximum : 71888. *
**********************************************************

**********************************************************
* Fonction de repartition *
* *
* Valeurs * Nombre d'elements *
* Mini < < Maxi * par classe * cumul *
* * 10**4 * en % . nombre * en % . nombre *
**********************************************************
* 0.00 < 0.36 * 89.33 . 854 * 89.33 . 854 *
* 0.36 < 0.72 * 9.62 . 92 * 98.95 . 946 *
* 0.72 < 1.08 * 0.21 . 2 * 99.16 . 948 *
* 1.08 < 1.44 * 0.10 . 1 * 99.27 . 949 *
* 1.44 < 1.80 * 0.31 . 3 * 99.58 . 952 *
* 1.80 < 2.16 * 0.10 . 1 * 99.69 . 953 *
* 2.16 < 2.52 * 0.00 . 0 * 99.69 . 953 *
* 2.52 < 2.88 * 0.00 . 0 * 99.69 . 953 *
* 2.88 < 3.24 * 0.00 . 0 * 99.69 . 953 *
* 3.24 < 3.60 * 0.00 . 0 * 99.69 . 953 *
* 3.60 < 3.96 * 0.00 . 0 * 99.69 . 953 *
* 3.96 < 4.32 * 0.00 . 0 * 99.69 . 953 *
* 4.32 < 4.68 * 0.10 . 1 * 99.79 . 954 *
* 4.68 < 5.04 * 0.00 . 0 * 99.79 . 954 *
* 5.04 < 5.40 * 0.00 . 0 * 99.79 . 954 *
* 5.40 < 5.76 * 0.00 . 0 * 99.79 . 954 *
* 5.76 < 6.12 * 0.00 . 0 * 99.79 . 954 *
* 6.12 < 6.48 * 0.00 . 0 * 99.79 . 954 *
* 6.48 < 6.84 * 0.10 . 1 * 99.90 . 955 *
* 6.84 < 7.20 * 0.10 . 1 * 100.00 . 956 *
* 7.20 < inf. * 0.00 . 0 * 100.00 . 956 *
**********************************************************

100
90
80
ents
70
60
50
40
30
20
Pourcentage d'élém
10
0
,72
,44
,16
,88
,60 ,96
,68
,40
,12
,84
< 0
< 1
< 2
< 2
< 3 < 3
< 4
< 5
< 6
< 6
00 < 0,36
36 72 < 1,08
08 44 < 1,80
80 16 < 2,52
52 88 < 3,24
24 60 96 < 4,32
32 68 < 5,04
04 40 < 5,76
76 12 < 6,48
48 84 < 7,20
0,
0,
0,
1,
1,
1,
2,
2,
2,
3,
3,
3,
4,
4,
5,
5,
5,
6,
6,
6,
Plage d'erreur

Manuel d'Utilisation
Fascicule U7.0- : Echanges de données
HT-62/06/004/A

Code_Aster ®
Version
8.2

Titre :

Macro-commande MACR_ADAP_MAIL


Date :
31/01/06
Auteur(s) :
G. NICOLAS Clé
:
U7.03.01-D1 Page :
13/14


Le diagnostic sur la répartition de l'indicateur d'erreur sur le maillage rappelle d'abord les valeurs
extrêmes rencontrées dans le calcul en cours. Ici le minimum est de 40,577 et le maximum de 71888.
Ensuite on présente la répartition par tranche équidistante à partir de la valeur optimum, 0. On voit que
854 triangles ont une erreur inférieure à 0,36*104, soit 89,33 % du nombre total de triangles.
92 triangles ont une erreur comprise entre 0,36*104 et 0,72*104, soit 9,62 % du nombre total de
triangles. En cumulé, on constate donc que 946 (=854+92) triangles ont une erreur inférieure à
0,72*104, soit 98,95 % du total. Et ainsi de suite. Par exemple, 99,58 % des éléments ont une erreur
inférieure à 1,80*104.

Sur la figure précédente, on peut voir la représentation sous forme d'histogramme des pourcentages
d'éléments dans chacune des plages de d'erreur concernées. Comme on pouvait également le
constater dans le tableau précédent, on constate que très peu d'éléments concentrent une forte erreur.
En visualisant une représentation du pourcentage cumulé d'éléments dans une plage d'erreur donnée,
on a la figure suivante.

102
100
ents
98
96
94
lé d'élém
u

92
90
88
86
84
Pourcentage cum
82
,72
,44
,16
,88
,60 ,96
,68
,40
,12
,84
< 0
< 1
< 2
< 2
< 3 < 3
< 4
< 5
< 6
< 6
00 < 0,36
36 72 < 1,08
08 44 < 1,80
80 16 < 2,52
52 88 < 3,24
24 60 96 < 4,32
32 68 < 5,04
04 40 < 5,76
76 12 < 6,48
48 84 < 7,20
0,
0,
0,
1,
1,
1,
2,
2,
2,
3,
3,
3,
4,
4,
5,
5,
5,
6,
6,
6,
Plage d'erreur


De cette répartition de l'erreur, on peut déduire deux conséquences sur les stratégies de raffinement.
Si on demande un raffinement sur un critère relatif de l'erreur, mot-clé CRIT_RAFF_REL, cela revient à
sélectionner les éléments les éléments qui se trouvent à droite de la ligne verticale passant par ce
critère. Par exemple si on demande CRIT_RAFF_REL = 0.85, on sélectionnera tous les éléments
dont l`erreur est supérieure à 0,85*71888, soit 61105. On constate que cela correspond à très peu
d'éléments : 2 seulement dépassent cette valeur, soit 0,2% du total.
Si on demande un raffinement sur un pourcentage d'éléments, mot-clé CRIT_RAFF_PE, cela revient à
sélectionner les éléments les éléments qui se trouvent au-dessus de la ligne horizontale passant par
ce critère. Par exemple si on demande CRIT_RAFF_PE = 0.85, on sélectionnera les 15%
d'éléments les pires, soit 143 éléments. Parmi ceux-là, les « moins pires » ont une erreur inférieure à
3600, soit 20 fois plus petite que le maximum.
La conséquence de ces remarques est qu'il convient de faire une première analyse de la répartition de
l'erreur avant de choisir le type et les valeurs des critères de raffinement. Il est en effet inutile, voire
coûteux en terme d'augmentation de la taille de maillage, de raffiner dans des zones où l'erreur n'est
pas très forte. L'adaptation sera d'autant plus performante que l'on aura su réduire les éléments à forte
erreur jusqu'à obtenir un équilibre de la répartition de l'erreur dans le maillage.
Manuel d'Utilisation
Fascicule U7.0- : Echanges de données
HT-62/06/004/A

Code_Aster ®
Version
8.2

Titre :

Macro-commande MACR_ADAP_MAIL


Date :
31/01/06
Auteur(s) :
G. NICOLAS Clé
:
U7.03.01-D1 Page :
14/14


6 Bibliographie

[1]
G. NICOLAS : "Logiciel HOMARD - Volume 1 - Présentation générale", rapport EDF
HI-23/04/005, février 2005.
[2]
G. NICOLAS : "Logiciel HOMARD - Volume 2 ­ Algorithmes de raffinement et déraffinement
de maillages", rapport EDF HI-23/04/006, février 2005.
[3]
G. NICOLAS : "Logiciel HOMARD - Volume 3 ­ Interfaces avec les codes de calcul", rapport
EDF HI-23/04/007, février 2005.
[4]
G. NICOLAS : "Logiciel HOMARD - Volume 4 ­ Structures de données", rapport EDF
HI-23/04/008, février 2005.


Manuel d'Utilisation
Fascicule U7.0- : Echanges de données
HT-62/06/004/A

Document Outline