* fichier :  vsur2.dgibi
************************************************************************
* Section : Mecanique Elastique
************************************************************************
*********************************************************
*  vsur2.dgibi : Test de VSUR en coq3, DKT, DST et coq4 *
*********************************************************
opti echo 0 dime 3 elem qua4;
*
*  Définition de la géométrie
*
p0 = 0. 0. 0.;
p1 = 9. 0. 6.;
p2 = 7. 6. 10.;
p3 = -2. 6. 4.;
p4 = 8. 3. 8.;
p5 = -1. 3. 2.;
l1 = D 3 p0 p1;
l2 = D 2 p1 p2;
l3 = D 5 p2 p3;
l4 = D 4 p3 p0;
*
cn1 = l1 et l2 et l3 et l4;
obj = SURF cn1 'PLANE';
*
*  Définition des modèles
*
obj3 = obj elem 'TRI3';
obj4 = obj elem 'QUA4';
mo31 =  modeli obj3  mecanique elastique isotrope coq3;
mo32 =  modeli obj3  mecanique elastique isotrope dst;
mo33 =  modeli obj3  mecanique elastique isotrope dkt;
mo4 =  modeli obj4  mecanique elastique isotrope coq4;
mod1 = mo31 et mo4;
mod2 = mo32 et mo4;
mod3 = mo33 et mo4;
*
*  Comparaison des champs obtenus par VSUR  
*
* Premier modèle : coq3 et coq4
che1 = VSUR mod1;
chn1 = VSUR mod1 'NORM';
chj1 = JACO mod1;
cnx1 = exco 'VX' che1 'SCAL';
cny1 = exco 'VY' che1 'SCAL';
cnz1 = exco 'VZ' che1 'SCAL';
cnn1 = (cnx1*cnx1) + (cny1*cny1) + (cnz1*cnz1);
cjn1 = chj1*chj1;
cze1 = cnn1 - cjn1;
*list cze1;
cnx1 = exco 'VX' chn1 'SCAL';
cny1 = exco 'VY' chn1 'SCAL';
cnz1 = exco 'VZ' chn1 'SCAL';
cnn1 = (cnx1*cnx1) + (cny1*cny1) + (cnz1*cnz1);
*list cnn1;
CPZ1 = CHAN CHPO MOD1 CZE1;
CPN1 = CHAN CHPO MOD1 CNN1;
RE11 = MAXI CPZ1 'ABS';
RE12 = (MAXI CPN1 'ABS') - 1.;
RE13 = (MAXI CPN1 'ABS') - (MINI CPN1 'ABS');
* Deuxième modèle : dkt et coq4
che1 = VSUR mod2;
chn1 = VSUR mod2 'NORM';
chj1 = JACO mod2;
cnx1 = exco 'VX' che1 'SCAL';
cny1 = exco 'VY' che1 'SCAL';
cnz1 = exco 'VZ' che1 'SCAL';
cnn1 = (cnx1*cnx1) + (cny1*cny1) + (cnz1*cnz1);
cjn1 = chj1*chj1;
cze1 = cnn1 - cjn1;
*list cze1;
cnx1 = exco 'VX' chn1 'SCAL';
cny1 = exco 'VY' chn1 'SCAL';
cnz1 = exco 'VZ' chn1 'SCAL';
cnn1 = (cnx1*cnx1) + (cny1*cny1) + (cnz1*cnz1);
*list cnn1;
CPZ1 = CHAN CHPO MOD2 CZE1;
CPN1 = CHAN CHPO MOD2 CNN1;
RE21 = MAXI CPZ1 'ABS';
RE22 = (MAXI CPN1 'ABS') - 1.;
RE23 = (MAXI CPN1 'ABS') - (MINI CPN1 'ABS');
* Troisieème modèle : dkt et coq4
che1 = VSUR mod3;
chn1 = VSUR mod3 'NORM';
chj1 = JACO mod3;
cnx1 = exco 'VX' che1 'SCAL';
cny1 = exco 'VY' che1 'SCAL';
cnz1 = exco 'VZ' che1 'SCAL';
cnn1 = (cnx1*cnx1) + (cny1*cny1) + (cnz1*cnz1);
cjn1 = chj1*chj1;
cze1 = cnn1 - cjn1;
*list cze1;
cnx1 = exco 'VX' chn1 'SCAL';
cny1 = exco 'VY' chn1 'SCAL';
cnz1 = exco 'VZ' chn1 'SCAL';
cnn1 = (cnx1*cnx1) + (cny1*cny1) + (cnz1*cnz1);
*list cnn1;
CPZ1 = CHAN CHPO MOD3 CZE1;
CPN1 = CHAN CHPO MOD3 CNN1;
RE31 = MAXI CPZ1 'ABS';
RE32 = (MAXI CPN1 'ABS') - 1.;
RE33 = (MAXI CPN1 'ABS') - (MINI CPN1 'ABS');
RES1 = RE11 + RE12 + RE13 + RE21 + RE22 + RE23;
RES1 = RES1 + RE31 + RE32 + RE33;
*LIST RES1;
SI (res1 < 1.e-6) ;
  MESS 'OPERATEUR <VSUR> ERR  0';
  ERRE  0;
SINON;
  MESS 'OPERATEUR <VSUR> ERR  5';
  ERRE  5;
FINSI; 
fin;


 

 

 

