1*******************************************************************************
2**	Fichier	  : pipe3D
3**	Auteur     : Thomas Helfer
4**	Date       : 3 sept. 2014
5*******************************************************************************
6
7'OPTION' 'DIMENSION' 3;
8'OPTION' 'ELEMENT'   'PR15';
9'OPTION' 'MODELISER' 'TRID';
10'OPTION' 'ERREUR'    'FATALE';
11'OPTION' 'ECHO' 0;
12
13'DEBPROC' @ORTBA3D d1 '*' 'MCHAML'
14                   d2 '*' 'MCHAML'
15                   c '*' 'MCHAML';
16* normalisation de la premi�re direction
17   d1x  = 'EXCO' d1 'V1X' 'SCAL';
18   d1y  = 'EXCO' d1 'V1Y' 'SCAL';
19   d1z  = 'EXCO' d1 'V1Z' 'SCAL';
20   nrm = ((d1x'*'d1x)'+'(d1y'*'d1y)'+'(d1z'*'d1z))'**'(-0.5);
21   d1x  = d1x*nrm;
22   d1y  = d1y*nrm;
23   d1z  = d1z*nrm;
24* normalisation de la seconde direction
25   d2x  = 'EXCO' d2 'V2X' 'SCAL';
26   d2y  = 'EXCO' d2 'V2Y' 'SCAL';
27   d2z  = 'EXCO' d2 'V2Z' 'SCAL';
28   nrm = ((d2x'*'d2x)'+'(d2y'*'d2y)'+'(d2z'*'d2z))'**'(-0.5);
29   d2x  = d2x*nrm;
30   d2y  = d2y*nrm;
31   d2z  = d2z*nrm;
32** calcul de la matrice de passage
33   m1x = 'EXCO' c 'V1X' 'SCAL';
34   m1y = 'EXCO' c 'V1Y' 'SCAL';
35   m1z = 'EXCO' c 'V1Z' 'SCAL';
36   m2x = 'EXCO' c 'V2X' 'SCAL';
37   m2y = 'EXCO' c 'V2Y' 'SCAL';
38   m2z = 'EXCO' c 'V2Z' 'SCAL';
39* la troisi�me colonne est obtenue par un produit vectoriel
40   m3x = (m1y '*' m2z) '-' (m1z '*' m2y);
41   m3y = (m1z '*' m2x) '-' (m1x '*' m2z);
42   m3z = (m1x '*' m2y) '-' (m1y '*' m2x);
43* calcul des directions d'orthotropie dans le rep�re des �l�ments
44   v1x = (m1x'*'d1x)'+'(m2x'*'d1y)'+'(m3x'*'d1z);
45   v1y = (m1y'*'d1x)'+'(m2y'*'d1y)'+'(m3y'*'d1z);
46   v1z = (m1z'*'d1x)'+'(m2z'*'d1y)'+'(m3z'*'d1z);
47   v2x = (m1x'*'d2x)'+'(m2x'*'d2y)'+'(m3x'*'d2z);
48   v2y = (m1y'*'d2x)'+'(m2y'*'d2y)'+'(m3y'*'d2z);
49   v2z = (m1z'*'d2x)'+'(m2z'*'d2y)'+'(m3z'*'d2z);
50* le champ de mat�riau est finalement reconstruit
51   L_comp = 'EXTRAIRE' c 'COMP' ;
52   N_comp = 'DIME' L_comp ;
53   fVide  = 'VRAI';
54   'REPETER' i N_comp ;
55      co = 'EXTRAIRE' &i L_comp ;
56      'SI' (('NEG' co 'V1X') 'ET'
57            ('NEG' co 'V1Y') 'ET'
58            ('NEG' co 'V1Z') 'ET'
59            ('NEG' co 'V2X') 'ET'
60            ('NEG' co 'V2Y') 'ET'
61            ('NEG' co 'V2Z'));
62         'SI' ('EGA' fVide 'VRAI');
63            f = 'EXCO' c co;
64            fVide = 'FAUX';
65         'SINON';
66            f = f 'ET' ('EXCO' c co);
67         'FINSI';
68       'FINSI';
69   'FIN' i;
70   f = f 'ET' ('NOMC' ('CHANGER' v1x 'TYPE' 'CARACTERISTIQUES') 'V1X');
71   f = f 'ET' ('NOMC' ('CHANGER' v1y 'TYPE' 'CARACTERISTIQUES') 'V1Y');
72   f = f 'ET' ('NOMC' ('CHANGER' v1z 'TYPE' 'CARACTERISTIQUES') 'V1Z');
73   f = f 'ET' ('NOMC' ('CHANGER' v2x 'TYPE' 'CARACTERISTIQUES') 'V2X');
74   f = f 'ET' ('NOMC' ('CHANGER' v2y 'TYPE' 'CARACTERISTIQUES') 'V2Y');
75   f = f 'ET' ('NOMC' ('CHANGER' v2z 'TYPE' 'CARACTERISTIQUES') 'V2Z');
76'FINPROC' f;
77
78Ri=4.18e-3;
79Re=Ri+0.57e-3;
80
81h = 0.25 '*' Ri;
82
83nr=3;
84nt=3;
85* nr=15;
86* nt=15;
87
88ang=25.;
89tmax=1.;
90pmax=3.e7;
91NPAS=50;
92eps =1.e-12;
93
94'DENS' ((Ri '*' ((ang '/' 360.) '*' 3.14)) '/' nt);
95
96p0D = (0. 0. 0.);
97p0U = p0D 'PLUS' (0. 0. h);
98
99p1D = (Ri 0. 0.);
100p2D = p1D 'TOURNER' ang p0D p0U;
101
102p1U = p1D 'PLUS' (0. 0. h);
103p2U = p2D 'PLUS' (0. 0. h);
104
105c1D = 'CERCLE' p1D p0D p2D;
106Sint = c1D 'TRANSLATION' (0. 0. h);
107'ELIMINATION' (Sint 'ET' p1U 'ET' p2U);
108
109x y z = 'COORDONNEE' Sint;
110ux = 'NOMC' 'UX' (x '*' ((Re '/' Ri) '-' 1));
111uy = 'NOMC' 'UY' (y '*' ((Re '/' Ri) '-' 1));
112Sext = Sint 'PLUS' (ux 'ET' uy);
113
114clad = Sint 'VOLUME' nr Sext;
115
116* 'TRACER' clad 'FACE';
117
118evclad = 'ENVELOPPE' clad;
119
120x y z = 'COORDONNEE' evclad;
121SD = evclad 'ELEM' 'APPUYE' 'STRICTEMENT' ('POINT' z 'INFERIEUR' eps);
122SU = evclad 'ELEM' 'APPUYE' 'STRICTEMENT'
123            ('POINT' z 'SUPERIEUR' (h '-' eps));
124
125x y z = 'COORDONNEE' clad;
126
127d1 = ('NOMC' x 'V1X') 'ET' ('NOMC' y 'V1Y') 'ET'
128     ('MANU' 'CHPO' clad 1 'V1Z' 0. 'NATURE' 'DIFFUS');
129d2 = ('MANU' 'CHPO' clad 1 'V2X' 0. 'NATURE' 'DIFFUS') 'ET'
130     ('MANU' 'CHPO' clad 1 'V2Y' 0. 'NATURE' 'DIFFUS') 'ET'
131     ('MANU' 'CHPO' clad 1 'V2Z' 1. 'NATURE' 'DIFFUS');
132
133** mod�le
134
135coel   = 'MOTS' 'YG1' 'YG2' 'YG3' 'NU12' 'NU23' 'NU13' 'G12' 'G23' 'G13'
136   'V1X' 'V1Y' 'V1Z' 'V2X' 'V2Y' 'V2Z' 'RHO' 'ALP1' 'ALP2' 'ALP3';
137params = 'MOTS' 'T';
138
139* 'EPSILON' 'UTILISATEUR'
140MO = 'MODELISER' clad 'MECANIQUE' 'ELASTIQUE' 'ORTHOTROPE'
141   'NON_LINEAIRE' 'UTILISATEUR' 'EPSILON' 'LINEAIRE'
142   'LIB_LOI' '../libMFrontCastemBehaviours.so'
143   'FCT_LOI' 'umatorthotropicelastic'
144   'C_MATERIAU' coel 'PARA_LOI' params 'CONS' M;
145
146xyg1=170.e9;
147xyg2=100.e9;
148xyg3=130.e9;
149xnu12=0.3;
150xnu13=0.2;
151xnu23=0.4;
152xg13=249.e9;
153xg12=153.e9;
154xg23=230.e9;
155
156MA1 = 'MATERIAU' MO 'YG1' xyg1 'YG2' xyg2 'YG3' xyg3 'NU12' xnu12
157'NU23' xnu23 'NU13' xnu13 'G12' xg12 'G23' xg23 'G13' xg13
158'RHO' 0. 'ALP1' 0. 'ALP2' 0. 'ALP3' 0.
159'DIRECTION' (1 0 0) (0 1 0) 'PARALLELE';
160
161MA = 'EXCO' MA1 ('MOTS' 'YG1'  'YG2'  'YG3'
162                        'NU12' 'NU23' 'NU13'
163                        'G12' 'G23' 'G13'
164                        'RHO' 'ALP1' 'ALP2' 'ALP3');
165MA = MA 'ET' (@ORTBA3D ('CHANGER' 'CHAM' d1 mo 'RIGIDITE')
166                       ('CHANGER' 'CHAM' d2 mo 'RIGIDITE') MA1);
167
168***
169LIT1 = PROG 0. TMAX;
170
171*** CONDITIONS AUX LIMITES
172************************************************
173* Conditions aux limites
174CL1  = 'SYMT' 'DEPLACER' P0D P0U P2D clad eps;
175CL2  = 'SYMT' 'DEPLACER' P0D P0U P1D clad eps;
176CL3  = 'BLOQUE' 'UZ' SD;
177CL4  = 'RELA' 'ENSE' 'UZ' SU;
178CLE1 = CL1 'ET' CL2 'ET' CL3 'ET' CL4;
179
180* Chargement m�canique et thermique
181LI1 = PROG 0. TMAX ;
182LI2 = PROG 1. 1. ;
183EV = EVOL MANU T LI1 F(T) LI2 ;
184PR   = 'PRES' 'MASS' mo pmax Sint;
185CHA1 = CHAR 'MECA' PR EV ;
186
187* Champ de temp�rature
188TEK = 293.15;
189THE1 = MANU 'CHPO' clad 1 'T' TEK ;
190EV2 = EVOL MANU (prog 0. TMAX) (prog 1. 1.) ;
191CHARTHER = CHAR 'T' THE1 EV2 ;
192
193** CALCUL
194* D�finition des pas de calcul et de sauvegarde
195************************************************************
196* D�finition de la table de la phase de charge
197TAB1 = TABLE ;
198TAB1.'MOVA' = 'MOT' 'RIEN' ;
199TAB1.'TEMPERATURES' = TABLE ;
200TAB1.'VARIABLES_INTERNES' = TABLE ;
201TAB1.'BLOCAGES_MECANIQUES' = CLE1 ;
202TAB1.'MODELE' = MO ;
203TAB1.'CHARGEMENT' = CHA1 'ET' CHARTHER ;
204TAB1.'TEMPERATURES' . 0 = THE1 ;
205TAB1.'CARACTERISTIQUES' = MA ;
206TAB1.'TEMPS_CALCULES' = LIT1 ;
207TAB1.'TEMPS_SAUVES' = LIT1 ;
208TAB1.VARIABLES_INTERNES.0 = (ZERO MO 'VARINTER');
209TAB1.'GRANDS_DEPLACEMENTS' = FAUX;
210TAB1.'PRECISION' = 1.e-8;
211
212* Lancement du calcul de la phase de charge
213PASAPAS TAB1 ;
214
215d_mfront = tab1.'DEPLACEMENTS'. 1;
216
217MO = 'MODELISER' clad 'MECANIQUE' 'ELASTIQUE' 'ORTHOTROPE';
218
219MA1 = 'MATERIAU' MO 'YG1' xyg1 'YG2' xyg2 'YG3' xyg3 'NU12' xnu12
220'NU23' xnu23 'NU13' xnu13 'G12' xg12 'G23' xg23 'G13' xg13
221'RHO' 0. 'ALP1' 0. 'ALP2' 0. 'ALP3' 0.
222'DIRECTION' (1 0 0) (0 1 0) 'PARALLELE';
223
224MA = 'EXCO' MA1 ('MOTS' 'YG1'  'YG2'  'YG3'
225                        'NU12' 'NU23' 'NU13'
226                        'G12' 'G23' 'G13'
227                        'RHO' 'ALP1' 'ALP2' 'ALP3');
228MA = MA 'ET' (@ORTBA3D ('CHANGER' 'CHAM' d1 mo 'RIGIDITE')
229                       ('CHANGER' 'CHAM' d2 mo 'RIGIDITE') MA1);
230
231* D�finition de la table de la phase de charge
232* D�finition de la table de la phase de charge
233TAB1 = TABLE ;
234TAB1.'MOVA' = 'MOT' 'RIEN' ;
235TAB1.'TEMPERATURES' = TABLE ;
236TAB1.'VARIABLES_INTERNES' = TABLE ;
237TAB1.'BLOCAGES_MECANIQUES' = CLE1 ;
238TAB1.'MODELE' = MO ;
239TAB1.'CHARGEMENT' = CHA1 'ET' CHARTHER ;
240TAB1.'TEMPERATURES' . 0 = THE1 ;
241TAB1.'CARACTERISTIQUES' = MA ;
242TAB1.'TEMPS_CALCULES' = LIT1 ;
243TAB1.'TEMPS_SAUVES' = LIT1 ;
244TAB1.VARIABLES_INTERNES.0 = (ZERO MO 'VARINTER');
245TAB1.'GRANDS_DEPLACEMENTS' = FAUX;
246TAB1.'PRECISION' = 1.e-8;
247
248* Lancement du calcul de la phase de charge
249PASAPAS TAB1 ;
250
251d_elas = tab1.'DEPLACEMENTS'. 1;
252
253dux =  (('EXCO' 'UX' d_elas 'SCAL') '-'
254        ('EXCO' 'UX' d_mfront 'SCAL'));
255duy =  (('EXCO' 'UY' d_elas 'SCAL') '-'
256        ('EXCO' 'UY' d_mfront 'SCAL'));
257duz =  (('EXCO' 'UZ' d_elas 'SCAL') '-'
258        ('EXCO' 'UZ' d_mfront 'SCAL'));
259
260* comparaison entre la loi mfront et la loi �lastique native
261'SI' ('>' ('MAXIMUM' dux) 1.e-19);
262   'ERREUR' 'Erreur inadmissible sur la composante UX';
263'FINSI';
264'SI' ('>' ('MAXIMUM' duy) 1.e-19);
265   'ERREUR' 'Erreur inadmissible sur la composante UY';
266'FINSI';
267'SI' ('>' ('MAXIMUM' duz) 1.e-19);
268   'ERREUR' 'Erreur inadmissible sur la composante UZ';
269'FINSI';
270
271* comparaison entre les r�sultats obtenus et les r�sultats mtest
272* d�placement radial en peau interne
273ur_mtest  = 7.7239118269544e-06;
274ur        = ('EXTRAIRE' d_mfront 'UX' p1D);
275* d�formation axiale
276ez_mtest  = -0.00085441645876287;
277ez        = ('MAXIMUM' ('REDU' ('EXCO' 'UZ' d_mfront) SU))/h;
278
279'SI' ('>' ('ABS' (ur_mtest-ur)) 1.e-11);
280   'ERREUR' 'Erreur inadmissible sur la composante UX';
281'FINSI';
282
283'SI' ('>' ('ABS' (ez_mtest-ez)) ('ABS' (1.e-7*ez_mtest)));
284   msg = 'CHAINE' 'Erreur inadmissible sur la composante EZZ'
285         '(' ez_mtest ' vs ' ez ')';
286   'ERREUR' msg;
287'FINSI';
288
289'MESSAGE' 'SUCC�S DU TEST';
290
291'FIN';
292