* fichier : raft2.dgibi ************************************************************************ ************************************************************************ 'OPTION' 'ECHO' 0 ; ************************************************************************ * NOM : RAFT2 * DESCRIPTION : Exemple d'utilisation de RAFT en quadratique : * Maillage d'un cercle avec un fort raffinement près d'un * point * On teste les tailles de mailles obtenues par rapport * aux tailles de maille voulues. * * * LANGAGE : GIBIANE-CAST3M * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF) * mél : gounand@semt2.smts.cea.fr ********************************************************************** * VERSION : v1, 08/10/2024, version initiale * HISTORIQUE : v1, 08/10/2024, création (d'après raft1.dgibi) * HISTORIQUE : ************************************************************************ * * interact = FAUX ; graph = FAUX ; * ****************************************************************** * 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 ****************************************************************** * * p1 = 0. 0. ; p2 = 1. 0. ; p3 = 1. 1. ; p4 = 0. 1. ; dpeti = 1.D-2 ; dgran = 0.5 ; * cmt = d1 'ET' d2 'ET' d3 'ET' d4 ; * mt1 = 'TRIANGULATION' cmt ; 'SI' graph ; tit1 = 'CHAINE' 'Triangulation grossière du domaine' ; 'TRACER' mt1 'TITR' tit1 ; 'FINSI' ; * cden = CALTAIL mt1 ; 'SI' graph ; 'FINSI' ; * tit2 = 'CHAINE' 'Maillage resultant : ' nlmt ' elements ; ' npmt ' noeuds ' ; 'MESSAGE' tit2 ; 'SI' graph ; 'TRACER' mt2 'TITR' tit2 ; 'FINSI' ; * * cdenv = CALTAIL mt ; cdeno = MESUELEM mt ; * cdeno est en unité de surface. * On transforme en unité de longueur en multipliant par 2 * (car mt est constitué de triangles) et en prenant la racine. cdeno = cdeno '*' 2. ; cdeno = '**' cdeno 0.5D0 ; ecar = '/' cdeno cdenv ; t2 = 'CHAINE' 'Taille de maille obtenue / voulue ' ; 'SI' graph ; 'TRACER' ecar mt 'TITR' t2 ; 'FINSI' ; * * Facteur d'écart autorisé * fecar = 1.6D0 ; ifecar = 0.3D0 ; maecar = 'MAXIMUM' ecar ; miecar = 'MINIMUM' ecar ; * ok = VRAI ; 'MESSAGE' t2 ; 'MESSAGE' ('CHAINE' ' Max : ' maecar) ; tes1 = '<' maecar fecar ; ok = ok 'ET' tes1 ; 'SI' ('NON' tes1) ; 'MESSAGE' ('CHAINE' '!!!! On aurait voulu avoir < ' fecar) ; 'FINSI' ; 'MESSAGE' ('CHAINE' ' Min : ' miecar) ; tes2 = '>' miecar ifecar ; ok = ok 'ET' tes2 ; 'SI' ('NON' tes2) ; 'MESSAGE' ('CHAINE' '!!!! On aurait voulu avoir > ' ifecar) ; 'FINSI' ; * 'SI' ('NON' ok) ; 'MESSAGE' ('CHAINE' 'Il y a eu des erreurs') ; 'ERREUR' 5 ; 'SINON' ; 'MESSAGE' ('CHAINE' 'Tout sest bien passe !') ; 'FINSI' ; * 'SI' interact ; 'OPTION' 'ECHO' 1 ; 'OPTION' 'DONN' 5 ; 'FINSI' ; * * End of dgibi file RAFT2 * 'FIN' ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales