* fichier : test_kops_cmct.dgibi
************************************************************************
* NOM : TEST_KOPS_CMCT
* DESCRIPTION : On vérifie que KOPS CMCT donne des résultats corrects
*
*
*
* LANGAGE : GIBIANE-CAST3M
* AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
* mél : gounand@semt2.smts.cea.fr
**********************************************************************
* VERSION : v1, 15/04/2005, version initiale
* HISTORIQUE : v1, 15/04/2005, 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 !
************************************************************************
*
interact = FAUX ;
graph=FAUX;
*
*BEGINPROCEDUR glapn
************************************************************************
* NOM : GLAPN
* DESCRIPTION : Un laplacien scalaire
*
*
*
* 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' GLAPN ;
'ARGUMENT' _mt*'MAILLAGE' ;
'ARGUMENT' gdisc*'MOT ' ;
'ARGUMENT' nomt*'MOT ' ;
'ARGUMENT' disct*'MOT ' ;
'ARGUMENT' nomq*'MOT ' ;
'ARGUMENT' discq*'MOT ' ;
'ARGUMENT' coef/'FLOTTANT' ;
'SI' ('NON' ('EXISTE' coef)) ;
'ARGUMENT' coef2/'CHPOINT ' ;
'SI' ('NON' ('EXISTE' coef2)) ;
'ERREUR' 'Il faut donner un coef FLOTTANT ou CHPOINT' ;
'SINON' ;
coef = coef2 ;
'ARGUMENT' discc*'MOT ' ;
'FINSI' ;
'SINON' ;
discc = 'CSTE' ;
'FINSI' ;
'ARGUMENT' methgau/'MOT ' ;
'SI' ('NON' ('EXISTE' methgau)) ;
methgau = 'GAU7' ;
'FINSI' ;
'ARGUMENT' chpop/'CHPOINT' ;
'ARGUMENT' chpod/'CHPOINT' ;
*
vdim = 'VALEUR' 'DIME' ;
vmod = 'VALEUR' 'MODE' ;
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' ;
* Test bête...
'SI' ('EGA' ('TYPE' coef) 'CHPOINT ') ;
mincoef = 'MINIMUM' coef ;
'SINON' ;
mincoef = coef ;
'FINSI' ;
'SI' ('<' mincoef 0.D0) ;
'ERREUR' 'Le coef (une viscosité) doit etre positive' ;
'FINSI' ;
*
'SI' iaxi ;
lcoef = 'MOTS' 'NURR' 'NUZZ' ;
'SINON' ;
'SI' ('EGA' idim 2) ;
lcoef = 'MOTS' 'NUXX' 'NUYY' ;
'SINON' ;
lcoef = 'MOTS' 'NUXX' 'NUYY' 'NUZZ' ;
'FINSI' ;
'FINSI' ;
*
ltens = FAUX ;
'SI' ('EGA' ('TYPE' coef) 'CHPOINT') ;
ncomp = 'DIME' ('EXTRAIRE' coef 'COMP') ;
'SI' ('EGA' ncomp idim) ;
ltens = VRAI ;
'FINSI' ;
'FINSI' ;
*
tcoef = 'TABLE' ;
'SI' ltens ;
'REPETER' iidim idim ;
tcoef . &iidim = 'EXCO' ('EXTRAIRE' lcoef &iidim) coef ;
'FIN' iidim ;
'SINON' ;
'REPETER' iidim idim ;
tcoef . &iidim = coef ;
'FIN' iidim ;
'FINSI' ;
*
numop = idim ;
numder = idim ;
mmt = 'MOTS' nomt ;
mmq = 'MOTS' nomq ;
numvar = 1 ;
numdat = idim ;
numcof = idim ;
*
A = ININLIN numop numvar numdat numcof numder ;
A . 'VAR' . 1 . 'NOMDDL' = mmt ;
A . 'VAR' . 1 . 'DISC' = disct ;
'SI' ('EXISTE' chpop) ;
A . 'VAR' . 1 . 'VALEUR' = chpop ;
'FINSI' ;
'REPETER' iidim idim ;
A . 'DAT' . &iidim . 'NOMDDL' = 'MOTS' 'SCAL' ;
A . 'DAT' . &iidim . 'DISC' = discc ;
A . 'DAT' . &iidim . 'VALEUR' = tcoef . &iidim ;
A . 'COF' . &iidim . 'COMPOR' = 'IDEN' ;
A . 'COF' . &iidim . 'LDAT' = 'LECT' &iidim ;
'FIN' iidim ;
*
'REPETER' iidim idim ;
A . &iidim . 1 . &iidim = 'LECT' &iidim ;
'FIN' iidim ;
*
'SI' iaxi ;
numdat = 1 ;
numcof = 1 ;
'SINON' ;
numdat = 0 ;
numcof = 0 ;
'FINSI' ;
*
B = ININLIN numop numvar numdat numcof numder ;
B . 'VAR' . 1 . 'NOMDDL' = mmq ;
B . 'VAR' . 1 . 'DISC' = discq ;
'SI' ('EXISTE' chpod) ;
B . 'VAR' . 1 . 'VALEUR' = chpod ;
'FINSI' ;
'SI' iaxi ;
B . 'DAT' . 1 . 'NOMDDL' = 'MOTS' 'SCAL' ;
B . 'DAT' . 1 . 'DISC' = gdisc ;
B . 'DAT' . 1 . 'VALEUR' = dprmt ;
B . 'COF' . 1 . 'COMPOR' = 'IDEN' ;
B . 'COF' . 1 . 'LDAT' = 'LECT' 1 ;
'FINSI' ;
*
'REPETER' iidim idim ;
'SI' iaxi ;
B . &iidim . 1 . &iidim = 'LECT' 1 ;
'SINON' ;
B . &iidim . 1 . &iidim = 'LECT' ;
'FINSI' ;
'FIN' iidim ;
*
mglapn = 'NLIN' gdisc _mt A B methgau ;
* Integration par parties
mglapn = '*' mglapn -1.D0 ;
*
'RESPRO' mglapn ;
'FINPROC' ;
*
* End of procedure file GLAPN
*
*ENDPROCEDUR glapn
*BEGINPROCEDUR gdiv
************************************************************************
* NOM : GDIV
* DESCRIPTION :
*
*
*
* LANGAGE : GIBIANE-CAST3M
* AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
* mél : gounand@semt2.smts.cea.fr
**********************************************************************
* VERSION : v1, 08/03/2006, version initiale
* HISTORIQUE : v1, 08/03/2006, 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' GDIV ;
'ARGUMENT' _mt*'MAILLAGE' ;
'ARGUMENT' gdisc*'MOT ' ;
'ARGUMENT' discv*'MOT ' ;
'ARGUMENT' discp*'MOT ' ;
'ARGUMENT' coef/'FLOTTANT' ;
'SI' ('NON' ('EXISTE' coef)) ;
'ARGUMENT' coef2/'CHPOINT ' ;
'SI' ('NON' ('EXISTE' coef2)) ;
'ERREUR' 'Il faut donner un coef FLOTTANT ou CHPOINT' ;
'SINON' ;
coef = coef2 ;
'ARGUMENT' discc*'MOT ' ;
'FINSI' ;
'SINON' ;
discc = 'CSTE' ;
'FINSI' ;
'ARGUMENT' methgau/'MOT ' ;
'SI' ('NON' ('EXISTE' methgau)) ;
methgau = 'GAU7' ;
'FINSI' ;
*
vdim = 'VALEUR' 'DIME' ;
vmod = 'VALEUR' 'MODE' ;
idim = 0 ;
lpp = 'MOTS' 'LX' ; ldp = 'MOTS' 'FLX' ;
'SI' ('ET' ('EGA' vdim 2) ('EGA' vmod 'PLANDEFO')) ;
lpv = 'MOTS' 'UX' 'UY' ; ldv = 'MOTS' 'FX' 'FY' ;
idim = 2 ;
iaxi = FAUX ;
'FINSI' ;
'SI' ('ET' ('EGA' vdim 2) ('EGA' vmod 'AXIS')) ;
lpv = 'MOTS' 'UR' 'UZ' ; ldv = 'MOTS' 'FR' 'FZ' ;
idim = 2 ;
iaxi = VRAI ;
'FINSI' ;
'SI' ('ET' ('EGA' vdim 3) ('EGA' vmod 'TRID')) ;
lpv = 'MOTS' 'UX' 'UY' 'UZ' ; ldv = 'MOTS' 'FX' 'FY' 'FZ' ;
idim = 3 ;
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 ;
'FINSI' ;
*
numop = 1 ;
numder = idim ;
mmp = 'MOTS' nomp ;
numvar = idim ;
'SI' iaxi ;
numdat = 3 ;
numcof = 3 ;
'SINON' ;
numdat = 1 ;
numcof = 1 ;
'FINSI' ;
*
A = ININLIN numop numvar numdat numcof numder ;
'REPETER' iidim idim ;
A . 'VAR' . &iidim . 'NOMDDL' = 'MOTS' ('EXTRAIRE' lpv &iidim) ;
A . 'VAR' . &iidim . 'DISC' = discv ;
'FIN' iidim ;
A . 'DAT' . 1 . 'NOMDDL' = 'MOTS' 'SCAL' ;
A . 'DAT' . 1 . 'DISC' = discc ;
A . 'DAT' . 1 . 'VALEUR' = coef ;
A . 'COF' . 1 . 'COMPOR' = 'IDEN' ;
A . 'COF' . 1 . 'LDAT' = 'LECT' 1 ;
'SI' iaxi ;
A . 'DAT' . 2 . 'NOMDDL' = 'MOTS' 'SCAL' ;
A . 'DAT' . 2 . 'DISC' = 'CSTE' ;
A . 'DAT' . 2 . 'VALEUR' = dp ;
A . 'COF' . 2 . 'COMPOR' = 'IDEN' ;
A . 'COF' . 2 . 'LDAT' = 'LECT' 2 ;
A . 'DAT' . 3 . 'NOMDDL' = 'MOTS' 'SCAL' ;
A . 'DAT' . 3 . 'DISC' = gdisc ;
A . 'DAT' . 3 . 'VALEUR' = rmt ;
A . 'COF' . 3 . 'COMPOR' = 'IDEN' ;
A . 'COF' . 3 . 'LDAT' = 'LECT' 3 ;
'FINSI' ;
*
'SI' iaxi ;
'REPETER' iidim idim ;
A . 1 . &iidim . &iidim = 'LECT' 1 2 3 ;
'FIN' iidim ;
A . 1 . 1 . 0 = 'LECT' 1 2 ;
'SINON' ;
'REPETER' iidim idim ;
A . 1 . &iidim . &iidim = 'LECT' 1 ;
'FIN' iidim ;
'FINSI' ;
*
numvar = 1 ;
numdat = 0 ;
numcof = 0 ;
B = ININLIN numop numvar numdat numcof numder ;
B . 'VAR' . 1 . 'NOMDDL' = ldp ;
B . 'VAR' . 1 . 'DISC' = discp ;
B . 1 . 1 . 0 = 'LECT' ;
*
mgdiv = 'NLIN' gdisc _mt A B methgau ;
*
'RESPRO' mgdiv ;
'FINPROC' ;
*
* End of procedure file GDIV
*
*ENDPROCEDUR gdiv
*BEGINPROCEDUR gmass
************************************************************************
* NOM : GMASS
* 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' GMASS ;
'ARGUMENT' _mt*'MAILLAGE' ;
'ARGUMENT' gdisc*'MOT ' ;
'ARGUMENT' nomt*'MOT ' ;
'ARGUMENT' disct*'MOT ' ;
'ARGUMENT' nomq*'MOT ' ;
'ARGUMENT' discq*'MOT ' ;
'ARGUMENT' coef/'FLOTTANT' ;
'SI' ('NON' ('EXISTE' coef)) ;
'ARGUMENT' coef2/'CHPOINT ' ;
'SI' ('NON' ('EXISTE' coef2)) ;
'ERREUR' 'Il faut donner un coef FLOTTANT ou CHPOINT' ;
'SINON' ;
coef = coef2 ;
'ARGUMENT' discc*'MOT ' ;
'FINSI' ;
'SINON' ;
discc = 'CSTE' ;
'FINSI' ;
'ARGUMENT' methgau/'MOT ' ;
'SI' ('NON' ('EXISTE' methgau)) ;
methgau = 'GAU7' ;
'FINSI' ;
'ARGUMENT' chpop/'CHPOINT' ;
'ARGUMENT' chpod/'CHPOINT' ;
*
vdim = 'VALEUR' 'DIME' ;
vmod = 'VALEUR' 'MODE' ;
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' ;
numop = 1 ;
numder = idim ;
mmt = 'MOTS' nomt ;
mmq = 'MOTS' nomq ;
numvar = 1 ;
numdat = 1 ;
numcof = 1 ;
*
A = ININLIN numop numvar numdat numcof numder ;
A . 'VAR' . 1 . 'NOMDDL' = mmt ;
A . 'VAR' . 1 . 'DISC' = disct ;
'SI' ('EXISTE' chpop) ;
A . 'VAR' . 1 . 'VALEUR' = chpop ;
'FINSI' ;
A . 'DAT' . 1 . 'NOMDDL' = 'MOTS' 'SCAL' ;
A . 'DAT' . 1 . 'DISC' = discc ;
A . 'DAT' . 1 . 'VALEUR' = coef ;
A . 'COF' . 1 . 'COMPOR' = 'IDEN' ;
A . 'COF' . 1 . 'LDAT' = 'LECT' 1 ;
*
A . 1 . 1 . 0 = 'LECT' 1 ;
*
'SI' iaxi ;
numdat = 1 ;
numcof = 1 ;
'SINON' ;
numdat = 0 ;
numcof = 0 ;
'FINSI' ;
B = ININLIN numop numvar numdat numcof numder ;
B . 'VAR' . 1 . 'NOMDDL' = mmq ;
B . 'VAR' . 1 . 'DISC' = discq ;
'SI' ('EXISTE' chpod) ;
B . 'VAR' . 1 . 'VALEUR' = chpod ;
'FINSI' ;
*
'SI' iaxi ;
B . 'DAT' . 1 . 'NOMDDL' = 'MOTS' 'SCAL' ;
B . 'DAT' . 1 . 'DISC' = gdisc ;
B . 'DAT' . 1 . 'VALEUR' = dprmt ;
B . 'COF' . 1 . 'COMPOR' = 'IDEN' ;
B . 'COF' . 1 . 'LDAT' = 'LECT' 1 ;
'FINSI' ;
'SI' iaxi ;
B . 1 . 1 . 0 = 'LECT' 1 ;
'SINON' ;
B . 1 . 1 . 0 = 'LECT' ;
'FINSI' ;
*
mgmass = 'NLIN' gdisc _mt A B methgau ;
*
'RESPRO' mgmass ;
'FINPROC' ;
*
* End of procedure file GMASS
*
*ENDPROCEDUR gmass
*
'DEBPROC' FOIS ;
'ARGUMENT' matk*'MATRIK' ;
'ARGUMENT' ch*'CHPOINT' ;
'RESPRO' ('KOPS' matk '*' ch) ;
'FINPROC' ;
*
*
'OPTION' 'DIME' 2 'ELEM' QUA8 ;
*
* Maillage quelconque
*
pA = 0. 0. ; pB = 1. 0. ; pC = 1. 1. ; pD = 0. 1. ;
l1 = pA 'DROIT' 2 pB ;
l2 = pB 'DROIT' 4 pC ;
l3 = pC 'DROIT' 3 pD ;
l4 = pD 'DROIT' 5 pA ;
mt = 'SURFACE' (l1 'ET' l2 'ET' l3 'ET' l4) ;
_mt = 'CHANGER' mt 'QUAF' ;
$mt = 'MODELISER' _mt 'NAVIER_STOKES' 'QUAF' ;
*
* Construction d'un matrice (ici de laplacien + blocage)
*
rv = 'EQEX' 'OPTI' 'EF' 'IMPL'
'ZONE' $mt 'OPER' 'LAPN' 1. 'INCO' 'T' ;
rv . 'INCO' = 'TABLE' 'INCO' ;
rv . 'INCO' . 'T' = 'KCHT' $mt 'SCAL' 'SOMMET' 0.D0 ;
dummy mlapn = 'LAPN' (rv . '1LAPN') ;
*mat1 = GLAPN _mt 'LINE' 'T' 'QUAF' 'Q' 'QUAF' 1.D0 ;
mablo = 'BLOQUE' 'T' l4 ;
mmt = 'MOTS' 'T' ;
mmq = 'MOTS' 'Q' ;
matot = 'ET' ('KOPS' 'CHANINCO' mlapn mmt mmt mmt mmq)
('KOPS' 'RIMA' mablo) ;
chdia = '+' ('MANUEL' 'CHPO' l4 1 'LX' ('/' 1.D0 3.14D0))
('MANUEL' 'CHPO' mt 1 'T' ('/' 1.D0 1.707D0)) ;
mcmct = 'KOPS' 'CMCT' matot matot chdia ;
*
* Vérification
*
chtes = '+' ('MANUEL' 'CHPO' l4 1 'FLX' 3.14D0)
('MANUEL' 'CHPO' mt 1 'Q' 1.707D0) ;
ch1 = FOIS mcmct chtes ;
*
*
matott = 'KOPS' 'TRANSPOS' matot ;
mo = 'MOTS' 'LX' 'T' ;
ch2 = FOIS matot ('*' chdia (FOIS matott chtes) mo mo mo ) ;
*
test1 = 'MAXIMUM' ('-' ch2 ch1) 'ABS' ;
*
* Un deuxième test
*
nm = 4 ;
p1 = 0. 0. ; p2 = 1. 0. ; p3 = 1. 1. ; p4 = 0. 1. ;
bas = 'DROIT' nm p1 p2 ; dro = 'DROIT' nm p2 p3 ;
hau = 'DROIT' nm p3 p4 ; gau = 'DROIT' nm p4 p1 ;
cmt = bas 'ET' dro 'ET' hau 'ET' gau ;
mt = 'SURFACE' cmt ;
_mt = 'CHANGER' 'QUAF' mt ;
discv = 'QUAF' ;
discp = 'LINE' ;
discg = 'LINE' ;
mvp = 'MOTS' 'UX' 'UY' ;
mvd = 'MOTS' 'FX' 'FY' ;
mpp = 'MOTS' 'LX' ;
mpd = 'MOTS' 'FLX' ;
mlx = 'MOTS' 'LXX' 'LXY' ;
mflx = 'MOTS' 'FLXX' 'FLXY' ;
mlp = mvp 'ET' mpp 'ET' mlx ;
mld = mvd 'ET' mpd 'ET' mflx ;
* Matrice de rigidite
rigx = GLAPN _mt discg 'UX' discv 'FX' discv 1. ;
rigy = GLAPN _mt discg 'UY' discv 'FY' discv 1. ;
rig = 'ET' rigx rigy ;
rig = '*' rig -1.D0 ;
krig = 'KOPS' 'RIMA' rig ;
* Matrice de divergence
div = GDIV _mt discg discv discp 1. ;
kdiv = 'KOPS' 'RIMA' div ;
* Gradient
kgra2 = 'KOPS' 'TRANSPOS' kdiv ;
kgra = 'KOPS' 'CHANINCO' kgra2 mpd mpp mvp mvd ;
* Conditions aux limites
mvit = gau 'ET' bas 'ET' dro ;
cvit = 'MANUEL' 'CHPO' mvit mvp ('PROG' 0. 0.) ;
mid = 'KOPS' 'MATIDE' mvp mvit 'MATRIK' ;
mblo = 'KOPS' 'CHANINCO' mid mvp mvp mvp mflx ;
mblot = 'KOPS' 'CHANINCO' mid mvp mlx mvp mvd ;
cblo = 'NOMC' mvp mflx cvit ;
* Lagrangien augmenté
alpha = 1.D0 ;
chd = 'MANUEL' 'CHPO' mvit mlx ('PROG' 1.D0 1.D0) ;
* mlaga1 = 'KOPS' 'CMCT' mblot chd mblot ;
mlaga = 'KOPS' 'CMCT' mblot mblot ;
* 'OPTION' 'DONN' 5 ;
mlaga = 'KOPS' 'CHANINCO' mlaga mvd mvp mvd mvd ;
mlaga = 'KOPS' mlaga '*' alpha ;
claga = 'NOMC' mflx mlx cblo ;
claga = 'KOPS' mblot '*' claga ;
claga = claga '*' alpha ;
* Contrainte en surface
fs = 'MANUEL' 'CHPO' hau 1 'UX' 1.D0 ;
fsu = GMASS hau discg 'UX' discv 'FX' discv 1. fs ;
*
* Résolution directe
*
mtot = krig 'ET' kdiv 'ET' kgra 'ET' mblo 'ET' mblot 'ET' mlaga ;
ftot = fsu '+' cblo '+' claga ;
clim = cvit ;
mtot = 'KOPS' 'CHANINCO' mtot mlp mlp mld mlp ;
ftot = 'NOMC' mld mlp ftot ;
*sol1 = 'KRES' mtot ftot 'CLIM' clim ;
sol1 = 'KRES' mtot ftot ;
vitdi = 'EXCO' mvp sol1 ;
predi = 'EXCO' mpp sol1 ;
lxdi = 'EXCO' mlx sol1 ;
*
echvit = '/' 3.1 nm ;
*
'SI' graph ;
vvit1 = 'VECTEUR' sol1 echvit 'DEPL' 'JAUN' ;
'TRACER' vvit1 mt 'TITR' 'vit1' ;
'FINSI' ;
*
chd = 'MANUEL' 'CHPO' _mt mvp ('PROG' 1.D0 1.D0) ;
mcontr = mblo 'ET' kdiv ;
mcontrt = mblot 'ET' kgra ;
mcp = mpp 'ET' mlx ;
mcd = mpd 'ET' mflx ;
mlapd1 = 'KOPS' 'CMCT' mcontr chd mcontr ;
mlapd2 = 'KOPS' 'CMCT' mcontr mcontr ;
* Verif
vec = predi '+' lxdi ;
vec2 = 'NOMC' mcp mcd vec ;
res1 = 'KOPS' mlapd1 '*' vec2 ;
res2 = 'KOPS' mlapd2 '*' vec2 ;
res3 = vec ;
res3 = 'KOPS' mcontrt '*' res3 ;
res3 = 'NOMC' mvd res3 mvp ;
res3 = 'KOPS' mcontr '*' res3 ;
test2 = 'MAXIMUM' ('-' res3 res1) 'ABS' ;
test3 = 'MAXIMUM' ('-' res3 res2) 'ABS' ;
'MESSAGE' ('CHAINE' 'test1 = ' test1) ;
'MESSAGE' ('CHAINE' 'test2 = ' test2) ;
'MESSAGE' ('CHAINE' 'test3 = ' test3) ;
ok1 = ('<' test1 1.D-12) ;
ok2 = ('<' test2 1.D-12) ;
ok3 = ('<' test3 1.D-12) ;
*
'SI' interact ;
'OPTION' 'DONN' 5 ;
'FINSI' ;
'SI' ('NON' (ok1 'ET' ok2 'ET' ok3)) ;
'ERREUR' 5 ;
'SINON' ;
'MESSAGE' 'Tout sest bien passe' ;
'FINSI' ;
*
* End of dgibi file TEST_KOPS_CMCT
*
'FIN' ;
© Cast3M 2003 - All rights reserved.
Disclaimer