* fichier : dcov2.dgibi
'OPTI' 'DIME' 2 'ELEM' 'QUA4' ;
*
DX = 2.D0 ;
NX = 1 ;
NY = 1 ;
*
PBG = 0.D0 0.D0 ;
PBD = DX 0.D0 ;
PHG = 0.D0 DX ;
PHD = DX DX ;
*
LB = PBG 'DROI' NX PBD ;
LH = PHG 'DROI' NX PHD ;
*
CARRE = LB 'REGLER' NY LH ;
CARREP = 'CHAN' CARRE POI1 ;
*
ZSIG = 0.5D0 ;
ZL1 = 3.D0 ;
ZL2 = 12.D0 ;
ANGL = 30.D0 ;
*
NN = 'NBNO' CARRE ;
NN1 = ('NBNO' CARRE) - 1 ;
NN2 = ('NBNO' CARRE) - 2 ;
*
PHI = TABLE ;
PHI.1 = 'PROG' 1.D0 NN1*0.D0 ;
I = 1 ;
'REPE' BLOC NN2 ;
PHI.(I + 1) = 'PROG' I*0.D0 1.D0 (NN1 - I)*0.D0 ;
I = I + 1 ;
'FIN' BLOC ;
PHI.NN = 'PROG' NN1*0.D0 1.D0 ;
*
PSI = TABLE ;
I = 1 ;
'REPE' BLOC NN ;
PSI.I = 'MANU' 'CHPO' CARRE 1 'SCAL' PHI.I ;
I = I + 1 ;
'FIN' BLOC ;
*
*
*
MMEIC = 'DCOV' CARRE 'EXPO' 'SIGMA' ZSIG 'LAMBDA' ZL1 ;
*
YYEICT = TABLE ;
I = 1 ;
'REPE' BLOC NN ;
YYEICT.I = MMEIC * (PSI.I) ;
I = I + 1 ;
'FIN' BLOC ;
*
YYEIC = TABLE ;
I = 1 ;
'REPE' BLOCI NN ;
YYEICI = 'MAXI' ('REDU' YYEICT.1 ('POIN' CARREP I)) ;
YYEIC.I = 'MANU' 'CHPO' ('POIN' CARREP 1) 1 'SCAL' ('PROG' YYEICI)
'NATURE' 'DISCRET' ;
J = 2 ;
'REPE' BLOCJ NN1 ;
YYEICI = 'MAXI' ('REDU' YYEICT.J ('POIN' CARREP I)) ;
YYEICI = 'MANU' 'CHPO' ('POIN' CARREP J) 1 'SCAL' ('PROG' YYEICI)
'NATURE' 'DISCRET' ;
YYEIC.I = YYEIC.I 'ET' YYEICI ;
J = J + 1 ;
'FIN' BLOCJ ;
I = I + 1 ;
'FIN' BLOCI ;
*
CCEIC = TABLE ;
I = 1 ;
'REPE' BLOCI NN ;
CCEIC.I = TABLE ;
J = 1 ;
'REPE' BLOCJ NN ;
CCEIC.I.J = 'MAXI' ('RESU' (YYEIC.I * YYEIC.J)) ;
J = J + 1 ;
'FIN' BLOCJ ;
I = I + 1 ;
'FIN' BLOCI ;
*
CCEIT = TABLE ;
I = 1 ;
'REPE' BLOCI NN ;
CCEIT.I = TABLE ;
XXI = 'COOR' 1 ('POIN' CARREP I) ;
YYI = 'COOR' 2 ('POIN' CARREP I) ;
J = 1 ;
'REPE' BLOCJ NN ;
XXJ = 'COOR' 1 ('POIN' CARREP J) ;
YYJ = 'COOR' 2 ('POIN' CARREP J) ;
DXIJ = XXI - XXJ ;
DYIJ = YYI - YYJ ;
RRIJ = ((DXIJ*DXIJ) + (DYIJ * DYIJ)) ** 0.5D0 ;
CCEIT.I.J = ZSIG * ZSIG * ('EXP' (-1.D0 * RRIJ / ZL1)) ;
J = J + 1 ;
'FIN' BLOCJ ;
I = I + 1 ;
'FIN' BLOCI ;
*
I = 1 ;
'REPE' BLOCI NN ;
J = 1 ;
'REPE' BLOCJ NN ;
ECART = 'ABS' ((CCEIC.I.J - CCEIT.I.J) / CCEIT.I.J) ;
'SI' (ECART > 1.D-12) ;
'ERRE' 5 ;
'FINSI' ;
J = J + 1 ;
'FIN' BLOCJ ;
I = I + 1 ;
'FIN' BLOCI ;
*
MMEAC = 'DCOV' CARRE 'EXPO' 'SIGMA' ZSIG 'LAMBDA1' ZL1 'LAMBDA2' ZL2 ;
*
YYEACT = TABLE ;
I = 1 ;
'REPE' BLOC NN ;
YYEACT.I = MMEAC * (PSI.I) ;
I = I + 1 ;
'FIN' BLOC ;
*
YYEAC = TABLE ;
I = 1 ;
'REPE' BLOCI NN ;
YYEACI = 'MAXI' ('REDU' YYEACT.1 ('POIN' CARREP I)) ;
YYEAC.I = 'MANU' 'CHPO' ('POIN' CARREP 1) 1 'SCAL' ('PROG' YYEACI)
'NATURE' 'DISCRET' ;
J = 2 ;
'REPE' BLOCJ NN1 ;
YYEACI = 'MAXI' ('REDU' YYEACT.J ('POIN' CARREP I)) ;
YYEACI = 'MANU' 'CHPO' ('POIN' CARREP J) 1 'SCAL' ('PROG' YYEACI)
'NATURE' 'DISCRET' ;
YYEAC.I = YYEAC.I 'ET' YYEACI ;
J = J + 1 ;
'FIN' BLOCJ ;
I = I + 1 ;
'FIN' BLOCI ;
*
CCEAC = TABLE ;
I = 1 ;
'REPE' BLOCI NN ;
CCEAC.I = TABLE ;
J = 1 ;
'REPE' BLOCJ NN ;
CCEAC.I.J = 'MAXI' ('RESU' (YYEAC.I * YYEAC.J)) ;
J = J + 1 ;
'FIN' BLOCJ ;
I = I + 1 ;
'FIN' BLOCI ;
*
CCEAT = TABLE ;
I = 1 ;
'REPE' BLOCI NN ;
CCEAT.I = TABLE ;
XXI = 'COOR' 1 ('POIN' CARREP I) ;
YYI = 'COOR' 2 ('POIN' CARREP I) ;
J = 1 ;
'REPE' BLOCJ NN ;
XXJ = 'COOR' 1 ('POIN' CARREP J) ;
YYJ = 'COOR' 2 ('POIN' CARREP J) ;
DXIJ2 = ((XXI - XXJ) / ZL1) ** 2 ;
DYIJ2 = ((YYI - YYJ) / ZL2) ** 2 ;
RRIJ = (DXIJ2 + DYIJ2) ** 0.5D0 ;
CCEAT.I.J = ZSIG * ZSIG * ('EXP' (-1.D0 * RRIJ )) ;
J = J + 1 ;
'FIN' BLOCJ ;
I = I + 1 ;
'FIN' BLOCI ;
*
I = 1 ;
'REPE' BLOCI NN ;
J = 1 ;
'REPE' BLOCJ NN ;
ECART = 'ABS' ((CCEAC.I.J - CCEAT.I.J) / CCEAT.I.J) ;
'SI' (ECART > 1.D-12) ;
'ERRE' 5 ;
'FINSI' ;
J = J + 1 ;
'FIN' BLOCJ ;
I = I + 1 ;
'FIN' BLOCI ;
*
MMEDC = 'DCOV' CARRE 'EXPO' 'SIGMA' ZSIG 'LAMBDA1' ZL1 'LAMBDA2' ZL2
'DIRECTION' (('COS' ANGL) ('SIN' ANGL)) ;
*
YYEDCT = TABLE ;
I = 1 ;
'REPE' BLOC NN ;
YYEDCT.I = MMEDC * (PSI.I) ;
I = I + 1 ;
'FIN' BLOC ;
*
YYEDC = TABLE ;
I = 1 ;
'REPE' BLOCI NN ;
YYEDCI = 'MAXI' ('REDU' YYEDCT.1 ('POIN' CARREP I)) ;
YYEDC.I = 'MANU' 'CHPO' ('POIN' CARREP 1) 1 'SCAL' ('PROG' YYEDCI)
'NATURE' 'DISCRET' ;
J = 2 ;
'REPE' BLOCJ NN1 ;
YYEDCI = 'MAXI' ('REDU' YYEDCT.J ('POIN' CARREP I)) ;
YYEDCI = 'MANU' 'CHPO' ('POIN' CARREP J) 1 'SCAL' ('PROG' YYEDCI)
'NATURE' 'DISCRET' ;
YYEDC.I = YYEDC.I 'ET' YYEDCI ;
J = J + 1 ;
'FIN' BLOCJ ;
I = I + 1 ;
'FIN' BLOCI ;
*
CCEDC = TABLE ;
I = 1 ;
'REPE' BLOCI NN ;
CCEDC.I = TABLE ;
J = 1 ;
'REPE' BLOCJ NN ;
CCEDC.I.J = 'MAXI' ('RESU' (YYEDC.I * YYEDC.J)) ;
J = J + 1 ;
'FIN' BLOCJ ;
I = I + 1 ;
'FIN' BLOCI ;
*
CCEDT = TABLE ;
I = 1 ;
'REPE' BLOCI NN ;
CCEDT.I = TABLE ;
XXI = 'COOR' 1 ('POIN' CARREP I) ;
YYI = 'COOR' 2 ('POIN' CARREP I) ;
J = 1 ;
'REPE' BLOCJ NN ;
XXJ = 'COOR' 1 ('POIN' CARREP J) ;
YYJ = 'COOR' 2 ('POIN' CARREP J) ;
DXIJ2 =
((((XXI - XXJ) * ('COS' ANGL)) + ((YYI - YYJ) * ('SIN' ANGL)))
/ ZL1) ** 2 ;
DYIJ2 =
((((XXI - XXJ) * ('SIN' ANGL)) - ((YYI - YYJ) * ('COS' ANGL)))
/ ZL2) ** 2 ;
RRIJ = (DXIJ2 + DYIJ2) ** 0.5D0 ;
CCEDT.I.J = ZSIG * ZSIG * ('EXP' (-1.D0 * RRIJ )) ;
J = J + 1 ;
'FIN' BLOCJ ;
I = I + 1 ;
'FIN' BLOCI ;
*
I = 1 ;
'REPE' BLOCI NN ;
J = 1 ;
'REPE' BLOCJ NN ;
ECART = 'ABS' ((CCEDC.I.J - CCEDT.I.J) / CCEDT.I.J) ;
'SI' (ECART > 1.D-12) ;
'ERRE' 5 ;
'FINSI' ;
J = J + 1 ;
'FIN' BLOCJ ;
I = I + 1 ;
'FIN' BLOCI ;
*
*
MMGIC = 'DCOV' CARRE 'GAUS' 'SIGMA' ZSIG 'LAMBDA' ZL1 ;
*
YYGICT = TABLE ;
I = 1 ;
'REPE' BLOC NN ;
YYGICT.I = MMGIC * (PSI.I) ;
I = I + 1 ;
'FIN' BLOC ;
*
YYGIC = TABLE ;
I = 1 ;
'REPE' BLOCI NN ;
YYGICI = 'MAXI' ('REDU' YYGICT.1 ('POIN' CARREP I)) ;
YYGIC.I = 'MANU' 'CHPO' ('POIN' CARREP 1) 1 'SCAL' ('PROG' YYGICI)
'NATURE' 'DISCRET' ;
J = 2 ;
'REPE' BLOCJ NN1 ;
YYGICI = 'MAXI' ('REDU' YYGICT.J ('POIN' CARREP I)) ;
YYGICI = 'MANU' 'CHPO' ('POIN' CARREP J) 1 'SCAL' ('PROG' YYGICI)
'NATURE' 'DISCRET' ;
YYGIC.I = YYGIC.I 'ET' YYGICI ;
J = J + 1 ;
'FIN' BLOCJ ;
I = I + 1 ;
'FIN' BLOCI ;
*
CCGIC = TABLE ;
I = 1 ;
'REPE' BLOCI NN ;
CCGIC.I = TABLE ;
J = 1 ;
'REPE' BLOCJ NN ;
CCGIC.I.J = 'MAXI' ('RESU' (YYGIC.I * YYGIC.J)) ;
J = J + 1 ;
'FIN' BLOCJ ;
I = I + 1 ;
'FIN' BLOCI ;
*
CCGIT = TABLE ;
I = 1 ;
'REPE' BLOCI NN ;
CCGIT.I = TABLE ;
XXI = 'COOR' 1 ('POIN' CARREP I) ;
YYI = 'COOR' 2 ('POIN' CARREP I) ;
J = 1 ;
'REPE' BLOCJ NN ;
XXJ = 'COOR' 1 ('POIN' CARREP J) ;
YYJ = 'COOR' 2 ('POIN' CARREP J) ;
DXIJ = XXI - XXJ ;
DYIJ = YYI - YYJ ;
RRIJ = (DXIJ*DXIJ) + (DYIJ * DYIJ) ;
CCGIT.I.J = ZSIG * ZSIG * ('EXP' (-1.D0 * RRIJ / ZL1)) ;
J = J + 1 ;
'FIN' BLOCJ ;
I = I + 1 ;
'FIN' BLOCI ;
*
I = 1 ;
'REPE' BLOCI NN ;
J = 1 ;
'REPE' BLOCJ NN ;
ECART = 'ABS' ((CCGIC.I.J - CCGIT.I.J) / CCGIT.I.J) ;
'SI' (ECART > 1.D-12) ;
'ERRE' 5 ;
'FINSI' ;
J = J + 1 ;
'FIN' BLOCJ ;
I = I + 1 ;
'FIN' BLOCI ;
*
MMGAC = 'DCOV' CARRE 'GAUS' 'SIGMA' ZSIG 'LAMBDA1' ZL1 'LAMBDA2' ZL2 ;
*
YYGACT = TABLE ;
I = 1 ;
'REPE' BLOC NN ;
YYGACT.I = MMGAC * (PSI.I) ;
I = I + 1 ;
'FIN' BLOC ;
*
YYGAC = TABLE ;
I = 1 ;
'REPE' BLOCI NN ;
YYGACI = 'MAXI' ('REDU' YYGACT.1 ('POIN' CARREP I)) ;
YYGAC.I = 'MANU' 'CHPO' ('POIN' CARREP 1) 1 'SCAL' ('PROG' YYGACI)
'NATURE' 'DISCRET' ;
J = 2 ;
'REPE' BLOCJ NN1 ;
YYGACI = 'MAXI' ('REDU' YYGACT.J ('POIN' CARREP I)) ;
YYGACI = 'MANU' 'CHPO' ('POIN' CARREP J) 1 'SCAL' ('PROG' YYGACI)
'NATURE' 'DISCRET' ;
YYGAC.I = YYGAC.I 'ET' YYGACI ;
J = J + 1 ;
'FIN' BLOCJ ;
I = I + 1 ;
'FIN' BLOCI ;
*
CCGAC = TABLE ;
I = 1 ;
'REPE' BLOCI NN ;
CCGAC.I = TABLE ;
J = 1 ;
'REPE' BLOCJ NN ;
CCGAC.I.J = 'MAXI' ('RESU' (YYGAC.I * YYGAC.J)) ;
J = J + 1 ;
'FIN' BLOCJ ;
I = I + 1 ;
'FIN' BLOCI ;
*
CCGAT = TABLE ;
I = 1 ;
'REPE' BLOCI NN ;
CCGAT.I = TABLE ;
XXI = 'COOR' 1 ('POIN' CARREP I) ;
YYI = 'COOR' 2 ('POIN' CARREP I) ;
J = 1 ;
'REPE' BLOCJ NN ;
XXJ = 'COOR' 1 ('POIN' CARREP J) ;
YYJ = 'COOR' 2 ('POIN' CARREP J) ;
DXIJ2 = ((XXI - XXJ) / ZL1) ** 2 ;
DYIJ2 = ((YYI - YYJ) / ZL2) ** 2 ;
RRIJ = DXIJ2 + DYIJ2 ;
CCGAT.I.J = ZSIG * ZSIG * ('EXP' (-1.D0 * RRIJ )) ;
J = J + 1 ;
'FIN' BLOCJ ;
I = I + 1 ;
'FIN' BLOCI ;
*
I = 1 ;
'REPE' BLOCI NN ;
J = 1 ;
'REPE' BLOCJ NN ;
ECART = 'ABS' ((CCGAC.I.J - CCGAT.I.J) / CCGAT.I.J) ;
'SI' (ECART > 1.D-12) ;
'ERRE' 5 ;
'FINSI' ;
J = J + 1 ;
'FIN' BLOCJ ;
I = I + 1 ;
'FIN' BLOCI ;
*
MMGDC = 'DCOV' CARRE 'GAUS' 'SIGMA' ZSIG 'LAMBDA1' ZL1 'LAMBDA2' ZL2
'DIRECTION' (('COS' ANGL) ('SIN' ANGL)) ;
*
YYGDCT = TABLE ;
I = 1 ;
'REPE' BLOC NN ;
YYGDCT.I = MMGDC * (PSI.I) ;
I = I + 1 ;
'FIN' BLOC ;
*
YYGDC = TABLE ;
I = 1 ;
'REPE' BLOCI NN ;
YYGDCI = 'MAXI' ('REDU' YYGDCT.1 ('POIN' CARREP I)) ;
YYGDC.I = 'MANU' 'CHPO' ('POIN' CARREP 1) 1 'SCAL' ('PROG' YYGDCI)
'NATURE' 'DISCRET' ;
J = 2 ;
'REPE' BLOCJ NN1 ;
YYGDCI = 'MAXI' ('REDU' YYGDCT.J ('POIN' CARREP I)) ;
YYGDCI = 'MANU' 'CHPO' ('POIN' CARREP J) 1 'SCAL' ('PROG' YYGDCI)
'NATURE' 'DISCRET' ;
YYGDC.I = YYGDC.I 'ET' YYGDCI ;
J = J + 1 ;
'FIN' BLOCJ ;
I = I + 1 ;
'FIN' BLOCI ;
*
CCGDC = TABLE ;
I = 1 ;
'REPE' BLOCI NN ;
CCGDC.I = TABLE ;
J = 1 ;
'REPE' BLOCJ NN ;
CCGDC.I.J = 'MAXI' ('RESU' (YYGDC.I * YYGDC.J)) ;
J = J + 1 ;
'FIN' BLOCJ ;
I = I + 1 ;
'FIN' BLOCI ;
*
CCGDT = TABLE ;
I = 1 ;
'REPE' BLOCI NN ;
CCGDT.I = TABLE ;
XXI = 'COOR' 1 ('POIN' CARREP I) ;
YYI = 'COOR' 2 ('POIN' CARREP I) ;
J = 1 ;
'REPE' BLOCJ NN ;
XXJ = 'COOR' 1 ('POIN' CARREP J) ;
YYJ = 'COOR' 2 ('POIN' CARREP J) ;
DXIJ2 =
((((XXI - XXJ) * ('COS' ANGL)) + ((YYI - YYJ) * ('SIN' ANGL)))
/ ZL1) ** 2 ;
DYIJ2 =
((((XXI - XXJ) * ('SIN' ANGL)) - ((YYI - YYJ) * ('COS' ANGL)))
/ ZL2) ** 2 ;
RRIJ = DXIJ2 + DYIJ2 ;
CCGDT.I.J = ZSIG * ZSIG * ('EXP' (-1.D0 * RRIJ )) ;
J = J + 1 ;
'FIN' BLOCJ ;
I = I + 1 ;
'FIN' BLOCI ;
*
I = 1 ;
'REPE' BLOCI NN ;
J = 1 ;
'REPE' BLOCJ NN ;
ECART = 'ABS' ((CCGDC.I.J - CCGDT.I.J) / CCGDT.I.J) ;
'SI' (ECART > 1.D-12) ;
'ERRE' 5 ;
'FINSI' ;
J = J + 1 ;
'FIN' BLOCJ ;
I = I + 1 ;
'FIN' BLOCI ;
*
'ERRE' 0 ;
*
'FIN' ;
© Cast3M 2003 - All rights reserved.
Disclaimer