* fichier : mato-3d1.dgibi ************************************************************************ ************************************************************************ 'OPTION' 'ECHO' 0 ; ************************************************************************ * NOM : MATO-3D1 * DESCRIPTION : Test du MAilleur TOpologique pour mailler un simple * cube 5x5x5 de manière régulière. * * On teste la qualité des éléments obtenus. * On améliore un peu la qualité du maillage obtenu * avec une boucle entre r-adaptation (DEDU ADAP) et * remaillage. * * Issu de 2d_1.dgibi+tests * * * LANGAGE : GIBIANE-CAST3M * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SEMT/LTA) * mél : stephane.gounand@cea.fr ********************************************************************** * VERSION : v1, 20/01/2026, version initiale * HISTORIQUE : v1, 20/01/2026, création * HISTORIQUE : * HISTORIQUE : ************************************************************************ * interact = faux ; graph = faux ; * Mini, mediane et maxi d'un MCHAML 'DEBP' MIMEMA ; 'FINP' mil mel mal ; * Passage au gravite d'un MCHAML 'DEBP' CHGRAV ch*'MCHAML'; * * 'SI' ('NON' interact) ; 'OPTION' 'TRAC' 'PSC' ; 'SINON' ; 'OPTION' 'TRAC' 'X' ; 'FINSI' ; ldens = ldens1 'ET' (ldens2 '**' -1.) ; * for = '(E11.3)' ; * * * Création du contour * nx = 5 ; pA = 0. 0. 0. ; pB = 1. 0. 0. ; * 'SI' graph ; 'TRACER' 'CACH' envq 'TITR' tit ; 'FINSI' ; * * Tests divers (consistance...) * lok = VRAI ; * * TEST 1 Création d'un maillage sans ajouter de noeuds * 'SI' graph ; 'FINSI' ; * Test 1 : on vérifie que le nombre de noeuds est conservé 'SI' ('NEG' nno1 nno2) ; lok = lok 'ET' faux ; 'SINO' ; 'FINS' ; * * TEST 2 Création d'un maillage en ajoutant des noeuds interieurs * 'SI' graph ; 'FINSI' ; * Test 2 : on vérifie que les qualités mini, moyenne et maxi des éléments sont bonnes miqo meqo maqo = MIMEMA qmail2 'TOPO' ; miqa meqa maqa = MIMEMA qmail2 'EQLT' ; 'SI' graph ; 'FINSI' ; * 2026/01/20 *miqar = 0.54 ; meqar = 0.80 ; maqar = 0.97 ; * 2026/06/05 *miqar = 0.64 ; meqar = 0.82 ; maqar = 0.99 ; * 2026/06/11 miqar = 0.62 ; meqar = 0.83 ; maqar = 0.99 ; 'SI' (('<EG' miqa miqar) 'OU' ('<EG' meqa meqar) 'OU' ('<EG' maqa maqar)) ; lok = lok 'ET' faux ; 'FINS' ; * * TEST 2b Création d'un maillage en ajoutant/retirant des noeuds interieurs et de bord * 'SI' graph ; 'FINSI' ; * Test 2 : on vérifie que les qualités mini, moyenne et maxi des éléments sont bonnes miqa meqa maqa = MIMEMA qmail2b 'EQLT' ; 'SI' graph ; 'FINSI' ; * 2026/01/20 *miqar = 0.44 ; meqar = 0.72 ; maqar = 0.96 ; * 2026/06/05 linux32 miqar = 0.52 ; meqar = 0.73 ; maqar = 0.97 ; 'SI' (('<EG' miqa miqar) 'OU' ('<EG' meqa meqar) 'OU' ('<EG' maqa maqar)) ; 'MESS' '!!! TEST 2b failed' ; lok = lok 'ET' faux ; 'FINS' ; * * TEST 3 Remaillage du précédent avec une métrique uniforme constante * en espace * metva = '/' 1. nx ; * Car sinon, les tests 4 et 5 ne marchent pas * tparam . 'detect_cycling' = 0 ; 'SI' graph ; 'FINSI' ; critqs = tparam . 'critquals_eff' ; * Test 3 : on vérifie que les qualités mini et moyenne des éléments sont bonnes miq3 meq3 maq3 = MIMEMA qmail3 'TOPO' ; miqa meqa maqa = MIMEMA qmail3 'COHE' ; 'SI' graph ; 'FINSI' ; * 2026/01/20 *miqar = 0.66 ; meqar = 0.83 ; maqar = 0.98 ; * 2026/06/05 linux32 *miqar = 0.62 ; meqar = 0.87 ; maqar = 0.99 ; * 2026/06/10 linux64 *miqar = 0.61 ; meqar = 0.87 ; maqar = 0.99 ; * 2026/06/11 linux32 miqar = 0.65 ; meqar = 0.87 ; maqar = 0.99 ; 'SI' (('<EG' miqa miqar) 'OU' ('<EG' meqa meqar) 'OU' ('<EG' maqa maqar)) ; lok = lok 'ET' faux ; 'FINS' ; qmail3b = qmail3b '**' -1 ; * 'SI' ('NEG' ndqmail 0. tol) ; lok = lok 'ET' faux ; 'FINS' ; 'SI' graph ; 'FINSI' ; * 2026/01/20 *miqer = 0.63 ; meqer = 0.88 ; maqer = 0.99 ; * 2026/01/20 *miqer = 0.52 ; meqer = 0.80 ; maqer = 1.05 ; * 2026/06/11 linux32 miqer = 0.55 ; meqer = 0.81 ; maqer = 1.08 ; 'SI' (('<EG' miqe miqer) 'OU' ('NEG' meqe meqer 0.01) 'OU' ('>EG' maqe maqer)) ; lok = lok 'ET' faux ; 'FINS' ; * * TEST 4 On vérifie qu'en remaillant le maillage précédent avec la même * métrique uniforme constante donnée sous forme d'un champ isotrope * constant, on ne modifie pas le maillage * vcnx = '**' ('/' 1. nx) -2 ; * Il faut aussi garder exactement le même critère de qualité tparam4 . 'critquals' = 'ENUM' critq3 ; * Test 4 : on vérifie que mail4 et mail3 sont identiques ainsi que les * qualités * Quand il y a cyclage, c'est un peu plus complique, on ne verifie que les extrema * des qualites 'SI' ('NEG' dn34 0) ; 'SI' ('NON' (tparam4 . 'cycling_detected')) ; lok = lok 'ET' faux ; 'SINO' ; miq4 meq4 maq4 = MIMEMA qmail4 'TOPO' ; dmiq34 = '-' miq4 miq3 ; dmeq34 = '-' meq4 meq3 ; dmaq34 = '-' maq4 maq3 ; 'SI' (('>' dmiq34 tol) 'OU'('>' dmiq34 tol) 'OU' ('>' dmiq34 tol)) ; lok = lok 'ET' faux ; 'FINS' ; 'FINS' ; 'SINO' ; * VALE prec un peu trop serré pour semt2 'SI' ('>' dq34 tol) ; lok = lok 'ET' faux ; 'FINS' ; 'FINS' ; * * TEST 5 On vérifie qu'en remaillant le maillage précédent avec la même * métrique uniforme constante donnée sous forme d'un champ anisotrope * constant, on ne modifie pas le maillage * vcnx = '**' ('/' 1. nx) -2 ; 'G21' 0. 'G31' 0. 'G32' 0. ; tparam5 . 'critquals' = 'ENUM' critq3 ; * Test 5 : on vérifie que mail5 et mail3 sont identiques ainsi que les * qualités * Quand il y a cyclage, c'est un peu plus complique, on ne verifie que les extrema * des qualites 'SI' ('NEG' dn35 0) ; 'SI' ('NON' (tparam5 . 'cycling_detected')) ; lok = lok 'ET' faux ; 'SINO' ; miq5 meq5 maq5 = MIMEMA qmail5 'TOPO' ; dmiq35 = '-' miq5 miq3 ; dmeq35 = '-' meq5 meq3 ; dmaq35 = '-' maq5 maq3 ; 'SI' (('>' dmiq35 tol) 'OU'('>' dmiq35 tol) 'OU' ('>' dmiq35 tol)) ; lok = lok 'ET' faux ; 'FINS' ; 'FINS' ; 'SINO' ; * VALE prec un peu trop serré pour semt2 'SI' ('>' dq35 tol) ; lok = lok 'ET' faux ; 'FINS' ; 'FINS' ; * * TEST 6 Remaillage de mail3 avec une métrique uniforme constante * en espace en autorisant le remaillage du bord * metva = '/' 1. nx ; 'SI' graph ; 'FINSI' ; * Test 6 : on vérifie que les qualités mini et moyenne des éléments sont bonnes miq meq maq = MIMEMA qmail6 'TOPO' ; miqa meqa maqa = MIMEMA qmail6 'COHE' ; 'SI' graph ; 'FINSI' ; * 2026/01/20 *miqar = 0.67 ; meqar = 0.84 ; maqar = 0.99 ; * 2026/06/05 linux32 *miqar = 0.57 ; meqar = 0.86 ; maqar = 0.99 ; * 2026/06/11 linux32 miqar = 0.70 ; meqar = 0.87 ; maqar = 0.99 ; 'SI' (('<EG' miqa miqar) 'OU' ('<EG' meqa meqar) 'OU' ('<EG' maqa maqar)) ; lok = lok 'ET' faux ; 'FINS' ; * 'SI' graph ; 'FINSI' ; * 2026/01/20 *miqer = 0.64 ; meqer = 0.88 ; maqer = 0.99 ; * 2026/06/05 linux32 * miqer = 0.57 ; meqer = 0.76 ; maqer = 1.05 ; * 2026/06/10 linux64 * miqer = 0.56 ; meqer = 0.76 ; maqer = 1.05 ; * 2026/06/11 linux32 miqer = 0.55 ; meqer = 0.77 ; maqer = 1.03 ; 'SI' (('<EG' miqe miqer) 'OU' ('NEG' meqe meqer 0.02) 'OU' ('>EG' maqe maqer)) ; lok = lok 'ET' faux ; 'FINS' ; * * TEST 7 Une petite boucle avec de la r-adaptation (DEDU ADAP) pour voir si on peut * améliorer la qualité du maillage mail6. * * nopt = 2 ; iopt = 0 ; * Paramètres de DEDUADAP thdedu = 0.2 ; rdepa = 1. ; nitm = 1 ; *thdedu = 0.5 ; rdepa = 1. ; nitm = 1 ; maili = mail6 ; vcnx = '/' 1. nx ; vcnx2 = '**' vcnx -2 ; 'REPE' bclopt nopt ; iopt = iopt '+' 1 ; * Partie DEDUADAP maili1 = maili ; depa = '*' depa rdepa ; 'FORM' depa ; miq meq maq = MIMEMA qmaili1 'TOPO' ; miq meq maq = MIMEMA qmaili1 'COHE' ; 'SI' graph ; 'FINS' ; * Partie MAILTOPO * Qualités miq meq maq = MIMEMA qmaili2 'TOPO' ; miqa meqa maqa = MIMEMA qmaili2 'COHE' ; 'SI' graph ; 'FINSI' ; maili = maili2 ; 'FIN' bclopt ; * 2026/01/20 * miqar = 0.71 ; meqar = 0.86 ; maqar = 0.99 ; * 2026/06/05 *miqar = 0.63 ; meqar = 0.88 ; maqar = 0.99 ; * 2026/06/11 linux32 miqar = 0.68 ; meqar = 0.88 ; maqar = 0.99 ; 'SI' (('<EG' miqa miqar) 'OU' ('<EG' meqa meqar) 'OU' ('<EG' maqa maqar)) ; lok = lok 'ET' faux ; 'FINS' ; * 2026/01/20 * miqer = 0.62 ; meqer = 0.88 ; maqer = 0.99 ; * 2026/06/05 linux32 *miqer = 0.58 ; meqer = 0.78 ; maqer = 1.06 ; * 2026/06/05 linux64 *miqer = 0.56 ; meqer = 0.78 ; maqer = 1.06 ; * 2026/06/11 linux32 miqer = 0.55 ; meqer = 0.78 ; maqer = 1.07 ; 'SI' (('<EG' miqe miqer) 'OU' ('NEG' meqe meqer 0.01) 'OU' ('>EG' maqe maqer)) ; lok = lok 'ET' faux ; 'FINS' ; * * Test final * 'SI' ('NON' lok) ; 'ERREUR' 5 ; 'SINON' ; 'MESSAGE' ('CHAINE' 'Tout sest bien passe !') ; 'FINSI' ; * 'SI' interact ; 'OPTION' 'ECHO' 1 ; 'OPTION' 'DONN' 5 ; 'FINSI' ; * * End of dgibi file MATO-3D1 * 'FIN' ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales