Exemple ======= On regardera avec profit les fichiers de commandes associés aux cas-tests zzzz121a, b, c, d, e, f et zzzz175a, b. Ils expriment les processus d’adaptation de maillage soit par enchaînement des commandes soit sous la forme d’une boucle en langage Python. Voici un exemple de paramétrage de la macro-commande. .. code-block:: text MACR_ADAP_MAIL ( ADAPTATION= 'RAFF_DERA', MAILLAGE_N= mun, MAILLAGE_NP1= CO ("mdeux"), RESULTAT_N= remeun, NOM_CHAM= 'QIRE_ELEM', NOM_CMP= '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', ) 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 le champ contenu dans le champ QIRE_ELEM du résultat remeun, au 3ème instant; la composante utilisée est ERREST. Les mailles seront classées en fonction de leur niveau d’erreur décroissant. Le premier % sera raffiné; les 25% dernières seront candidates au déraffinement. Aucune maille du maillage final ne devra être issue 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 nœuds tempdeux. Un récapitulatif de la qualité des mailles du nouveau maillage est produit. On ne contrôle pas l’interpénétration des mailles. Voici un exemple du tableau présentant la répartition du champ pilotant l'adaptation du maillage. .. csv-table:: "************************************************************ * Champ pilotant l'adaptation * * Valeur sur les 936 triangles * ************************************************************ * Minimum : 0.35358E-05 Maximum : 0.33395E-03 * * Moyenne : 0.66371E-04 Ecart-type : 0.51323E-04 * ************************************************************ * Fonction de repartition * * Valeurs * Nombre de mailles * * Mini < < Maxi * par classe * cumul * * * 10**-4 * en % . nombre * en % . nombre * ************************************************************ * 0.000 < 0.170 * 11.65 . 109 * 11.65 . 109 * * 0.170 < 0.340 * 21.15 . 198 * 32.80 . 307 * * 0.340 < 0.510 * 15.60 . 146 * 48.40 . 453 * * 0.510 < 0.680 * 12.71 . 119 * 61.11 . 572 * * 0.680 < 0.850 * 10.79 . 101 * 71.90 . 673 * * 0.850 < 1.020 * 7.37 . 69 * 79.27 . 742 * * 1.020 < 1.190 * 6.30 . 59 * 85.58 . 801 * * 1.190 < 1.360 * 4.59 . 43 * 90.17 . 844 * * 1.360 < 1.530 * 2.35 . 22 * 92.52 . 866 * * 1.530 < 1.700 * 1.50 . 14 * 94.02 . 880 * * 1.700 < 1.870 * 2.24 . 21 * 96.26 . 901 * * 1.870 < 2.040 * 1.39 . 13 * 97.65 . 914 * * 2.040 < 2.210 * 1.50 . 14 * 99.15 . 928 * * 2.210 < 2.380 * 0.43 . 4 * 99.57 . 932 * * 2.380 < 2.550 * 0.21 . 2 * 99.79 . 934 * * 2.550 < 2.720 * 0.00 . 0 * 99.79 . 934 * * 2.720 < 2.890 * 0.00 . 0 * 99.79 . 934 * * 2.890 < 3.060 * 0.00 . 0 * 99.79 . 934 * * 3.060 < 3.230 * 0.00 . 0 * 99.79 . 934 * * 3.230 < 3.400 * 0.21 . 2 * 100.00 . 936 * ************************************************************" Le diagnostic sur la répartition du champ pilotant l'adaptation de maillage rappelle d’abord les valeurs extrêmes rencontrées dans le calcul en cours. Ici le minimum est de 0,353585x10-5 et le maximum de 0,33395x10-3. On précise la valeur moyenne, 0,66371x10-4, et l'écart-type, 0,51323x10-4. Ensuite on présente la répartition par tranche équidistante à partir de la valeur optimum, 0. On voit que pour 880 triangles, la valeur du champ est inférieure à 1,70x10-4, soit 94,02 % du nombre total de triangles. Ensuite, pour 21triangles la valeur du champ est comprise entre 1,70x10-4 et 1,87x10-4, soit 2,24 % du nombre total de triangles. En cumulé, on constate donc que pour 901= 880 + 21 triangles, la valeur du champ est inférieure à 1,87x10-4, soit 96,26 % du total. Et ainsi de suite. Par exemple, pour 99,79 % des mailles,la valeur du champ est inférieure à2,55x10-4. .. image:: images/100000000000038C0000027CCFBF9B92587A26D1.png :width: 6.2992in :height: 4.4098in .. _RefImage_100000000000038C0000027CCFBF9B92587A26D1.png: Sur la figure précédente, on peut voir la représentation sous forme d’histogramme des pourcentages de mailles dans chacune des plages de valeur concernées. Comme on pouvait également le constater dans le tableau précédent, on constate que très peu de mailles concentrent les fortes valeurs. En visualisant une représentation du pourcentage cumulé de mailles dans une plage de valeur donnée, on a la figure suivante. .. image:: images/1000000000000393000002974145C471FA3E8626.png :width: 6.889in :height: 4.9909in .. _RefImage_1000000000000393000002974145C471FA3E8626.png: De cette répartition des valeurs, on peut déduire deux conséquences sur les stratégies de raffinement. Si on demande un raffinement sur un critère relatif de la valeur du champ, mot-clé CRIT_RAFF_REL, cela revient à sélectionner les mailles 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.77, on sélectionnera toutes les mailles dont l‘erreur est supérieure à 0.35358x10-5 + 0,77x(0.33395x10-3-0.35358x10-5), soit 2,58x10-3 . On constate que cela correspond à très peu de mailles: 2 seulement dépassent cette valeur, soit 0,21% du total. On avait l'impression de demander un raffinement important, 0,77 soit un quart *grosso modo* , mais en fait on ne raffine quasiment rien. Si on demande un raffinement sur un pourcentage de mailles, mot-clé CRIT_RAFF_PE, cela revient à sélectionner les mailles qui se trouvent au-dessus de la ligne horizontale passant par ce critère. Par exemple si on demande CRIT_RAFF_PE = 0.10, on sélectionnera les 10% de mailles les pires, soit 93 mailles. C'est la ligne horizontale à 90%. Parmi ces mailles-là, les «moins pires» portent une valeur inférieure à 1,36x10-4 , soit 40% de la valeur maximum. C'est assez efficace puisqu'on aura piégé les gros écarts. La conséquence de ces remarques est qu’il convient de faire une première analyse de la répartition des valeurs du champ 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ù le champ n’est pas très fort. L’adaptation sera d’autant plus performante que l’on aura su réduire les mailles à forte valeur jusqu’à obtenir un équilibre dans le maillage.