* fichier : mato-2d2.dgibi ************************************************************************ ************************************************************************ 'OPTION' 'ECHO' 0 ; ************************************************************************ * NOM : MATO-2D2 * DESCRIPTION : Test du MAilleur TOpologique pour mailler un carré avec * raffinement isotrope dans un coin. * * On teste la qualité des éléments obtenus dans la * métrique voulue. * On ne teste pas la r-adaptation (DEDU ADAP) car il * manque les termes de dérivées en espace de la métrique. * * Repris de raft1.dgibi qui utilise TRIA * et 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, 04/04/2020, version initiale * HISTORIQUE : v1, 04/04/2020, création * HISTORIQUE : * HISTORIQUE : ************************************************************************ * interact = faux ; graph = FAUX ; complet = FAUX ; * * 'SI' ('NON' interact) ; 'OPTION' 'TRAC' 'PSC' ; 'SINON' ; 'OPTION' 'TRAC' 'X' ; 'FINSI' ; * ****************************************************************** * P R O C E D U R E S * * MESUELEM * * Calcul d'une mesure de maille aux noeuds * Je sais le faire de trois manières (équivalentes pour les SEG2 * mais pas pour les TRI3) * 1) Avec l'opérateur MESU (boucle sur les éléments en GIBIANE) * + CHAN 'CHPO' * 2) En intégrant (par éléments) un champ par élément valant 1 * + CHAN 'CHPO' * 3) Matrice de masse diagonalisée * Ici, c'est la méthode 3. * 'DEBPROC' MESUELEM ; 'ARGUMENT' mm*'MAILLAGE' ; 'SI' faux ; * Méthode 2 'FINSI' ; * Méthode 3 'XXDIAGSI' ; * 'RESPRO' cctai ; 'FINPROC' ; * * CALTAIL * * Calcul du champ de taille de maille voulue T par un problème de * thermique, on résout : * Laplacien T = 0 * avec T_bord = taille des mailles du bord * * 'DEBPROC' CALTAIL ; 'ARGUMENT' mt*'MAILLAGE' ; * cmt = 'CONTOUR' mt ; * cdt = MESUELEM cmt ; * En fait, on résout le problème au laplacien pour le log * des tailles de maille. lcdt = 'LOG' cdt ; modt = 'MODELISER' mt 'THERMIQUE' 'ISOTROPE' ; cart = 'MATERIAU' modt 'K' 1.D0 ; mcdt = 'EXTRAIRE' lcdt 'MAIL' ; matb = 'BLOQUE' 'T' mcdt ; cden = 'EXP' clden ; *'TRACER' cden mt ; 'RESPRO' cden ; 'FINPROC' ; * Fin des P R O C E D U R E S ****************************************************************** * * Création du contour * d1 = 0.01 ; d2 = 0.1 ; pA = 0. 0. ; pB = 1. 0. ; pC = 1. 1. ; pD = 0. 1. ; * cnt = lAB 'ET' lBC 'ET' lCD 'ET' lDA ; * 'SI' graph ; '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 ; '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 'SI' graph ; 'FINSI' ; * Sur mon linux64 au 02/04/2020 : qmin=0.63 qmoy=0.87 qmax=1.00 miqref = 0.62 ; moqref = 0.86 ; maqref = 0.99 ; 'SI' ('<EG' miq miqref) ; lok = lok 'ET' faux ; 'FINS' ; 'SI' ('<EG' moq moqref) ; lok = lok 'ET' faux ; 'FINS' ; 'SI' ('<EG' maq maqref) ; lok = lok 'ET' faux ; 'FINS' ; * * TEST 2b Une petite boucle avec de la r-adaptation (DEDU ADAP) permet * d'améliorer la régularité du maillage mail2 mais ce n'est pas nécessaire * pour la suite donc on saute. * * 2020/04/03 : On arrive à avoir Qmin= 0.74E+00 Qmax= 0.10E+01 Qmoy= 0.91E+00 * avec nopt = 2 ; thdedu = 1.0 ; rdepa =1. ; nitm = 1 ; * 'SI' complet ; nopt = 2 ; iopt = 0 ; * Paramètres de DEDUADAP thdedu = 1. ; rdepa = 1. ; nitm = 1 ; maili = mail2 ; 'REPE' bclopt nopt ; iopt = iopt '+' 1 ; * Partie DEDUADAP maili1 = maili ; depa = '*' depa rdepa ; 'FORM' depa ; 'SI' graph ; 'FINS' ; * Partie MAILTOPO * Qualités 'SI' graph ; 'FINSI' ; maili = maili2 ; 'FIN' bclopt ; mail2 = maili ; 'FINS' ; * * TEST 3 Remaillage du précédent avec une métrique isotrope variable * en espace * cmet = cden '**' -2 ; 'SI' graph ; lcden = '/' ('LOG' cden) ('LOG' 10.) ; 'FINSI' ; * Facultatif : mettre tout ça dans la notice de ALGOMAIL * ainsi que les valeurs par défaut * tparam3 . 'debug' = 2 ; 'SI' graph ; tit = 'CHAI' 'Maillage avec metrique isotrope variable en espace' ; 'FINSI' ; * Test 3 : on vérifie que les qualités des éléments sont bonnes * On peut : * 1) recalculer la métrique voulue sur le nouveau maillage * 2) ou récupérer celle calculée sur l'ancien maillage mais interpolée * par le mailleur *1 TEST 3 avec cmetf1 : Qmin= 0.58E+00 Qmoy= 0.85E+00 Qmax= 0.99E+00 *2 TEST 3 avec cmetf2 : Qmin= 0.62E+00 Qmoy= 0.84E+00 Qmax= 0.10E+01 * * 'TRAC' ('-' cmetf2 cmetf1) mail3 'TITR' 'Diff. metrique' ; 'SI' graph ; 'FINSI' ; miqref = 0.61 ; moqref = 0.83 ; maqref = 0.99 ; 'SI' ('<EG' miq miqref) ; lok = lok 'ET' faux ; 'FINS' ; 'SI' ('<EG' moq moqref) ; lok = lok 'ET' faux ; 'FINS' ; 'SI' ('<EG' maq maqref) ; lok = lok 'ET' faux ; 'FINS' ; * * TEST 4 On vérifie qu'en remaillant le maillage précédent avec la même * métrique interpolée, on ne modifie pas le maillage * * Test 4 : on vérifie que mail4 et mail3 sont identiques ainsi que les * qualités 'SI' ('NEG' dn34 0) ; lok = lok 'ET' faux ; 'FINS' ; * VALE prec un peu trop serré pour semt2 lok = lok 'ET' faux ; 'FINS' ; * * TEST 5 On vérifie qu'en remaillant le maillage précédent avec la même * métrique isotrope donnée sous forme d'une métrique anisotrope, on ne * modifie pas le maillage * Cela serait vrai sauf que, pour les tenseurs anisotropes , on ne fait * pas encore la moyenne géométrique (c'est plus compliqué !) * * Test 5 : on vérifie que mail5 et mail3 sont identiques ainsi que les * qualités 'SI' ('NEG' dn35 0) ; lok = lok 'ET' faux ; 'FINS' ; * VALE prec un peu trop serré pour semt2 lok = lok 'ET' faux ; 'FINS' ; * * TEST 6 Une petite boucle avec de la r-adaptation (DEDU ADAP) pour voir si on peut * améliorer la qualité du maillage mail3. * * La réponse est oui, on peut effectivement avoir une amélioration mais * après quelque itérations la qualité oscille sans s'alméliorer entre * r-adaptation et remaillage car les critères optimisés ne sont pas les * mêmes aux deux étapes. * * nopt = 2 ; iopt = 0 ; * Paramètres de DEDUADAP thdedu = 0.2 ; rdepa = 1. ; nitm = 1 ; maili = mail3 ; 'REPE' bclopt nopt ; iopt = iopt '+' 1 ; * Partie DEDUADAP maili1 = maili ; cmet = cden '**' -2 ; depa = '*' depa rdepa ; 'FORM' depa ; cmet = cden '**' -2 ; 'SI' graph ; 'FINS' ; * Partie MAILTOPO * Qualités cmet = cden '**' -2 ; 'SI' graph ; 'FINSI' ; maili = maili2 ; 'FIN' bclopt ; * Sur mon linux64 au 06/04/2020 : Qmin= 0.62E+00 Qmoy= 0.87E+00 Qmax= 0.99E+00 miqref = 0.61 ; moqref = 0.86 ; maqref = 0.98 ; 'SI' ('<EG' miq miqref) ; lok = lok 'ET' faux ; 'FINS' ; 'SI' ('<EG' moq moqref) ; lok = lok 'ET' faux ; 'FINS' ; 'SI' ('<EG' maq maqref) ; 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-2D2 * 'FIN' ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales