* fichier : redumode.dgibi
*
* démonstration pour reduire le nombre de modèles
*
debp affpro mai*maillage ia*entier;
mo1= model mai mecanique elastique plastique parfait cons co1;
mo2= model mai mecanique elastique plastique parfait cons co2;
mo3= model mai mecanique elastique plastique parfait cons co3;
mo4= model mai mecanique elastique plastique parfait cons co4;
mo5= model mai mecanique elastique plastique parfait cons co5;
mo6= model mai mecanique elastique plastique parfait cons co6;
mo7= model mai mecanique elastique plastique parfait cons co7;
mo8= model mai mecanique elastique plastique parfait cons co8;
mo9= model mai mecanique elastique plastique parfait cons co9;
mo10= model mai mecanique elastique plastique parfait cons co10;
mot= mo1 et mo2 et mo3 et mo4 et mo5 et mo6 et mo7 et mo8 et
mo9 et mo10;
ib= 20 + ia;
ma1= mo1 mate young 20000 nu 0.3 sigy ib;
ma2= mo2 mate young 20000 nu 0.3 sigy ib;
ma3= mo3 mate young 20000 nu 0.3 sigy ib;
ma4= mo4 mate young 20000 nu 0.3 sigy ib;
ma5= mo5 mate young 20000 nu 0.3 sigy ib;
ma6= mo6 mate young 20000 nu 0.3 sigy ib;
ma7= mo7 mate young 20000 nu 0.3 sigy ib;
ma8= mo8 mate young 20000 nu 0.3 sigy ib;
ma9= mo9 mate young 20000 nu 0.3 sigy ib;
ma10= mo10 mate young 20000 nu 0.3 sigy ib;
mat= ma1 et ma2 et ma3 et ma4 et ma5 et ma6 et ma7 et ma8 et
ma9 et ma10;
finproc mot mat;
* ajout de option epsilon lineaire pour la precision des test!
OPTION epsilon lineaire;
opti dime 2 elem qua4 mode plan defo;
pa= 0 0 ; pb = 10 0;
liab=pa droi 10 pb;
su = liab tran 5 (0 10);
motot= su model mecanique elastique plastique parfait;
matot= mate motot young 200000 nu 0.3 sigy 200.;
cl1= bloq uy liab;
cl2= bloq ux pa;
cltot= cl1 et cl2;
ff = force ( cote 3 su) (0 100);
ri = rigi motot matot;
de = reso ( ri et cltot) ff;
sig= sigma de motot matot;
*trac sig motot matot;
nbe= nbel su;
repe bou nbe;
maiel= elem su &bou;
moel mael= affpro maiel &bou;
si ( &bou ega 1) ;
mott = moel; matt= mael;
sinon;
mott = mott et moel;
matt = matt et mael;
finsi;
fin bou;
ritt = rigi mott matt;
dett = reso ( ritt et cltot) ff;
diffde= de - dett; list ( maxi diffde);
temps;
lt= prog 0. 1.;
cf= prog 0. 1.;
ev = evol manu 'temps' lt 'coef' cf;
ch = char 'MECA' ff ev;
ta = table ;
ta.modele= motot;
ta.caracteristiques = matot;
ta . blocages_mecaniques=cltot;
ta.chargement = ch;
ta.temps_calcules = lt;
pasapas ta;
de1 = ta.deplacements . 1;
temps;
difde1= de - de1;
list ( maxi difde1);
tat = table ;
tat.modele= mott;
tat.caracteristiques = matt;
tat . blocages_mecaniques=cltot;
tat.chargement = ch;
tat.temps_calcules = lt;
pasapas tat;
temps;
de1t= tat.deplacements . 1;
dide1t= de - de1t; list ( maxi dide1t) ;
*
* on reduit le nombre de modele en s'appuyant sur les constituant
*
debp reduc coi*mot motto*mmodel matto*mchaml;
* petite procedure qui prend tous les models ayant le constituant coi
* et qui les rassemble en un seul. La reduction du champ par element
* doit etre faite simultaneemnt
moco1= extr motto cons coi;
maico1= extr moco1 maillage;
motco1= modele maico1 mecanique elastique plastique parfait cons coi;
matco1= redu matto motco1;
finproc motco1 matco1;
temps;
mot1 mat1 = reduc co1 mott matt;
mot2 mat2 = reduc co2 mott matt;
mot3 mat3 = reduc co3 mott matt;
mot4 mat4 = reduc co4 mott matt;
mot5 mat5 = reduc co5 mott matt;
mot6 mat6 = reduc co6 mott matt;
mot7 mat7 = reduc co7 mott matt;
mot8 mat8 = reduc co8 mott matt;
mot9 mat9 = reduc co9 mott matt;
mot10 mat10 = reduc co10 mott matt;
mov= mot1 et mot2 et mot3 et mot4 et mot5 et mot6 et mot7 et
mot8 et mot9 et mot10;
mav= mat1 et mat2 et mat3 et mat4 et mat5 et mat6 et mat7 et
mat8 et mat9 et mat10;
tav= table;
tav.modele= mov;
tav.caracteristiques = mav;
tav . blocages_mecaniques=cltot;
tav.chargement = ch;
tav.temps_calcules = lt;
pasapas tav;
temps;
de1tv= tav.deplacements . 1;
dide1tv= de - de1tv ; list ( maxi dide1tv);
aa = prog (maxi dide1tv) (maxi dide1t) (maxi diffde)
( maxi difde1);
ab = maxi aa;
mess ' erreur max ' ab ' comparee a 1.e-11';
si (( maxi aa) > 1.e-11 ) ;
erreur 5;
finsi;
fin;
© Cast3M 2003 - All rights reserved.
Disclaimer