* fichier : vsur2.dgibi ********************************************************* * 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 = modl obj3 mecanique elastique isotrope coq3; mo32 = modl obj3 mecanique elastique isotrope dst; mo33 = modl obj3 mecanique elastique isotrope dkt; mo4 = modl 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 ERR 0'; ERRE 0; SINON; MESS 'OPERATEUR ERR 5'; ERRE 5; FINSI; fin;