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