* fichier :  nloc2.dgibi
************************************************************************
* Section : Langage Objets
* Section : Maillage Autres
************************************************************************
graph='N';
saut page;
mess 'test CONN et NLOC';
*********************************************************************
*
* construction de connectivites sur des domaines differents
* mesh12=1/4 de cylindre, mesh1 et mesh2=1/2 cylindre et
* mesh=cylindre 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 3 mode trid;
*
* 1) maillage: mesh  est un maillage bi-symetrique
*              mesh12 en est le 1/4 (compose de me1[pri6] et me2[cub8])
*              mesh1 et mesh2 2 en sont des moities contenant mesh12
*
p1=0 0 0; p2=1 0 0; p22=.01 0 0; p3=0 1 0; p33=0 .01 0;
pz=0 0 1000;
*
opti elem pri6;
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;
me1=me1 volu 1 tran pz;
*
opti elem cub8;
me2=dall c1 (p33 d 3 p3) (c 3 p3 p1 p2) (p2 d 3 p22) 'PLAN';
me2=me2 volu 1 tran pz;
*
*
mesh12=me1 et me2; elim mesh12 1.d-4;
*
mesh2=mesh12 syme 'PLAN' p1 p2 pz;
mesh3=mesh12 syme 'PLAN' p1 p3 pz;
mesh4=mesh2 syme 'PLAN' p1 p3 pz;
*
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=mode mesh mecanique NON_LOCAL 'MOYE'
'V_MOYENNE'  (MOTS 'SCAL') consti constia ;
mo12=mode mesh12 mecanique NON_LOCAL 'MOYE' 
'V_MOYENNE'  (MOTS 'SCAL') consti constia ;
mo1=mode mesh1 mecanique NON_LOCAL 'MOYE' 
'V_MOYENNE'  (MOTS 'SCAL') consti constia ;
mo2=mode mesh2 mecanique NON_LOCAL 'MOYE' 
'V_MOYENNE'  (MOTS 'SCAL') consti constia ;
*
* 3) listmot des composantes a moyenner et longueur caracteristique
*
lc=.4;
*
* 4) calcul sur le cylindre complet
*
mess 'calcul sur le cylindre complet';
*
* 4.1) connectivite (normale)
*
co =conn mo  lc '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 ;
*
* 4.4) reduction sur le 1/4
*
mmoy=(redu moy me1) et (redu moy me2);
*
* 5) calcul sur le 1/4 de cylindre
*
mess 'calcul sur le 1/4 de cylindre';
*
* 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 lc 'NORMAL'         'NO-MES12';
co12ecv=conn mo12 lc 'PLAN' p1 p2 pz  'HO-MES12';
co12ech=conn mo12 lc 'PLAN' p1 p3 pz  'VE-MES12';
co12ecp=conn mo12 lc 'DROITE'  p1 pz  '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 ;
*
* 6) calcul sur le 1/2 cylindre vertical
*
mess 'calcul sur le 1/2 cylindre vertical';
*
* 6.1) connectivite avec une symetrie droite
*
co1ecn=conn mo1 lc 'NORMAL'         'NO-MESH1';
co1ecv=conn mo1 lc 'PLAN' p1 p3 pz  '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 ;
*
* 6.4) reduction sur le 1/4
*
mmoy1=(redu moy1 me1) et (redu moy1 me2);
*
*
* 7) calcul sur le 1/2 cylindre horizontal
*
mess 'calcul sur le 1/2 cylindre horizontal';
*
* 7.1) connectivite avec une symetrie droite
*
co2ecn=conn mo2 lc 'NORMAL'         'NO-MESH2';
co2ech=conn mo2 lc 'PLAN' p1 p2 pz  '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 ;
*
* 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;

 

 

 

 

 

