Télécharger nlin_lapnpara.dgibi
* fichier : nlin_lapnpara.dgibi ************************************************************************ ************************************************************************ ************************************************************************ * NOM : NLIN_LAPNPARA * DESCRIPTION : Test tout simple sur un laplacien construit en parallèle * ou en séquentiel * On vérifie l'écart à la solution analytique dans les * deux cas. * * Domaine : carré [0,1]x[0,1] * Equation : \Delta T = 0 * CLim : restriction au bord de la solution exacte * Solution : T_exact = 2^0.5 x + \pi y * * * LANGAGE : GIBIANE-CAST3M * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF) * mél : gounand@semt2.smts.cea.fr ********************************************************************** * VERSION : v1, 19/11/2015, version initiale basée sur nlin_lapn * (dix ans après !) * HISTORIQUE : v1, 19/11/2015, création * HISTORIQUE : ********************************************************************** * interact= FAUX ; graph = FAUX ; 'SI' graph ; 'SI' interact ; 'OPTION' 'TRAC' 'X' ; 'SINON' ; 'OPTION' 'TRAC' 'PSC' ; 'FINSI' ; 'FINSI' ; * * Latrice du laplacien construite en parallèle ou non avec NLIN * 'DEBPROC' LAP1 ; 'ARGUMENT' lpara*'LOGIQUE' ; numop = idim ; numder = idim ; numvar = 1 ; numdat = 0 ; numcof = 0 ; * discg = 'LINE' ; methgau = 'GAU7' ; * A . 'VAR' . 1 . 'DISC' = 'LINE' ; * Manière simple * B . 'VAR' . 1 . 'DISC' = 'LINE' ; * Manière simple * 'SI' lpara ; mlapn = 'ET' tmlapn ; * mlapn = 'ETG' tmlapn ; * 'ERREUR' stop ; 'SINON' ; 'FINSI' ; 'RESPRO' mlapn ; 'FINPROC' ; * * * Maillage * nx = 15 ; ny = 20 ; pA = 0. 0. ; pB = 1. 0. ; pC = 1. 1. ; pD = 0. 1. ; l1 = 'DROIT' nx pA pB ; l2 = 'DROIT' ny pB pC ; l3 = 'DROIT' nx pC pD ; l4 = 'DROIT' ny pD pA ; *mt = 'DALLER' l1 l2 l3 l4 ; mt = 'SURFACE' (l1 'ET' l2 'ET' l3 'ET' l4) ; cmt = l1 'ET' l2 'ET' l3 'ET' l4 ; * _mt = 'CHANGER' mt 'QUAF' ; _cmt = 'CHANGER' cmt 'QUAF' ; 'SI' graph ; 'TRACER' mt 'NOEUD' 'TITRE' ('CHAINE' 'Maillage') ; 'FINSI' ; * * Solution exacte du problème * xmt ymt = 'COORDONNEE' mt ; solex = '+' ('*' xmt ('**' 2.D0 0.5D0)) ('*' ymt PI) ; * * Matrice du problème * mlapnpar = LAP1 vrai ; mlapnseq = LAP1 faux ; * * Conditions aux limites * mbloc = 'BLOQUE' 'T' cmt ; fbloc = 'DEPIMPOSE' mbloc clim ; 'SI' graph ; 'TRACER' clim cmt 'TITRE' ('CHAINE' 'Conditions aux limites') ; 'FINSI' ; * * Résoud le problème * mtot_seq = mlapnseq 'ET' mbloc ; mtot_par = mlapnpar 'ET' mbloc ; ftot = fbloc ; * solu_seq = 'RESOUD' mtot_seq ftot ; solu_par = 'RESOUD' mtot_par ftot ; * * * Post-traitement et calcul de l'erreur * * dif_seq = '-' solex tsol_seq ; dif_par = '-' solex tsol_par ; 'SI' graph ; 'TRACER' tsol mt 'TITRE' ('CHAINE' 'Solution approchee') ; 'TRACER' dif_seq mt 'TITRE' ('CHAINE' 'Solution exacte - solution approchee sequentiel') ; 'TRACER' dif_par mt 'TITRE' ('CHAINE' 'Solution exacte - solution approchee parallèle') ; 'FINSI' ; 'OPTION' 'ECHO' 0 ; 'SAUTER' 3 'LIGNE' ; 'MESSAGE' ('CHAINE' 'Norme de lerreur sequentiel : ' nerr_seq) ; 'MESSAGE' ('CHAINE' 'Norme de lerreur parallele : ' nerr_par) ; 'SAUTER' 3 'LIGNE' ; 'OPTION' 'ECHO' 1 ; * 'SI' ('OU' (nerr_seq '>' 1.D-10) (nerr_par '>' 1.D-10)) ; 'ERREUR' 5 ; 'FINSI' ; * 'SI' interact ; 'OPTION' 'DONN' 5 ; 'FINSI' ; * * End of dgibi file NLIN_LAPNPARA * 'FIN' ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales