* fichier : nloc1.dgibi
graph='N';
saut page;
mess 'test CONN et NLOC';
*********************************************************************
*
* construction de connectivites sur des domaines differents
* mesh12=1/4 de disque, mesh1 et mesh2=1/2 disque et
* mesh=disque complet, avec ou sans symetrie de tel facon
* que la reduction sur mesh12 d'un calcul non local mene a l'aide
* de ces 4 conectivites soit toujours identique
*
*********************************************************************
*
opti dime 2 mode plan defo;
*
* 1) maillage: mesh est un maillage bi-symetrique
* mesh12 en est le 1/4 (compose de me1[tri3] et me2[qua4])
* mesh1 et mesh2 2 en sont des moities contenant mesh12
*
p1=0 0; p2=1 0; p22=.01 0; p3=0 1; p33=0 .01;
*
opti elem tri3;
c1=(c 3 p22 p1 p33);
nnc1=nbno c1;
j=1; pci=c1 poin j;
repeter lab1 (nnc1-1);
j=j+1;
pcf=c1 poin j;
mecj=surf ((p1 d 1 pci) et (pci d 1 pcf) et (pcf d 1 p1)) 'PLANE';
si (j ega 2); me1=mecj;
sinon ; me1=me1 et mecj;
finsi;
pci=pcf;
fin lab1;
*
opti elem qua4;
me2=dall c1 (p33 d 3 p3) (c 3 p3 p1 p2) (p2 d 3 p22) 'PLAN';
*
mesh12=me1 et me2;
*
mesh2=mesh12 syme 'DROI' p1 p2;
mesh3=mesh12 syme 'DROI' p1 p3;
mesh4=mesh2 syme 'DROI' p1 p3;
*
mesh=mesh12 et mesh2 et mesh3 et mesh4;
elim mesh 1.d-5;
*
mmesh1=mesh12 et mesh2; mesh1=mmesh1;
mmesh2=mesh12 et mesh3; mesh2=mmesh2;
*
* 2) modele (tous les mesh ont mesh12 en commun)
*
mo=modl mesh mecanique consti constia;
mo12=modl mesh12 mecanique consti constia;
mo1=modl mesh1 mecanique consti constia;
mo2=modl mesh2 mecanique consti constia;
*
* 3) listmot des composantes a moyenner
*
cc=mots 'SCAL';
*
* 4) calcul sur le disque complet
*
mess 'calcul sur le disque complet';
*
* 4.1) connectivite (normale)
*
co =conn mo 1. 'NORMAL' 'NO-MESH';
*
* 4.2) chamelem a moyenner
* (construit par projection d'un chpoint nul partout sauf au centre)
*
ssca=(manu 'CHPO' p1 1 'SCAL' 1.)
+ (manu 'CHPO' mesh 1 'SCAL' 0.);
csca=chan 'CHAM' ssca mo;
ssca=chan 'STRESSES' mo csca;
*
* 4.3) moyenne non-locale
*
moy=nloc ssca co cc;
*
* 4.4) reduction sur le 1/4
*
mmoy=(redu moy me1) et (redu moy me2);
*
* 5) calcul sur le 1/4 de disque
*
mess 'calcul sur le 1/4 de disque';
*
* 5.1) connectivite avec symetries par rapport a 2 axes obtenues
* de facon "orthogonale" a partir d'une symetrie point et de
* 2 symetries droite
*
co12ecn=conn mo12 1. 'NORMAL' 'NO-MES12';
co12ecv=conn mo12 1. 'DROITE' p1 p2 'HO-MES12';
co12ech=conn mo12 1. 'DROITE' p1 p3 'VE-MES12';
co12ecp=conn mo12 1. 'POINT' p1 'PT-MES12';
co12vhp=co12ecn et co12ecv et co12ech et co12ecp;
*
* 5.2) chamelem a moyenner
* (construit par projection d'un chpoint nul partout sauf au centre)
*
ssca12=(manu 'CHPO' p1 1 'SCAL' 1.)
+ (manu 'CHPO' mesh12 1 'SCAL' 0.);
csca12=chan 'CHAM' ssca12 mo12;
ssca12=chan 'STRESSES' mo12 csca12;
*
* 5.3) moyenne non-locale
*
moy12=nloc ssca12 co12vhp cc;
*
* 6) calcul sur le 1/2 disque vertical
*
mess 'calcul sur le 1/2 disque vertical';
*
* 6.1) connectivite avec une symetrie droite
*
co1ecn=conn mo1 1. 'NORMAL' 'NO-MESH1';
co1ecv=conn mo1 1. 'DROITE' p1 p3 'VE-MESH1';
co1v=co1ecn et co1ecv;
*
* 6.2) chamelem a moyenner
* (construit par projection d'un chpoint nul partout sauf au centre)
*
ssca1=(manu 'CHPO' p1 1 'SCAL' 1.)
+ (manu 'CHPO' mesh1 1 'SCAL' 0.);
csca1=chan 'CHAM' ssca1 mo1;
ssca1=chan 'STRESSES' mo1 csca1;
*
* 6.3) moyenne non-locale
*
moy1=nloc ssca1 co1v cc;
*
* 6.4) reduction sur le 1/4
*
mmoy1=(redu moy1 me1) et (redu moy1 me2);
*
*
* 7) calcul sur le 1/2 disque horizontal
*
mess 'calcul sur le 1/2 disque horizontal';
*
* 7.1) connectivite avec une symetrie droite
*
co2ecn=conn mo2 1. 'NORMAL' 'NO-MESH2';
co2ech=conn mo2 1. 'DROITE' p1 p2 'VE-MESH2';
co2h=co2ecn et co2ech;
*
* 7.2) chamelem a moyenner
* (construit par projection d'un chpoint nul partout sauf au centre)
*
ssca2=(manu 'CHPO' p1 1 'SCAL' 1.)
+ (manu 'CHPO' mesh2 1 'SCAL' 0.);
csca2=chan 'CHAM' ssca2 mo2;
ssca2=chan 'STRESSES' mo2 csca2;
*
* 7.3) moyenne non-locale
*
moy2=nloc ssca2 co2h cc;
*
* 7.4) reduction sur le 1/4
*
mmoy2=(redu moy2 me1) et (redu moy2 me2);
*
* 8) erreur
*
m12m =(abs (moy12 - mmoy )) masque 'SUPERIEUR' 'SOMME' 1.d-10;
m12m1=(abs (moy12 - mmoy1)) masque 'SUPERIEUR' 'SOMME' 1.d-10;
m12m2=(abs (moy12 - mmoy2)) masque 'SUPERIEUR' 'SOMME' 1.d-10;
lerr=m12m + m12m1 + m12m2;
si (lerr > 0); erre 5;
sinon; erre 0; finsi;
*
fin;
© Cast3M 2003 - All rights reserved.
Disclaimer