* fichier : raft1.dgibi ************************************************************************ ************************************************************************ 'OPTION' 'ECHO' 0 ; ************************************************************************ * NOM : RAFT1 * DESCRIPTION : Exemple d'utilisation de RAFT : * Maillage d'un carré avec un fort raffinement dans un * des coins. * 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, 11/12/2006, version initiale * HISTORIQUE : v1, 11/12/2006, création * HISTORIQUE : 23/01/2014 : simplification du jeu de données * (procédure MESUELEM) * 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-4 ; dgran = 0.5 ; * d1 = 'DROIT' p1 p2 'DINI' dpeti 'DFIN' dgran ; d2 = 'DROIT' p2 p3 'DINI' dgran 'DFIN' dgran ; d3 = 'DROIT' p3 p4 'DINI' dgran 'DFIN' dgran ; d4 = 'DROIT' p4 p1 'DINI' dgran 'DFIN' dpeti ; 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' ; * mt = mt2 ; * 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 mt2 'TITR' t2 ; 'FINSI' ; * * Facteur d'écart autorisé * fecar = 1.5D0 ; 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 RAFT1 * 'FIN' ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales