Télécharger sudden_expansion.dgibi
* fichier : sudden_expansion.dgibi * * 'SAUTER' 2 'LIGNE' ; 'MESSAGE' ' Execution de sudden_expansion.dgibi' ; 'SAUTER' 2 'LIGNE' ; * graph = faux ; complet = faux ; interact = faux ; ************************************************************************ * NOM : SUDDEN_EXPANSION * DESCRIPTION : Ecoulement dans un tube débouchant dans un autre de plus * gros diamètre en 2D plan et en 2D axisymétrique. * * Références : *@article{Oliveira1998655, *author = "P. J. Oliveira and F. T. Pinho and A. Schulte", *title = "A general correlation for the local loss coefficient in Newtonian axisymmetric sudden expansions", *journal = "International Journal of Heat and Fluid Flow", *year = "1998", *volume = "19", *number = "6", *pages = "655 - 660"} * *@Article{scott_mirza, * author = {P.S. Scott and F.A. Mirza and J. Vlachopoulos}, * title = {A Finite Element Analysis of Laminar Flows through Planar and Axisymmetric abrupt expansions}, * journal = {Computers & Fluids}, * year = {1986}, * volume = {14}, * number = {4}, * pages = {423 - 432}} * *@Article{fletcher_maskell, * author = {D.F. Fletcher and S.J. Maskell and M.A. Patrick}, * title = {Heat and Mass Transfer computations for laminar flows in an axisymmetric sudden expansion}, * journal = {Computers and Fluids}, * year = {1985}, * volume = {13}, * number = {2}, * pages = {207-221}} * *@Article{macagno_hung, * author = {Enzo O. Macagno and Tin-Kan Hung}, * title = {Computational and experimental study of a captive annular eddy}, * journal = {Journal of Fluid Mechanics}, * year = {1967}, * volume = {28}, * number = {1}, * pages = {43-64}} * * * * LANGAGE : GIBIANE-CAST3M * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF) * mél : gounand@semt2.smts.cea.fr ********************************************************************** * VERSION : v1, 04/01/2011, version initiale * HISTORIQUE : v1, 04/01/2011, création * HISTORIQUE : * HISTORIQUE : ************************************************************************ 'SI' ('NON' interact) ; 'OPTION' 'TRAC' 'PS' ; 'SINON' ; 'OPTION' 'TRAC' 'X' ; 'FINSI' ; * ****************************************** * * * Procédures utilitaires * * * ****************************************** *BEGINPROCEDUR errrel ************************************************************************ * NOM : ERRREL * DESCRIPTION : Calcul d'une erreur relative * * * * LANGAGE : GIBIANE-CAST3M * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF) * mél : gounand@semt2.smts.cea.fr ********************************************************************** * VERSION : v1, 23/04/2003, version initiale * HISTORIQUE : v1, 23/04/2003, création * HISTORIQUE : * HISTORIQUE : ************************************************************************ * Prière de PRENDRE LE TEMPS de compléter les commentaires * en cas de modification de ce sous-programme afin de faciliter * la maintenance ! ************************************************************************ * * 'DEBPROC' ERRREL ; 'ARGUMENT' val*'FLOTTANT' ; 'ARGUMENT' valref*'FLOTTANT' ; * 'SI' ('<' ('ABS' valref) 1.D-10) ; echref = 1.D0 ; 'SINON' ; echref = valref ; 'FINSI' ; * errabs = 'ABS' ('/' ('-' val valref) echref); * 'RESPRO' errabs ; * * End of procedure file ERRREL * 'FINPROC' ; *ENDPROCEDUR errrel *BEGINPROCEDUR exmomod ************************************************************************ * NOM : EXMOMOD * DESCRIPTION : Extraction d'un mot d'un listmots * * * * LANGAGE : GIBIANE-CAST3M * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF) * mél : gounand@semt2.smts.cea.fr ********************************************************************** * VERSION : v1, 23/06/2003, version initiale * HISTORIQUE : v1, 23/06/2003, création * HISTORIQUE : * HISTORIQUE : ************************************************************************ * Prière de PRENDRE LE TEMPS de compléter les commentaires * en cas de modification de ce sous-programme afin de faciliter * la maintenance ! ************************************************************************ * * 'DEBPROC' EXMOMOD ; 'ARGUMENT' lm*'LISTMOTS' i*'ENTIER' ; k = '+' (MODULO ('-' i 1) j) 1 ; lemot = 'EXTRAIRE' lm k ; * Usage de l'opérateur text pour éviter que lemot * ne soit interprété comme un opérateur 'RESPRO' 'TEXTE' lemot ; * * End of procedure file EXMOMOD * 'FINPROC' ; *ENDPROCEDUR exmomod *BEGINPROCEDUR formar ************************************************************************ * NOM : FORMAR * DESCRIPTION : formate un réel de facon courte * pratique pour les noms de * sauvegarde * Exemples : * 'MESSAGE' ('CHAINE' (formar 2.9e5 1)) ; * 2.9E5 * 'MESSAGE' ('CHAINE' (formar -2.9e5 1)) ; * -2.9E5 * 'MESSAGE' ('CHAINE' (formar 2.9e-5 1)) ; * 2.9E-5 * 'MESSAGE' ('CHAINE' (formar -2.9e-5 1)) ; * -2.9E-5 * 'MESSAGE' ('CHAINE' (formar 2.9 1)) ; * 2.9 * 'MESSAGE' ('CHAINE' (formar -2.9 1)) ; * -2.9 * 'MESSAGE' ('CHAINE' (formar 0 1)) ; * 0 * 'MESSAGE' ('CHAINE' (formar 0 1)) ; * 0 * 'MESSAGE' ('CHAINE' (formar 2.9e5 0)) ; * 3E5 * 'MESSAGE' ('CHAINE' (formar -2.9e5 0)) ; * -3E5 * 'MESSAGE' ('CHAINE' (formar 2.9e-5 0)) ; * 3E-5 * 'MESSAGE' ('CHAINE' (formar -2.9e-5 0)) ; * -3E-5 * 'MESSAGE' ('CHAINE' (formar 2.9 0)) ; * 3 * 'MESSAGE' ('CHAINE' (formar -2.9 0)) ; * -3 * 'MESSAGE' ('CHAINE' (formar 0 0)) ; * 0 * 'MESSAGE' ('CHAINE' (formar 0 0)) ; * 0 * * * * LANGAGE : GIBIANE-CAST3M * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF) * mél : gounand@semt2.smts.cea.fr ********************************************************************** * VERSION : v1, 18/02/2003, version initiale * HISTORIQUE : v1, 18/02/2003, création * HISTORIQUE : * HISTORIQUE : ************************************************************************ * Prière de PRENDRE LE TEMPS de compléter les commentaires * en cas de modification de ce sous-programme afin de faciliter * la maintenance ! ************************************************************************ * * 'DEBPROC' FORMAR ; 'ARGUMENT' fl*'FLOTTANT' ; 'ARGUMENT' vir/'ENTIER ' ; 'SI' ('NON' ('EXISTE' vir)) ; vir = 1 ; 'SINON' ; 'SI' ('<' vir 0) ; 'ERREUR' 'fournir un entier positif' ; 'FINSI' ; 'FINSI' ; 'SI' ('<' ('ABS' fl) 10.D-100) ; chfl = 'CHAINE' '0' ; 'SINON' ; *! sans le 1.D-10, ca ne fonctionne pas *! qd on entre pile poil une puissance de 10 lfl = LOG10 ('ABS' fl) ; * lfl = '+' (LOG10 ('ABS' fl)) 1.D-10 ; slfl = 'SIGNE' ('ENTIER' lfl) ; 'SI' ('EGA' slfl 1) ; elfl = 'ENTIER' lfl ; 'SINON' ; elfl = '-' ('ENTIER' lfl) 1 ; 'FINSI' ; man = '/' fl ('**' 10.D0 elfl) ; * * Une verrue pour des histoires de précision... * 'SI' ('EGA' man 10.D0 ('**' 10.D0 ('*' vir -1.D0))) ; man = '/' man 10.D0 ; elfl = '+' elfl 1 ; 'FINSI' ; * sman = 'SIGNE' man ; 'SI' ('EGA' sman 1) ; fman = 'CHAINE' '(F' ('+' vir 2) '.0' vir ')' ; 'SINON' ; fman = 'CHAINE' '(F' ('+' vir 3) '.0' vir ')' ; 'FINSI' ; 'SI' ('NEG' vir 0) ; 'SI' ('NEG' elfl 0) ; chfl = 'CHAINE' 'FORMAT' fman man 'E' elfl ; 'SINON' ; chfl = 'CHAINE' 'FORMAT' fman man ; 'FINSI' ; 'SINON' ; man2 = 'ENTIER' ('+' man ('*' 0.5D0 sman)) ; 'SI' ('NEG' elfl 0) ; chfl = 'CHAINE' man2 'E' elfl ; 'SINON' ; chfl = 'CHAINE' man2 ; 'FINSI' ; 'FINSI' ; 'FINSI' ; 'RESPRO' chfl ; * * End of procedure file FORMAR * 'FINPROC' ; *ENDPROCEDUR formar *BEGINPROCEDUR gdiv2 ************************************************************************ * NOM : GDIV2 * DESCRIPTION : Une matrice de masse * * * * LANGAGE : GIBIANE-CAST3M * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF) * mél : gounand@semt2.smts.cea.fr ********************************************************************** * VERSION : v2, 14/03/2006, mise à jour NLIN évolué * VERSION : v1, 13/05/2004, version initiale * HISTORIQUE : v1, 13/05/2004, création * HISTORIQUE : * HISTORIQUE : ************************************************************************ * Prière de PRENDRE LE TEMPS de compléter les commentaires * en cas de modification de ce sous-programme afin de faciliter * la maintenance ! ************************************************************************ * * 'DEBPROC' GDIV2 ; 'ARGUMENT' _mt*'MAILLAGE' ; 'ARGUMENT' _smt/'MAILLAGE' ; 'ARGUMENT' tdisc*'TABLE' ; * * Lectures * debug = FAUX ; lmotcle = 'MOTS' 'NPRI' 'FPRI' 'CPRI' 'NDUA' 'FDUA' 'CDUA' 'NCOF' 'FCOF' 'CCOF' 'GBBT' 'GMBT' ; * Il faut initialiser valt et valq, sinon on peut capturer ceux de * la procédure appelante valt = 'valt' ; valq = 'valq' ; lbbt = 0 ; * 'REPETER' imotcle ; 'SI' ('NON' ('EXISTE' motcle)) ; 'QUITTER' imotcle ; 'FINSI' ; 'SI' ('NON' ('EXISTE' lmotcle motcle)) ; cherr = 'CHAINE' 'Keyword ' motcle ' unknown.' ; 'ERREUR' cherr ; 'FINSI' ; 'SI' ('EGA' motcle 'FPRI') ; 'ARGUMENT' valt*'LISTREEL' ; 'FINSI' ; 'SI' ('EGA' motcle 'FDUA') ; 'ARGUMENT' valq*'FLOTTANT' ; 'FINSI' ; 'SI' ('EGA' motcle 'FCOF') ; 'ARGUMENT' valo*'FLOTTANT' ; 'FINSI' ; 'SI' ('EGA' motcle 'CPRI') ; 'ARGUMENT' valt*'CHPOINT' ; 'FINSI' ; 'SI' ('EGA' motcle 'CDUA') ; 'ARGUMENT' valq*'CHPOINT' ; 'FINSI' ; 'SI' ('EGA' motcle 'CCOF') ; 'ARGUMENT' valo*'CHPOINT' ; 'FINSI' ; 'SI' ('EGA' motcle 'GBBT') ; lbbt = 1 ; 'FINSI' ; 'SI' ('EGA' motcle 'GMBT') ; lbbt = 2 ; 'FINSI' ; 'FIN' imotcle ; * * Tests * discg = TDISC . 'GEOM' . 'DISC' ; methgau = 'GAU7' ; tnomt = TDISC . nomt ; tnomq = TDISC . nomq ; * lcof = 'EXISTE' TDISC nomo ; 'SI' lcof ; ncof = 1 ; tcof = TDISC . nomo ; 'SINON' ; ncof = 0 ; 'FINSI' ; * 'SI' debug ; 'SI' lcof ; 'MESSAGE' 'Un coef a ete detecte' ; 'SINON' ; 'MESSAGE' 'pas de coef detecte' ; 'FINSI' ; 'FINSI' ; * idim = 0 ; 'SI' ('ET' ('EGA' vdim 2) ('EGA' vmod 'PLANDEFO')) ; idim = 2 ; iaxi = FAUX ; 'FINSI' ; 'SI' ('ET' ('EGA' vdim 2) ('EGA' vmod 'AXIS')) ; idim = 2 ; iaxi = VRAI ; 'FINSI' ; 'SI' ('ET' ('EGA' vdim 3) ('EGA' vmod 'TRID')) ; idim = 3 ; iaxi = FAUX ; 'FINSI' ; 'SI' ('EGA' vdim 1) ; idim = 1 ; iaxi = FAUX ; 'FINSI' ; 'SI' ('EGA' idim 0) ; 'ERREUR' ('CHAINE' 'vmod=' vmod ' et vdim=' vdim ' non prevu') ; 'FINSI' ; 'SI' iaxi ; dp = ('*' PI 2.D0) ; rmt = 'COORDONNEE' 1 _mt ; ncof = ncof '+' 2 ; 'FINSI' ; * Scalaire ou vecteur 'SI' ('NEG' ninct idim) ; cherr = 'CHAINE' 'la primale doit etre un vecteur' ; 'ERREUR' cherr ; 'FINSI' ; 'SI' ('NEG' nincq 1) ; cherr = 'CHAINE' 'la duale doit etre un scalaire' ; 'ERREUR' cherr ; 'FINSI' ; * numop = 1 ; numder = idim ; numvar = ninct ; numdat = ncof ; numcof = ncof ; * 'REPETER' iiinct ninct ; iinct = &iiinct ; A . 'VAR' . iinct . 'NOMDDL' = tnomt . 'NOMINC' . iinct ; A . 'VAR' . iinct . 'DISC' = tnomt . 'DISC' ; 'SI' lvalt ; 'SI' lvt ; A . 'VAR' . iinct . 'VALEUR' = 'EXTRAIRE' valt iinct ; 'SINON' ; A . 'VAR' . iinct . 'VALEUR' = valt ; 'FINSI' ; 'FINSI' ; 'FIN' iiinct ; * icof = 0 ; 'SI' lcof ; icof = '+' icof 1 ; A . 'DAT' . icof . 'NOMDDL' = tcof . 'NOMINC' . 1 ; A . 'DAT' . icof . 'DISC' = tcof . 'DISC' ; A . 'DAT' . icof . 'VALEUR' = valo ; A . 'COF' . icof . 'COMPOR' = 'IDEN' ; 'SINON' ; 'FINSI' ; * 'SI' iaxi ; icof = '+' icof 1 ; A . 'DAT' . icof . 'DISC' = 'CSTE' ; A . 'DAT' . icof . 'VALEUR' = dp ; A . 'COF' . icof . 'COMPOR' = 'IDEN' ; icof = '+' icof 1 ; A . 'DAT' . icof . 'DISC' = discg ; A . 'DAT' . icof . 'VALEUR' = rmt ; A . 'COF' . icof . 'COMPOR' = 'IDEN' ; 'FINSI' ; * 'SI' iaxi ; 'REPETER' iidim idim ; A . 1 . &iidim . &iidim = lldpr ; 'FIN' iidim ; A . 1 . 1 . 0 = lldp ; 'SINON' ; 'REPETER' iidim idim ; A . 1 . &iidim . &iidim = ll ; 'FIN' iidim ; 'FINSI' ; * numvar = 1 ; numdat = 0 ; numcof = 0 ; * B . 'VAR' . 1 . 'NOMDDL' = tnomq . 'NOMINC' . 1 ; B . 'VAR' . 1 . 'DISC' = tnomq . 'DISC' ; 'SI' lvalq ; B . 'VAR' . 1 . 'VALEUR' = valq ; 'FINSI' ; * 'SI' ('OU' ('EGA' lbbt 0) ('EGA' lbbt 1)) ; 'SI' ('EXISTE' _smt) ; 'SINON' ; mgdiv2 = NLINP discg _mt A B methgau ; 'FINSI' ; 'SI' ('EGA' lbbt 1) ; 'SI' ('EXISTE' _smt) ; 'SINON' ; mgdiv3 = NLINP discg _mt B A methgau ; 'FINSI' ; mgdiv2 = 'ET' mgdiv2 mgdiv3 ; 'FINSI' ; 'FINSI' ; 'SI' ('EGA' lbbt 2) ; 'SI' ('EXISTE' _smt) ; 'SINON' ; mgdiv2 = NLINP discg _mt B A methgau ; 'FINSI' ; 'FINSI' ; * 'RESPRO' mgdiv2 ; 'FINPROC' ; * * End of procedure file GDIV2 * *ENDPROCEDUR gdiv2 *BEGINPROCEDUR glno ************************************************************************ * NOM : GLNO * DESCRIPTION : Une matrice de masse * * * * LANGAGE : GIBIANE-CAST3M * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF) * mél : gounand@semt2.smts.cea.fr ********************************************************************** * VERSION : v2, 14/03/2006, mise à jour NLIN évolué * VERSION : v1, 13/05/2004, version initiale * HISTORIQUE : v1, 13/05/2004, création * HISTORIQUE : * HISTORIQUE : ************************************************************************ * Prière de PRENDRE LE TEMPS de compléter les commentaires * en cas de modification de ce sous-programme afin de faciliter * la maintenance ! ************************************************************************ * * 'DEBPROC' GLNO ; 'ARGUMENT' _mt*'MAILLAGE' ; 'ARGUMENT' tdisc*'TABLE' ; * 'ARGUMENT' valt*'CHPOINT' ; * 'SI' ('NON' ('EXISTE' nomq)) ; nomq = 'QUAF' ; 'FINSI' ; * * Second membre * smb = GMASS2 _mt tdisc 'NPRI' nomt 'CPRI' valt 'NDUA' nomq ; mat = GMASS2 _mt tdisc 'NPRI' nomq 'NDUA' nomq ; * 'RESPRO' cpro ; 'FINPROC' ; * * End of procedure file GLNO * *ENDPROCEDUR glno *BEGINPROCEDUR gmass2 ************************************************************************ * NOM : GMASS2 * DESCRIPTION : Une matrice de masse * * * * LANGAGE : GIBIANE-CAST3M * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF) * mél : gounand@semt2.smts.cea.fr ********************************************************************** * VERSION : v2, 14/03/2006, mise à jour NLIN évolué * VERSION : v1, 13/05/2004, version initiale * HISTORIQUE : v1, 13/05/2004, création * HISTORIQUE : * HISTORIQUE : ************************************************************************ * Prière de PRENDRE LE TEMPS de compléter les commentaires * en cas de modification de ce sous-programme afin de faciliter * la maintenance ! ************************************************************************ * * 'DEBPROC' GMASS2 ; 'ARGUMENT' _mt*'MAILLAGE' ; 'ARGUMENT' _smt/'MAILLAGE' ; 'ARGUMENT' tdisc*'TABLE' ; * * Lectures * debug = FAUX ; lmotcle = 'MOTS' 'NPRI' 'FPRI' 'CPRI' 'NDUA' 'FDUA' 'CDUA' 'NCOF' 'FCOF' 'CCOF' ; * Il faut initialiser valt et valq, sinon on peut capturer ceux de * la procédure appelante valt = 'valt' ; valq = 'valq' ; 'REPETER' imotcle ; 'SI' ('NON' ('EXISTE' motcle)) ; 'QUITTER' imotcle ; 'FINSI' ; 'SI' ('NON' ('EXISTE' lmotcle motcle)) ; cherr = 'CHAINE' 'Keyword ' motcle ' unknown.' ; 'ERREUR' cherr ; 'FINSI' ; tst1 = 'EGA' motcle 'FPRI' ; tst2 = 'EGA' motcle 'FDUA' ; tst = tst1 'OU' tst2 ; 'SI' tst ; 'SI' tst1 ; tt = TDISC . nomt ; 'FINSI' ; 'SI' tst2 ; tt = TDISC . nomq ; 'FINSI' ; 'SI' isvec ; 'ARGUMENT' valv*'LISTREEL' ; 'SINON' ; 'ARGUMENT' valv*'FLOTTANT' ; 'FINSI' ; 'SI' tst1 ; valt = valv ; 'FINSI' ; 'SI' tst2 ; valq = valv ; 'FINSI' ; 'FINSI' ; 'SI' ('EGA' motcle 'FCOF') ; 'ARGUMENT' valo*'FLOTTANT' ; 'FINSI' ; 'SI' ('EGA' motcle 'CPRI') ; 'ARGUMENT' valt*'CHPOINT' ; 'FINSI' ; 'SI' ('EGA' motcle 'CDUA') ; 'ARGUMENT' valq*'CHPOINT' ; 'FINSI' ; 'SI' ('EGA' motcle 'CCOF') ; 'ARGUMENT' valo*'CHPOINT' ; 'FINSI' ; 'FIN' imotcle ; * * Tests * discg = TDISC . 'GEOM' . 'DISC' ; methgau = 'GAU7' ; tnomt = TDISC . nomt ; tnomq = TDISC . nomq ; * Scalaire ou vecteur 'SI' ('NEG' ninct nincq) ; cherr = 'CHAINE' 'les primales et duales nont pas le meme nombre de composantes' ; 'ERREUR' cherr ; 'FINSI' ; ninc = ninct ; * lcof = 'EXISTE' TDISC nomo ; 'SI' lcof ; ncof = 1 ; tcof = TDISC . nomo ; 'SINON' ; ncof = 0 ; 'FINSI' ; * 'SI' debug ; 'SI' lcof ; 'MESSAGE' 'Un coef a ete detecte' ; 'SINON' ; 'MESSAGE' 'pas de coef detecte' ; 'FINSI' ; 'FINSI' ; * idim = 0 ; 'SI' ('ET' ('EGA' vdim 2) ('EGA' vmod 'PLANDEFO')) ; idim = 2 ; iaxi = FAUX ; 'FINSI' ; 'SI' ('ET' ('EGA' vdim 2) ('EGA' vmod 'AXIS')) ; idim = 2 ; iaxi = VRAI ; 'FINSI' ; 'SI' ('ET' ('EGA' vdim 3) ('EGA' vmod 'TRID')) ; idim = 3 ; iaxi = FAUX ; 'FINSI' ; 'SI' ('EGA' vdim 1) ; idim = 1 ; iaxi = FAUX ; 'FINSI' ; * 'MESSAGE' ('CHAINE' 'iaxi=' iaxi ); 'SI' ('EGA' idim 0) ; 'ERREUR' ('CHAINE' 'vmod=' vmod ' et vdim=' vdim ' non prevu') ; 'FINSI' ; 'SI' iaxi ; dprmt = '*' ('COORDONNEE' 1 _mt) ('*' PI 2.D0) ; 'FINSI' ; * * Optimisation possible : construire la matrice par blocs * qd valt et valq ne sont pas donnés * numop = ninc ; numder = idim ; numvar = ninc ; numdat = ncof ; numcof = ncof ; 'SI' lcof ; A . 'DAT' . 1 . 'NOMDDL' = tcof . 'NOMINC' . 1 ; A . 'DAT' . 1 . 'DISC' = tcof . 'DISC' ; A . 'DAT' . 1 . 'VALEUR' = valo ; A . 'COF' . 1 . 'COMPOR' = 'IDEN' ; 'SINON' ; 'FINSI' ; 'REPETER' iiinc ninc ; iinc = &iiinc ; A . 'VAR' . iinc . 'NOMDDL' = tnomt . 'NOMINC' . iinc ; A . 'VAR' . iinc . 'DISC' = tnomt . 'DISC' ; 'SI' lvalt ; 'SI' lvt ; A . 'VAR' . iinc . 'VALEUR' = 'EXTRAIRE' valt iinc ; 'SINON' ; A . 'VAR' . iinc . 'VALEUR' = valt ; 'FINSI' ; 'FINSI' ; A . iinc . iinc . 0 = ll ; 'FIN' iiinc ; * 'SI' iaxi ; numdat = 1 ; numcof = 1 ; 'SINON' ; numdat = 0 ; numcof = 0 ; 'FINSI' ; 'SI' iaxi ; B . 'DAT' . 1 . 'DISC' = discg ; B . 'DAT' . 1 . 'VALEUR' = dprmt ; B . 'COF' . 1 . 'COMPOR' = 'IDEN' ; 'SINON' ; 'FINSI' ; 'REPETER' iiinc ninc ; iinc = &iiinc ; B . 'VAR' . iinc . 'NOMDDL' = tnomq . 'NOMINC' . iinc ; B . 'VAR' . iinc . 'DISC' = tnomq . 'DISC' ; 'SI' lvalq ; 'SI' lvq ; B . 'VAR' . iinc . 'VALEUR' = 'EXTRAIRE' valq iinc ; 'SINON' ; B . 'VAR' . iinc . 'VALEUR' = valq ; 'FINSI' ; 'FINSI' ; B . iinc . iinc . 0 = ll ; 'FIN' iiinc ; * 'SI' ('EXISTE' _smt) ; 'SINON' ; mgmass2 = NLINP discg _mt A B methgau ; 'FINSI' ; * 'RESPRO' mgmass2 ; 'FINPROC' ; * * End of procedure file GMASS2 * *ENDPROCEDUR gmass2 *BEGINPROCEDUR grig ************************************************************************ * NOM : GRIG * DESCRIPTION : * * * * LANGAGE : GIBIANE-CAST3M * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF) * mél : gounand@semt2.smts.cea.fr ********************************************************************** * VERSION : v1, ??/??/2007, version initiale * HISTORIQUE : v1, ??/??/2007, création * HISTORIQUE : * HISTORIQUE : ************************************************************************ * Prière de PRENDRE LE TEMPS de compléter les commentaires * en cas de modification de ce sous-programme afin de faciliter * la maintenance ! ************************************************************************ * * 'DEBPROC' GRIG ; 'ARGUMENT' _mt*'MAILLAGE' ; 'ARGUMENT' tdisc*'TABLE' ; * * Lectures * debug = FAUX ; lmotcle = 'MOTS' 'NPRI' 'FPRI' 'CPRI' 'NDUA' 'FDUA' 'CDUA' 'NCOF' 'FCOF' 'CCOF' 'LAPN' 'GMBT' ; * Il faut initialiser valt et valq, sinon on peut capturer ceux de * la procédure appelante valt = 'valt' ; valq = 'valq' ; llapn = 0 ; 'REPETER' imotcle ; 'SI' ('NON' ('EXISTE' motcle)) ; 'QUITTER' imotcle ; 'FINSI' ; 'SI' ('NON' ('EXISTE' lmotcle motcle)) ; cherr = 'CHAINE' 'Keyword ' motcle ' unknown.' ; 'ERREUR' cherr ; 'FINSI' ; tst1 = 'EGA' motcle 'FPRI' ; tst2 = 'EGA' motcle 'FDUA' ; tst = tst1 'OU' tst2 ; 'SI' tst ; 'SI' tst1 ; tt = TDISC . nomt ; 'FINSI' ; 'SI' tst2 ; tt = TDISC . nomq ; 'FINSI' ; 'SI' isvec ; 'ARGUMENT' valv*'LISTREEL' ; 'SINON' ; 'ARGUMENT' valv*'FLOTTANT' ; 'FINSI' ; 'SI' tst1 ; valt = valv ; 'FINSI' ; 'SI' tst2 ; valq = valv ; 'FINSI' ; 'FINSI' ; 'SI' ('EGA' motcle 'FCOF') ; 'ARGUMENT' valo*'FLOTTANT' ; 'FINSI' ; 'SI' ('EGA' motcle 'CPRI') ; 'ARGUMENT' valt*'CHPOINT' ; 'FINSI' ; 'SI' ('EGA' motcle 'CDUA') ; 'ARGUMENT' valq*'CHPOINT' ; 'FINSI' ; 'SI' ('EGA' motcle 'CCOF') ; 'ARGUMENT' valo*'CHPOINT' ; 'FINSI' ; 'SI' ('EGA' motcle 'GMBT') ; llapn = 2 ; 'FINSI' ; 'FIN' imotcle ; * * Tests * discg = TDISC . 'GEOM' . 'DISC' ; methgau = 'GAU7' ; tnomt = TDISC . nomt ; tnomq = TDISC . nomq ; * Scalaire ou vecteur 'SI' ('NEG' ninct nincq) ; cherr = 'CHAINE' 'les primales et duales nont pas le meme nombre de composantes' ; 'ERREUR' cherr ; 'FINSI' ; cherr = 'CHAINE' 'les inconnues doivent etre vectorielles' ; 'ERREUR' cherr ; 'FINSI' ; * ninc = ninct ; * lcof = 'EXISTE' TDISC nomo ; 'SI' lcof ; ncof = 1 ; tcof = TDISC . nomo ; 'SINON' ; ncof = 0 ; 'FINSI' ; * 'SI' debug ; 'SI' lcof ; 'MESSAGE' 'Un coef a ete detecte' ; 'SINON' ; 'MESSAGE' 'pas de coef detecte' ; 'FINSI' ; 'FINSI' ; * idim = 0 ; 'SI' ('ET' ('EGA' vdim 2) ('EGA' vmod 'PLANDEFO')) ; idim = 2 ; iaxi = FAUX ; 'FINSI' ; 'SI' ('ET' ('EGA' vdim 2) ('EGA' vmod 'AXIS')) ; idim = 2 ; iaxi = VRAI ; 'FINSI' ; 'SI' ('ET' ('EGA' vdim 3) ('EGA' vmod 'TRID')) ; idim = 3 ; iaxi = FAUX ; 'FINSI' ; 'SI' ('EGA' vdim 1) ; idim = 1 ; iaxi = FAUX ; 'FINSI' ; * 'MESSAGE' ('CHAINE' 'iaxi=' iaxi ); 'SI' ('EGA' idim 0) ; 'ERREUR' ('CHAINE' 'vmod=' vmod ' et vdim=' vdim ' non prevu') ; 'FINSI' ; 'SI' iaxi ; rmt = 'COORDONNEE' 1 _mt ; deupi = '*' PI 2.D0 ; 'FINSI' ; * * Optimisation possible : construire la matrice par blocs * qd valt et valq ne sont pas donnés * * *Bug ? numop = ('**' ninc 2) '+' 1 ; numop = '**' ninc 2 ; 'SI' iaxi ; numop = '+' numop 1 ; 'FINSI' ; numder = idim ; numvar = ninc ; ncof = '+' ncof 1 ; *delete 'SI' iaxi ; ncof = '+' ncof 1 ; 'FINSI' ; numdat = ncof ; numcof = ncof ; * * 'REPETER' iiinc ninc ; iinc = &iiinc ; A . 'VAR' . iinc . 'NOMDDL' = tnomt . 'NOMINC' . iinc ; A . 'VAR' . iinc . 'DISC' = tnomt . 'DISC' ; 'SI' lvalt ; 'SI' lvt ; A . 'VAR' . iinc . 'VALEUR' = 'EXTRAIRE' valt iinc ; 'SINON' ; A . 'VAR' . iinc . 'VALEUR' = valt ; 'FINSI' ; 'FINSI' ; 'FIN' iiinc ; * icof = 0 ; icof = '+' icof 1 ; A . 'DAT' . icof . 'DISC' = 'CSTE' ; A . 'DAT' . icof . 'VALEUR' = 2.D0 ; A . 'COF' . icof . 'COMPOR' = 'IDEN' ; 'SI' lcof ; icof = '+' icof 1 ; A . 'DAT' . icof . 'NOMDDL' = tcof . 'NOMINC' . 1 ; A . 'DAT' . icof . 'DISC' = tcof . 'DISC' ; A . 'DAT' . icof . 'VALEUR' = valo ; A . 'COF' . icof . 'COMPOR' = 'IDEN' ; 'FINSI' ; * iop = 0 ; 'REPETER' iidim idim ; 'REPETER' jidim idim ; iop = '+' iop 1 ; 'SI' ('EGA' &iidim &jidim) ; 'SI' ('EGA' llapn 0) ; A . iop . &iidim . &jidim = ll2 ; 'SINON' ; A . iop . &iidim . &jidim = ll ; 'FINSI' ; 'SINON' ; 'SI' ('NEG' llapn 2) ; A . iop . &iidim . &jidim = ll ; 'FINSI' ; 'SI' ('NEG' llapn 1) ; A . iop . &jidim . &iidim = ll ; 'FINSI' ; 'FINSI' ; 'FIN' jidim ; 'FIN' iidim ; 'SI' iaxi ; iop = '+' iop 1 ; 'SI' ('EGA' llapn 0) ; A . iop . 1 . 0 = ll2 ; 'SINON' ; A . iop . 1 . 0 = ll ; 'FINSI' ; 'FINSI' ; * 'SI' iaxi ; numdat = 2 ; numcof = 2 ; 'SINON' ; numdat = 0 ; numcof = 0 ; 'FINSI' ; * * icof = 0 ; * 'SI' iaxi ; icof = '+' icof 1 ; B . 'DAT' . icof . 'DISC' = discg ; B . 'DAT' . icof . 'VALEUR' = rmt ; B . 'COF' . icof . 'COMPOR' = 'IDEN' ; icof = '+' icof 1 ; B . 'DAT' . icof . 'DISC' = 'CSTE' ; B . 'DAT' . icof . 'VALEUR' = deupi ; B . 'COF' . icof . 'COMPOR' = 'IDEN' ; mic = '*' ('-' icof 1) -1 ; 'FINSI' ; * 'REPETER' iiinc ninc ; iinc = &iiinc ; B . 'VAR' . iinc . 'NOMDDL' = tnomq . 'NOMINC' . iinc ; B . 'VAR' . iinc . 'DISC' = tnomq . 'DISC' ; 'SI' lvalq ; 'SI' lvq ; B . 'VAR' . iinc . 'VALEUR' = 'EXTRAIRE' valq iinc ; 'SINON' ; B . 'VAR' . iinc . 'VALEUR' = valq ; 'FINSI' ; 'FINSI' ; 'FIN' iiinc ; * iop = 0 ; 'REPETER' iidim idim ; 'REPETER' jidim idim ; iop = '+' iop 1 ; B . iop . &iidim . &jidim = ll ; 'FIN' jidim ; 'FIN' iidim ; 'SI' iaxi ; iop = '+' iop 1 ; B . iop . 1 . 0 = llb ; * B . iop . 1 . 0 = ll ; 'FINSI' ; * mgrig = NLINP discg _mt A B methgau ; * Integration par parties * mgrig = '*' mgrig -1.D0 ; * 'RESPRO' mgrig ; 'FINPROC' ; * * End of procedure file GRIG * *ENDPROCEDUR grig *BEGINPROCEDUR gugrad2 ************************************************************************ * NOM : GUGRAD2 * DESCRIPTION : Une matrice de convection * * * * LANGAGE : GIBIANE-CAST3M * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF) * mél : gounand@semt2.smts.cea.fr ********************************************************************** * VERSION : v2, 14/03/2006, mise à jour NLIN évolué * VERSION : v1, 13/05/2004, version initiale * HISTORIQUE : v1, 13/05/2004, création * HISTORIQUE : * HISTORIQUE : ************************************************************************ * Prière de PRENDRE LE TEMPS de compléter les commentaires * en cas de modification de ce sous-programme afin de faciliter * la maintenance ! ************************************************************************ * * 'DEBPROC' GUGRAD2 ; 'ARGUMENT' _mt*'MAILLAGE' ; 'ARGUMENT' _smt/'MAILLAGE' ; 'ARGUMENT' tdisc*'TABLE' ; * * Lectures * debug = FAUX ; lmotcle = 'MOTS' 'NPRI' 'FPRI' 'CPRI' 'NDUA' 'FDUA' 'CDUA' 'NVIT' 'FVIT' 'CVIT' 'NCOF' 'FCOF' 'CCOF' ; 'REPETER' imotcle ; 'SI' ('NON' ('EXISTE' motcle)) ; 'QUITTER' imotcle ; 'FINSI' ; 'SI' ('NON' ('EXISTE' lmotcle motcle)) ; cherr = 'CHAINE' 'Keyword ' motcle ' unknown.' ; 'ERREUR' cherr ; 'FINSI' ; tst1 = 'EGA' motcle 'FPRI' ; tst2 = 'EGA' motcle 'FDUA' ; tst = tst1 'OU' tst2 ; 'SI' tst ; 'SI' tst1 ; tt = TDISC . nomt ; 'FINSI' ; 'SI' tst2 ; tt = TDISC . nomq ; 'FINSI' ; 'SI' isvec ; 'ARGUMENT' valv*'LISTREEL' ; 'SINON' ; 'ARGUMENT' valv*'FLOTTANT' ; 'FINSI' ; 'SI' tst1 ; valt = valv ; 'FINSI' ; 'SI' tst2 ; valq = valv ; 'FINSI' ; 'FINSI' ; 'SI' ('EGA' motcle 'FCOF') ; 'ARGUMENT' valo*'FLOTTANT' ; 'FINSI' ; 'SI' ('EGA' motcle 'FVIT') ; 'ARGUMENT' valu*'LISTREEL' ; 'FINSI' ; 'SI' ('EGA' motcle 'CPRI') ; 'ARGUMENT' valt*'CHPOINT' ; 'FINSI' ; 'SI' ('EGA' motcle 'CDUA') ; 'ARGUMENT' valq*'CHPOINT' ; 'FINSI' ; 'SI' ('EGA' motcle 'CCOF') ; 'ARGUMENT' valo*'CHPOINT' ; 'FINSI' ; 'SI' ('EGA' motcle 'CVIT') ; 'ARGUMENT' valu*'CHPOINT' ; 'FINSI' ; 'FIN' imotcle ; * * Tests * discg = TDISC . 'GEOM' . 'DISC' ; methgau = 'GAU7' ; tnomt = TDISC . nomt ; tnomq = TDISC . nomq ; tnomu = TDISC . nomu ; * Scalaire ou vecteur 'SI' ('NEG' ninct nincq) ; cherr = 'CHAINE' 'les primales et duales nont pas le meme nombre de composantes' ; 'ERREUR' cherr ; 'FINSI' ; ninc = ninct ; * lcof = 'EXISTE' TDISC nomo ; 'SI' lcof ; ncof = 1 ; tcof = TDISC . nomo ; 'SINON' ; ncof = 0 ; 'FINSI' ; * 'SI' debug ; 'SI' lcof ; 'MESSAGE' 'Un coef a ete detecte' ; 'SINON' ; 'MESSAGE' 'pas de coef detecte' ; 'FINSI' ; 'FINSI' ; * idim = 0 ; 'SI' ('ET' ('EGA' vdim 2) ('EGA' vmod 'PLANDEFO')) ; idim = 2 ; iaxi = FAUX ; 'FINSI' ; 'SI' ('ET' ('EGA' vdim 2) ('EGA' vmod 'AXIS')) ; idim = 2 ; iaxi = VRAI ; 'FINSI' ; 'SI' ('ET' ('EGA' vdim 3) ('EGA' vmod 'TRID')) ; idim = 3 ; iaxi = FAUX ; 'FINSI' ; 'SI' ('EGA' vdim 1) ; idim = 1 ; iaxi = FAUX ; 'FINSI' ; 'SI' ('EGA' idim 0) ; 'ERREUR' ('CHAINE' 'vmod=' vmod ' et vdim=' vdim ' non prevu') ; 'FINSI' ; 'SI' iaxi ; dprmt = '*' ('COORDONNEE' 1 _mt) ('*' PI 2.D0) ; 'FINSI' ; * Scalaire ou vecteur 'SI' ('NEG' nincu idim) ; cherr = 'CHAINE' 'la vitesse doit etre un vecteur' ; 'ERREUR' cherr ; 'FINSI' ; ncof = '+' ncof nincu ; * * Optimisation possible : construire la matrice par blocs * qd valt et valq ne sont pas donnés * numop = ninc ; numder = idim ; numvar = ninc ; numdat = ncof ; numcof = ncof ; * 'REPETER' iiinc ninc ; iinc = &iiinc ; A . 'VAR' . iinc . 'NOMDDL' = tnomt . 'NOMINC' . iinc ; A . 'VAR' . iinc . 'DISC' = tnomt . 'DISC' ; 'SI' lvalt ; 'SI' lvt ; A . 'VAR' . iinc . 'VALEUR' = 'EXTRAIRE' valt iinc ; 'SINON' ; A . 'VAR' . iinc . 'VALEUR' = valt ; 'FINSI' ; 'FINSI' ; 'FIN' iiinc ; * icof = 0 ; 'REPETER' iiincu nincu ; iincu = &iiincu ; icof = icof '+' 1 ; A . 'DAT' . icof . 'NOMDDL' = tnomu . 'NOMINC' . iincu ; A . 'DAT' . icof . 'DISC' = tnomu . 'DISC' ; 'SI' lvu ; A . 'DAT' . icof . 'VALEUR' = 'EXTRAIRE' valu iincu ; 'SINON' ; A . 'DAT' . icof . 'VALEUR' = valu ; 'FINSI' ; A . 'COF' . icof . 'COMPOR' = 'IDEN' ; 'FIN' iiincu ; 'SI' lcof ; icof = icof '+' 1 ; A . 'DAT' . icof . 'NOMDDL' = tcof . 'NOMINC' . 1 ; A . 'DAT' . icof . 'DISC' = tcof . 'DISC' ; A . 'DAT' . icof . 'VALEUR' = valo ; A . 'COF' . icof . 'COMPOR' = 'IDEN' ; 'SINON' ; 'FINSI' ; * 'REPETER' iiinc ninc ; iinc = &iiinc ; 'REPETER' iiidim idim ; iidim = &iiidim ; 'FIN' iiidim ; 'FIN' iiinc ; * 'SI' iaxi ; numdat = 1 ; numcof = 1 ; 'SINON' ; numdat = 0 ; numcof = 0 ; 'FINSI' ; 'SI' iaxi ; B . 'DAT' . 1 . 'DISC' = discg ; B . 'DAT' . 1 . 'VALEUR' = dprmt ; B . 'COF' . 1 . 'COMPOR' = 'IDEN' ; 'SINON' ; 'FINSI' ; 'REPETER' iiinc ninc ; iinc = &iiinc ; B . 'VAR' . iinc . 'NOMDDL' = tnomq . 'NOMINC' . iinc ; B . 'VAR' . iinc . 'DISC' = tnomq . 'DISC' ; 'SI' lvalq ; 'SI' lvq ; B . 'VAR' . iinc . 'VALEUR' = 'EXTRAIRE' valq iinc ; 'SINON' ; B . 'VAR' . iinc . 'VALEUR' = valq ; 'FINSI' ; 'FINSI' ; B . iinc . iinc . 0 = ll ; 'FIN' iiinc ; * 'SI' ('EXISTE' _smt) ; 'SINON' ; mgugrad2 = NLINP discg _mt A B methgau ; 'FINSI' ; * 'RESPRO' mgugrad2 ; 'FINPROC' ; * * End of procedure file GUGRAD2 * *ENDPROCEDUR gugrad2 *BEGINPROCEDUR log10 ************************************************************************ * NOM : LOG10 * DESCRIPTION : Log_10 * * * * LANGAGE : GIBIANE-CAST3M * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF) * mél : gounand@semt2.smts.cea.fr ********************************************************************** * VERSION : v1, 18/02/2003, version initiale * HISTORIQUE : v1, 18/02/2003, création * HISTORIQUE : * HISTORIQUE : ************************************************************************ * Prière de PRENDRE LE TEMPS de compléter les commentaires * en cas de modification de ce sous-programme afin de faciliter * la maintenance ! ************************************************************************ * * 'DEBPROC' LOG10 ; 'REPETER' bouc ; ok = FAUX ; 'ARGUMENT' fl/'FLOTTANT' ; 'ARGUMENT' lr/'LISTREEL' ; 'ARGUMENT' cp/'CHPOINT ' ; 'ARGUMENT' cm/'MCHAML ' ; 'SI' ('EXISTE' fl) ; ok = VRAI ; 'RESPRO' ('/' ('LOG' fl) ('LOG' 10.D0)) ; 'FINSI' ; 'SI' ('EXISTE' lr) ; ok = VRAI ; 'RESPRO' ('/' ('LOG' lr) ('LOG' 10.D0)) ; 'FINSI' ; 'SI' ('EXISTE' cp) ; ok = VRAI ; 'RESPRO' ('/' ('LOG' cp) ('LOG' 10.D0)) ; 'FINSI' ; 'SI' ('EXISTE' cm) ; ok = VRAI ; 'RESPRO' ('/' ('LOG' cm) ('LOG' 10.D0)) ; 'FINSI' ; 'SI' ('NON' ok) ; 'QUITTER' bouc ; 'FINSI' ; 'FIN' bouc ; * * End of procedure file LOG10 * 'FINPROC' ; *ENDPROCEDUR log10 *BEGINPROCEDUR modulo ************************************************************************ * NOM : MODULO * DESCRIPTION : Calcule un entier modulo un autre... * * * * LANGAGE : GIBIANE-CAST3M * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF) * mél : gounand@semt2.smts.cea.fr ********************************************************************** * VERSION : v1, 15/10/2002, version initiale * HISTORIQUE : v1, 15/10/2002, création * HISTORIQUE : * HISTORIQUE : ************************************************************************ * Prière de PRENDRE LE TEMPS de compléter les commentaires * en cas de modification de ce sous-programme afin de faciliter * la maintenance ! ************************************************************************ * * 'DEBPROC' MODULO ; 'ARGUMENT' i*'ENTIER' j*'ENTIER' ; 'SI' ('EGA' j 0) ; 'MESSAGE' 'Impossible de faire modulo 0' ; 'ERREUR' 5 ; 'SINON' ; k=i '/' j ; mod=i '-' ( k '*'j ) ; 'RESPRO' mod ; 'FINSI' ; * * End of procedure file MODULO * 'FINPROC' ; *ENDPROCEDUR modulo *BEGINPROCEDUR mydal ************************************************************************ * NOM : MYDAL * DESCRIPTION : * * * * LANGAGE : GIBIANE-CAST3M * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF) * mél : gounand@semt2.smts.cea.fr ********************************************************************** * VERSION : v1, ??/??/2007, version initiale * HISTORIQUE : v1, ??/??/2007, création * HISTORIQUE : * HISTORIQUE : ************************************************************************ * Prière de PRENDRE LE TEMPS de compléter les commentaires * en cas de modification de ce sous-programme afin de faciliter * la maintenance ! ************************************************************************ * * 'DEBPROC' MYDAL ; 'ARGUMENT' p1*'POINT' p2*'POINT' p3*'POINT' p4*'POINT' ; 'REPETER' bcl ; 'ARGUMENT' den/'FLOTTANT' ; 'SI' ('EXISTE' den) ; lden = 'ET' lden den ; 'SINON' ; 'QUITTER' bcl ; 'FINSI' ; 'FIN' bcl ; 'SI' ('EGA' dlden 1) ; den = 'EXTRAIRE' lden 1 ; denxg = den ; denxd = den ; denyb = den ; denyh = den ; 'FINSI' ; 'SI' ('EGA' dlden 2) ; denx = 'EXTRAIRE' lden 1 ; denxg = denx ; denxd = denx ; deny = 'EXTRAIRE' lden 2 ; denyb = deny ; denyh = deny ; 'FINSI' ; 'SI' ('EGA' dlden 4) ; denxg = 'EXTRAIRE' lden 1 ; denxd = 'EXTRAIRE' lden 2 ; denyb = 'EXTRAIRE' lden 3 ; denyh = 'EXTRAIRE' lden 4 ; 'FINSI' ; l1 = 'DROIT' p1 p2 'DINI' denxg 'DFIN' denxd ; l2 = 'DROIT' p2 p3 'DINI' denyb 'DFIN' denyh ; l3 = 'DROIT' p3 p4 'DINI' denxd 'DFIN' denxg ; l4 = 'DROIT' p4 p1 'DINI' denyh 'DFIN' denyb ; mt = 'DALLER' l1 l2 l3 l4 ; 'RESPRO' mt ; * * End of procedure file MYDAL * 'FINPROC' ; *ENDPROCEDUR mydal *BEGINPROCEDUR quafme ************************************************************************ * NOM : QUAFME * DESCRIPTION : * * * * LANGAGE : GIBIANE-CAST3M * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF) * mél : gounand@semt2.smts.cea.fr ********************************************************************** * VERSION : v1, 01/12/2004, version initiale * HISTORIQUE : v1, 01/12/2004, création * HISTORIQUE : * HISTORIQUE : ************************************************************************ * Prière de PRENDRE LE TEMPS de compléter les commentaires * en cas de modification de ce sous-programme afin de faciliter * la maintenance ! ************************************************************************ * * 'DEBPROC' QUAFME ; 'REPETER' bcl ; 'ARGUMENT' mquad/'MAILLAGE' ; 'SI' ('EXISTE' mquad) ; mquaf = 'CHANGER' mquad 'QUAF' ; * mlin = 'CHANGER' mquad 'LINEAIRE' ; 'RESPRO' mquaf ; 'SINON' ; 'QUITTER' bcl ; 'FINSI' ; 'FIN' bcl ; 'FINPROC' ; * * End of procedure file QUAFME * *ENDPROCEDUR quafme *BEGINPROCEDUR redus ************************************************************************ * NOM : REDUS * DESCRIPTION : * * * * LANGAGE : GIBIANE-CAST3M * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF) * mél : gounand@semt2.smts.cea.fr ********************************************************************** * VERSION : v1, 01/12/2004, version initiale * HISTORIQUE : v1, 01/12/2004, création * HISTORIQUE : * HISTORIQUE : ************************************************************************ * Prière de PRENDRE LE TEMPS de compléter les commentaires * en cas de modification de ce sous-programme afin de faciliter * la maintenance ! ************************************************************************ * * 'DEBPROC' REDUS ; 'ARGUMENT' mred*'MAILLAGE' ; 'REPETER' bcl ; 'RESPRO' chpor ; 'SINON' ; 'QUITTER' bcl ; 'FINSI' ; 'FIN' bcl ; 'FINPROC' ; * * End of procedure file REDUS * *ENDPROCEDUR redus *BEGINPROCEDUR scottm ************************************************************************ * NOM : SCOTTM * DESCRIPTION : * Corrélations issues de *@Article{scottmirza, * author = {P.S. Scott and F.A. Mirza and J. Vlachopoulos}, * title = {A Finite Element Analysis of Laminar Flows through Planar and Axisymmetric abrupt expansions}, * journal = {Computers & Fluids}, * year = {1986}, * volume = {14}, * number = {4}, * pages = {423 - 432}, *} * donnant respectivement : Lr : longueur de la recirculation * Lc : centre de la recirculation * Rei : intensité relative de la recirculation * en fonction de : exprat (expansion ratio) * Re (Reynolds basé sur le diamètre d'entrée) * * * * LANGAGE : GIBIANE-CAST3M * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF) * mél : stephane.gounand@cea.fr ********************************************************************** * VERSION : v1, 13/01/2011, version initiale * HISTORIQUE : v1, 13/01/2011, création * HISTORIQUE : * HISTORIQUE : ************************************************************************ * Prière de PRENDRE LE TEMPS de compléter les commentaires * en cas de modification de ce sous-programme afin de faciliter * la maintenance ! ************************************************************************ * * 'DEBPROC' SCOTTM ; 'ARGUMENT' exprat*'FLOTTANT' ; 'ARGUMENT' Re*'FLOTTANT' ; alpha = 'alpha' ; 'SI' ('EGA' vmod 'AXIS') ; 'SI' ('EGA' exprat 1.5 1.D-6) ; alpha = 0.0125 ; beta = 0.1695e-2 ; lambda = 0.085 ; theta = 0.0374 ; epsilon = 0.0117 ; 'FINSI' ; 'SI' ('EGA' exprat 2. 1.D-6) ; alpha = 0.0455 ; beta = 0.552e-2 ; lambda = 0.325 ; theta = 0.126 ; epsilon = 0.0229 ; 'FINSI' ; 'SI' ('EGA' exprat 3. 1.D-6) ; alpha = 0.11 ; beta = 2.65e-2 ; lambda = 0.105 ; theta = 0.378 ; epsilon = 0.0354 ; 'FINSI' ; 'SI' ('EGA' exprat 4. 1.D-6) ; alpha = 0.17 ; beta = 4.93e-2 ; lambda = 0.0 ; theta = 0.65 ; epsilon = 0.0455 ; 'FINSI' ; 'SINON' ; 'SI' ('EGA' exprat 1.5 1.D-6) ; alpha = 0.0093 ; beta = 0.133e-2 ; lambda = 0.08 ; theta = 0.006 ; epsilon = 0.011 ; 'FINSI' ; 'SI' ('EGA' exprat 2. 1.D-6) ; alpha = 0.0347 ; beta = 0.58e-2 ; lambda = 0.125 ; theta = 0.025 ; epsilon = 0.0171 ; 'FINSI' ; 'SI' ('EGA' exprat 3. 1.D-6) ; alpha = 0.101 ; beta = 2.73e-2 ; lambda = -0.05 ; theta = 0.0735 ; epsilon = 0.0311 ; 'FINSI' ; 'SI' ('EGA' exprat 4. 1.D-6) ; alpha = 0.178 ; beta = 5.78e-2 ; lambda = -0.398 ; theta = 0.125 ; epsilon = 0.039 ; 'FINSI' ; 'FINSI' ; cherr = 'CHAINE' 'exprat=' exprat ' incorrect' ; 'ERREUR' cherr ; 'FINS' ; Lr = '*' alpha Re ; Lc = '+' ('*' beta Re) lambda ; rei = '*' ('-' 1. ('EXP' ('*' ('*' Re epsilon) -1.))) theta ; 'RESPRO' rei Lc Lr ; * * End of procedure file SCOTTM * 'FINPROC' ; *ENDPROCEDUR scottm *BEGINPROCEDUR trvec ************************************************************************ * NOM : TRVEC * DESCRIPTION : Trace des champs de vecteurs * * * * LANGAGE : GIBIANE-CAST3M * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF) * mél : gounand@semt2.smts.cea.fr ********************************************************************** * VERSION : v1, ??/??/2007, version initiale * HISTORIQUE : v1, ??/??/2007, création * HISTORIQUE : * HISTORIQUE : ************************************************************************ * Prière de PRENDRE LE TEMPS de compléter les commentaires * en cas de modification de ce sous-programme afin de faciliter * la maintenance ! ************************************************************************ * * 'DEBPROC' TRVEC ; *'ARGUMENT' tdisc*'TABLE' ; *'ARGUMENT' motdom*'MOT' ; 'ARGUMENT' tdom*'MAILLAGE' ; * tvec = 'TABLE' ; ttit = 'TABLE' ; i = 0 ; lcoul = 'MOTS' 'JAUN' 'ROUG' 'BLAN' 'TURQ' 'VERT' 'OLIV' 'AZUR' 'ORAN' 'VIOL' 'GRIS' 'OCEA' ; * 'REPETER' livec ; 'SI' ('EGA' i 0) ; 'ARGUMENT' ccvec*'CHPOINT' ; 'SINON' ; 'ARGUMENT' ccvec/'CHPOINT' ; 'FINSI' ; 'SI' ('EXISTE' ccvec) ; 'SINON' ; 'QUITTER' livec ; 'FINSI' ; i = '+' i 1 ; * 'MESSAGE' ('CHAINE' 'i=' i) ; * 'LISTE' ccvec ; * 'LISTE' tvec ; tvec . i = ccvec ; ttit . i = ttvec ; 'FIN' livec ; 'ARGUMENT' echv/'FLOTTANT' ; 'ARGUMENT' lnclk/'LOGIQUE' ; 'SI' ('NON' ('EXISTE' lnclk)) ; lnclk = faux ; 'FINSI' ; * 'REPETER' ii i ; mm = 'MAXIMUM' (tvec . &ii) 'ABS' ; 'FIN' ii ; mm = '+' ('MAXIMUM' lmax) 1.D-60 ; 'SI' ('NON' ('EXISTE' echv)) ; ctail = gmass2 ('CHANGER' tdom 'QUAF') tdisc 'NPRI' 'CSTE' 'FPRI' 1. 'NDUA' 'CSTE' 'FDUA' 1. ; * 'LISTE' ctail ; * ctail = '**' ctail ('/' 1. ('-' vdim 1)) ; ctail = '**' ctail ('/' 1. dimm) ; *'LISTE' tail ; *'LISTE' mm ; 'FINSI' ; tit = 'CHAINE' 'Max. =' (formar mm 2) ; 'REPETER' ii i ; cou = EXMOMOD lcoul &ii ; tit = 'CHAINE' tit ' ' cou '=' (ttit . &ii) ; 'FIN' ii ; 'SI' lnclk ; 'SINON' ; 'FINSI' ; * * End of procedure file TRVEC * 'FINPROC' ; *ENDPROCEDUR trvec *BEGINPROCEDUR gmail ************************************************************************ * NOM : GMAIL * DESCRIPTION : Extrait le maillage des points supports des degrés * de liberté d'une inconnue * * Cette procédure est identique à GMAIL2 qui paraissait * mieux que l'ancienne GMAIL * * * * LANGAGE : GIBIANE-CAST3M * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF) * mél : gounand@semt2.smts.cea.fr ********************************************************************** * VERSION : v1, 20/04/2012, version initiale * HISTORIQUE : * HISTORIQUE : ************************************************************************ * * 'DEBPROC' GMAIL ; 'ARGUMENT' _mt/'MAILLAGE' ; * 'SI' ('NON' xmt) ; 'SI' ('NON' xtdisc) ; 'ARGUMENT' tdisc*'TABLE' ; xtdisc = vrai ; 'FINS' ; 'SI' ('NON' ('EXISTE' tdisc nmt)) ; cherr = 'CHAINE' 'Le domaine ' nmt ' nest pas defini dans' ' la table de discretisation' ; 'ERREUR' cherr ; 'FINSI' ; _mt = tdisc . nmt . 'QUAF' ; 'FINSI' ; * 'SI' ('NON' xtdisc) ; discdua = dua ; * nomdua = dua ; 'SINO' ; * nomdua = dua ; discdua = tdisc . dua . 'DISC' ; 'FINS' ; * *'ARGUMENT' nomdua*'MOT ' ; * * Raccourcis du 2019/01/25 * Est-ce vraiment astucieux ?... * 'SI' ('EGA' discdua 'QUAF') ; 'RESP' _mt ; 'QUIT' GMAIL ; 'FINS' ; 'SI' ('EGA' discdua 'LINE') ; 'QUIT' GMAIL ; 'FINS' ; 'SI' ('EGA' discdua 'QUAI') ; 'QUIT' GMAIL ; 'FINS' ; * *vdim = 'VALEUR' 'DIME' ; 'SI' ('EGA' discdua 'LINM') ; discdua = 'CSTE' ; 'FINSI' ; * numop = 1 ; numder = mdim ; numvar = 1 ; numdat = 0 ; numcof = 0 ; A . 'VAR' . 1 . 'VALEUR' = 0. ; * A . 1 . 1 . 0 = 0 ; * B . 'VAR' . 1 . 'NOMDDL' = 'DUMM' ; B . 'VAR' . 1 . 'DISC' = discdua ; * B . 1 . 1 . 0 = 0 ; * dom = 'EXTRAIRE' gm 'MAIL' ; * 'RESPRO' dom ; 'FINPROC' ; * * End of procedure file GMAIL * *ENDPROCEDUR gmail * ****************************************** * * * Procédure principale de CALCUL * * * ****************************************** * 'DEBPROC' CALCUL ; 'ARGUMENT' exprat*'FLOTTANT' ; 'ARGUMENT' nr*'ENTIER' ; 'ARGUMENT' Re*'FLOTTANT' ; 'ARGUMENT' iaxi*'LOGIQUE' ; * 'SAUTER' 2 'LIGNE' ; 'MESSAGE' ('CHAINE' '************ Sudden expansion ***********') ; 'MESSAGE' ('CHAINE' 'expansion ratio =' (formar exprat 2)) ; 'MESSAGE' ('CHAINE' 'nr =' (formar nr 2)) ; 'MESSAGE' ('CHAINE' 'Re =' (formar Re 2)) ; 'MESSAGE' ('CHAINE' 'iaxi =' iaxi) ; * titg = 'CHAINE' 'xr=' (formar exprat 1) ';Re='(formar Re 2) ; 'SI' iaxi ; titg = 'CHAINE' ' Axi;' titg ; 'SINON' ; titg = 'CHAINE' ' Plan;' titg ; 'FINSI' ; * * methgau = 'GAU7' ; nitermax = 40 ; 'SI' ('<' Re 10.) ; omeg = 1.0 ; 'SINON' ; omeg = 0.75 ; 'FINSI' ; mdvquit = 1.D-4 ; * ************************************** * Modèle * ************************************** * discg = 'LINE' ; discv = 'QUAF' ; discp = 'LINM' ; laxi = 'EGA' vmod 'AXIS' ; 'SI' laxi ; 'SINON' ; 'FINSI' ; nv1 = 'EXTRAIRE' nomvit 1 ; nv2 = 'EXTRAIRE' nomvit 2 ; 'SI' ('EGA' discp 'LINM') ; 'SINON' ; 'FINSI' ; mpri = nomvit 'ET' nomul 'ET' nompre ; mdua = nomfor 'ET' nomuld 'ET' nomprd ; * TDISC = 'TABLE' ; TDISC . 'GEOM' = 'TABLE' ; TDISC . 'GEOM' . 'DISC' = discg ; TDISC . 'UN' = 'TABLE' ; TDISC . 'UN' . 'DISC' = discv ; TDISC . 'UN' . 'NOMINC' = 'TABLE' ; 'REPETER' idim vdim ; 'FIN' idim ; TDISC . 'PN' = 'TABLE' ; TDISC . 'PN' . 'DISC' = discp ; TDISC . 'PN' . 'NOMINC' = 'TABLE' ; TDISC . 'PN' . 'NOMINC' . 1 = nompre ; mdisc = 'EXTRAIRE' lmdisc &iidisc ; tdisc . mdisc = 'TABLE' ; tdisc . mdisc . 'DISC' = mdisc ; tdisc . mdisc . 'NOMINC' = 'TABLE' ; tdisc . mdisc . 'NOMINC' . 1 = nomsca ; mdiscv = 'CHAINE' mdisc 'V' ; tdisc . mdiscv = 'TABLE' ; tdisc . mdiscv . 'DISC' = mdisc ; tdisc . mdiscv . 'NOMINC' = 'TABLE' ; 'REPETER' idim vdim ; TDISC . mdiscv. 'NOMINC' . &idim = 'FIN' idim ; 'FIN' iidisc ; * ************************************** * Maillage * ************************************** * D1 = 1. ; D2 = exprat ; L1 = 2. ; mL1 = '*' L1 -1. ; * Estimation de la longueur d'après Scott et Mirza 'SI' complet ; 'SINON' ; 'FINSI' ; L2 = 0.044 '*' exprat '*' ree ; R2 = '/' D2 2. ; R1 = '/' D1 2. ; R12 = '-' R2 R1 ; reia Lca Lra = SCOTTM exprat Re ; 'MESSAGE' ('CHAINE' 'Channel length =' (formar L2 2)) ; 'MESSAGE' ('CHAINE' 'Predicted Rel. eddy int. =' (formar reia 3)) ; 'MESSAGE' ('CHAINE' 'Predicted eddy center =' (formar Lca 3)) ; 'MESSAGE' ('CHAINE' 'Predicted Reatt. length =' (formar Lra 3)) ; * milr = 'MINIMUM' lr ; dx = '/' milr nr ; dyp = dx ; dyg1 = '/' L1 nr ; dyg2 = '/' L2 nr ; * pA = 0. mL1 ; pB = R1 mL1 ; pC = 0. 0. ; pD = R1 0. ; pE = R2 0. ; pF = 0. yc ; pG = R1 yc ; pH = R2 yc ; poI = 0. L2 ; pJ = R1 L2 ; pK = R2 L2 ; * mt1 = MYDAL pA pB pD pC dx dx dyg1 dyp ; mt2 = MYDAL pC pD pG pF dx dx dyp dyp ; mt3 = MYDAL pD pE pH pG dx dx dyp dyp ; mt4 = MYDAL pF pG pJ poI dx dx dyp dyg2 ; mt5 = MYDAL pG pH pK pJ dx dx dyp dyg2 ; * mt = mt1 'ET' mt2 'ET' mt3 'ET' mt4 'ET' mt5 ; 'ELIMINATION' mt 1.D-6 ; 'SI' graph ; 'TRACER' mt 'TITR' tit ; 'FINSI' ; cmt = 'CONTOUR' mt ; * * 'SI' graph ; tit = 'CHAINE' 'Bords du Maillage ' ; 'FINSI' ; * 'SI' ('EGA' discv 'LINB') ; 'ERREUR' 5 ; 'FINSI' ; _bas _dro _dror _hau _gau _mt = QUAFME bas dro dror hau gau mt ; *'ELIMINATION' (_bas 'ET' _dro 'ET' _hau 'ET' _gau 'ET' _cmt 'ET' _mt) * 1.D-5 ; _cmt = 'CONTOUR' _mt ; _zmt = 'COORDONNEE' 2 _mt ; _ctmt = 'CONTOUR' _tmt ; * * ************************************** * Matrices des opérateurs linéaires * ************************************** * * * Rigidité * gri = GRIG _mt tdisc 'NPRI' 'UN' 'NDUA' 'UN' ; * gri = GRIG _mt tdisc 'NPRI' 'UN' 'NDUA' 'UN' 'LAPN' ; gri = 'CHANGER' 'INCO' gri mpri mpri mpri mdua ; *gri = '*' gri ('/' 1. Re) ; * * Contrainte de divergence nulle * gdiv = GDIV2 _mt tdisc 'NPRI' 'UN' 'NDUA' 'PN' 'GBBT' ; gdiv = 'CHANGER' 'INCO' gdiv mpri mpri mpri mdua ; gdiv = '*' gdiv -1. ; * ************************************** * Conditions aux limites * ************************************** * * * Blocages : mur = _cmt ; muz = _bas 'ET' _dro ; rbas = 'COORDONNEE' 1 _bas ; 'SI' laxi ; alpha = 2. ; 'SINON' ; alpha = 1.5 ; 'FINSI' ; fuz = '/' rbas R1 ; *fuz = rbas ; fuz = '*' fuz fuz ; fuz = '-' fuz 1. ; fuz = '*' fuz ('*' -1. alpha) ; * Vérification du débit cdeb = GMASS2 _bas tdisc 'NPRI' discv 'CPRI' fuz 'NDUA' discv ; deb = 'MAXIMUM' ('RESULT' cdeb) ; csinj = GMASS2 _bas tdisc 'NPRI' 'CSTE' 'FPRI' 1. 'NDUA' 'CSTE' 'FDUA' 1. ; sinj = 'MAXIMUM' ('RESULT' csinj) ; 'MESSAGE' ('CHAINE' 'deb=' deb) ; 'MESSAGE' ('CHAINE' 'sinj=' sinj) ; 'SI' ('NEG' deb sinj ('*' sinj 1.D-6)) ; 'ERREUR' 'Erreur dans le calcul du profil de vitesse entrant' ; 'FINSI' ; tit = 'CHAINE' 'Profil dentree' ; 'SI' graph ; 'TRACER' vcuz bas 'TITR' tit ; 'FINSI' ; * mblor = 'BLOQUE' nv1 mur ; mbloz = 'BLOQUE' nv2 muz ; fbloz = 'DEPIMPOSE' mbloz cuzt ; * mblot = mblor 'ET' mbloz ; fblot = fbloz ; * Conditions aux limites pour la fonction de courant * Matrice masse pour calculer la force non intégrée sur le bord * droit mdro = 'KOPS' 'RIMA' (GMASS2 _dro tdisc 'NPRI' 'QUAF' 'NDUA' 'QUAF') ; * ************************************** * Boucle d'itérations non linéaires * * Méthode incrémentale * ************************************** * * mailv = GMAIL _mt tdisc 'UN' ; sol = sol '+' ('COPIER' cuzt) ; * 'REPETER' it nitermax ; * * Convection (dans la boucle car non-linéaire) * gugr = gugrad2 _mt tdisc 'NPRI' 'UN' 'NDUA' 'UN' 'NCOF' 'CSTE' 'FCOF' Re 'NVIT' 'UN' 'CVIT' sol ; gugr = 'CHANGER' 'INCO' gugr mpri mpri mpri mdua ; * * Assemblage des matrices et second membres * ktot = gugr 'ET' gri 'ET' gdiv 'ET' mblot ; ktg = ('*' (gugr 'ET' gri) ('/' 1. omeg)) 'ET' gdiv 'ET' mblot ; ftot = fblot '-' ('*' ktot sol) ; * ftot = '*' ('*' ktot -1.) sol ; * Résolution sol = '+' sol dsol ; * Solution prep = GLNO _mt tdisc 'PN' pre discv ; * prep = '-' prep ('MINIMUM' prep) ; mdv = 'MAXIMUM' dsol 'ABS' 'AVEC' nomvit ; * * Calcul des quantités pour comparaison avec les références * mifcou = 'MINIMUM' fcou ; mafcou = 'MAXIMUM' fcou ; rei = '*' (mafcou '/' mifcou) -1. ; * Frottement sur dror 'SI' graph ; chtit = 'CHAINE' 'Force de frottement sur _dror' titg ; 'FINSI' ; evf = 'EXTRAIRE' evf 'APRE' ('*' yc 0.5) ; evf = 'EXTRAIRE' evf 'AVAN' ('*' yc 1.5) ; xevf = 'EXTRAIRE' evf 'ABSC' ; * 'DESSIN' evv ; yevf2 xevf2 = 'ORDONNER' 'DECROISSANT' yevf xevf ; 'SI' ('>' ('MAXIMUM' ('-' yevf2 yevf) 'ABS') 0.) ; Lr = -10000. ; 'SINON' ; 'FINSI' ; * 'MESSAGE' ('CHAINE' ' It=' &it ' mdv=' (formar mdv 2) ' rei=' (formar rei 3) ' Lc=' (formar Lc 3) ' Lr=' (formar Lr 3) ) ; 'SI' ('<' mdv mdvquit) ; * * Graphiques * 'SI' graph ; * Vitesse TRVEC cmt vit ('CHAINE' 'Vitesse' titg) ; * Pression * Fonction de courant * TRVEC _mt dvit ('CHAINE' 'Increm. Vitesse') ; ('CHAINE' 'Vitesse' titg) ; ; * Bilan des forces sur le contour et interne * fprec frigc desfc fugrc fbloc = REDUS _cmt fpre frig desf fugr fblo ; * TRVEC cmt fprec 'Bord pr' frigc 'ri' desfc 'des' fugrc 'co' * fbloc 'bl' ; TRVEC cmt fpre 'Bord pr' frig 'ri' desf 'des' fugr 'co' fblo 'bl' ; ('CHANGER' _cmt 'POI1') ; * 'TRACER' ('ET' mint mt) ; fprei frigi desfi fugri fbloi = REDUS mint fpre frig desf fugr fblo ; TRVEC cmt fprei 'Int pr' frigi 'ri' desfi 'des' fugri 'co' fbloi 'bl' ; * TRVEC cmt frigi ' Int ri' desfi 'des' ; 'FINSI' ; 'QUITTER' it ; 'FINSI' ; 'FIN' it ; * 'RESPRO' tres ; 'FINPROC' ; * ****************************************** * * * Les tests * * * ****************************************** lok = VRAI ; * Macagno Hung fexp = 2 Re = 0 Axi ; Lr = 0.27 'SI' complet ; nr = 12 ; errv = 5.D-4 ; 'SINON' ; nr = 7 ; errv = 5.D-2 ; 'FINSI' ; t1 = calcul 2 nr 0. vrai ; Lr = t1 . 'Lr' ; err = errrel Lr 0.266 ; tst = '<' err errv ; 'SI' tst ; 'MESSAGE' 'Test 1 : err = ' err ' ok ' ; 'SINON' ; 'MESSAGE' '!!! Test 1 : err = ' err ' PAS BIEN ! ' ; 'FINSI' ; lok = lok 'ET' tst ; * Scott Mirza fexp = 1.5 Re = 200 Plan 'SI' complet ; nr = 6 ; errv1 = 3.D-2 ; errv2 = 7.D-2 ; errv3 = 2.D-3 ; 'SINON' ; nr = 3 ; errv1 = 4.D-2 ; errv2 = 0.2 ; errv3 = 2.D-2 ; 'FINSI' ; t2 = calcul 1.5 nr 200. faux ; Lr = t2 . 'Lr' ; Lc = t2 . 'Lc' ; rei = t2 . 'rei' ; Lra = t2 . 'Lra' ; Lca = t2 . 'Lca' ; reia = t2 . 'reia' ; err1 = errrel Lr Lra ; tst1 = '<' err1 errv1 ; err2 = errrel Lc Lca ; tst2 = '<' err2 errv2 ; err3 = errrel rei reia ; tst3 = '<' err3 errv3 ; tst = tst1 'ET' tst2 'ET' tst3 ; 'SI' tst ; 'MESSAGE' 'Test 2 : err1 = ' err1 ; 'MESSAGE' ' err2 = ' err2 ; 'MESSAGE' ' err3 = ' err3 ' ok ' ; 'SINON' ; 'MESSAGE' '!!! Test 2 : err1 = ' err1 ; 'MESSAGE' '!!! err2 = ' err2 ; 'MESSAGE' '!!! err3 = ' err3 ' PAS BIEN ! ' ; 'FINSI' ; lok = lok 'ET' tst ; * Oliveira fexp = 3. Re = 50 Axis ; Lr = 5.33 'SI' complet ; nr = 6 ; errv1 = 6.D-2 ; errv2 = 5.D-2 ; errv3 = 2.D-2 ; 'SINON' ; nr = 3 ; errv1 = 1.D-3 ; errv2 = 5.D-2 ; errv3 = 3.D-2 ; 'FINSI' ; t3 = calcul 3. nr 50. vrai ; Lr = t3 . 'Lr' ; Lc = t3 . 'Lc' ; rei = t3 . 'rei' ; Lra = 5.33 ; Lca = t3 . 'Lca' ; reia = t3 . 'reia' ; err1 = errrel Lr Lra ; tst1 = '<' err1 errv1 ; err2 = errrel Lc Lca ; tst2 = '<' err2 errv2 ; err3 = errrel rei reia ; tst3 = '<' err3 errv3 ; tst = tst1 'ET' tst2 'ET' tst3 ; 'SI' tst ; 'MESSAGE' 'Test 3 : err1 = ' err1 ; 'MESSAGE' ' err2 = ' err2 ; 'MESSAGE' ' err3 = ' err3 ' ok ' ; 'SINON' ; 'MESSAGE' '!!! Test 3 : err1 = ' err1 ; 'MESSAGE' '!!! err2 = ' err2 ; 'MESSAGE' '!!! err3 = ' err3 ' PAS BIEN ! ' ; 'FINSI' ; lok = lok 'ET' tst ; * * Fin du jeu de donnees * 'SAUTER' 2 'LIGNE' ; 'SI' lok ; 'MESSAGE' 'Tout sest bien passe' ; 'SINON' ; 'MESSAGE' 'Il y a eu des erreurs' ; 'FINSI' ; 'SAUTER' 2 'LIGNE' ; 'SI' interact ; 'OPTION' 'DONN' 5 'ECHO' 1 ; 'FINSI' ; 'SI' ('NON' lok) ; 'ERREUR' 5 ; 'FINSI' ; * * End of dgibi file SUDDEN_EXPANSION * 'FIN' ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales