Télécharger HHO_Mooney_LRGTreloar_Traction.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : HHO_Mooney_LRGTreloar_Traction.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. *======================================================================*
  5. * MODELE HYPERELASTIQUE MOONEY-RIVLIN INCOMPRESSIBLE *
  6. * EN GRANDES TRANSFORMATIONS - CONTRAINTES PLANES *
  7. * AVEC ELEMENTS "FINIS" DE FORMULATION "HHO" *
  8. * *
  9. * TEST DE VALIDATION DU MODELE : TRACTION SELON LA DIRECTION Y *
  10. * COMPARAISON AVEC LA SOLUTION ANALYTIQUE *
  11. * *
  12. * Contribution de Laurent Gornet - Ecole Centrale de Nantes (2006) *
  13. *======================================================================*
  14. * Pour plus d'informations, voir la presentation de L. Gornet lors *
  15. * du Club Cast3m 2006, disponible sur le site Web de Cast3m. *
  16. *======================================================================*
  17. * Exemple d'utilisation d'un modele UMAT en grandes transformations *
  18. * dans le cadre d'une formulation HHO *
  19. *======================================================================*
  20. 'OPTION' 'ECHO' 0 ;
  21.  
  22. *=========== DEBUT Options de calcul modifiables par l'utilisateur ============*
  23. * Option pour avoir un maillage fin
  24. * b_mfin = VRAI ;
  25. b_mfin = FAUX ;
  26.  
  27. * Mettre VRAI si l'on souhaite divers traces.
  28. GRAPH = FAUX ;
  29. * GRAPH = VRAI ;
  30. *=========== FIN Options modifiables par l'utilisateur ========================*
  31.  
  32. *=========== DEBUT Quelques variables d'environnement =========================*
  33. str_ver = 'VENV' 'CASTEM_VERSION' ;
  34. 'SI' ('EGA' str_ver ' ') ;
  35. * Pour la version du jour
  36. str_ver = 99999 ;
  37. 'SINON' ;
  38. * Pour les versions officielles
  39. str_ver = 'ENTI' str_ver ;
  40. 'FINSI' ;
  41.  
  42. str_hho = 'VENV' 'CASTEM_HHO_ROOT' ;
  43. 'SI' ('EGA' str_hho ' ') ;
  44. ** 'MESS' '--> INHIBITION TEST - Cast3M' str_ver ' <--' ;
  45. 'MESS' ;
  46. 'MESS' '!!!----- Version de Cast3M sans HHO -----!!!' ;
  47. 'MESS' '!!! Variable CASTEM_HHO_ROOT non definie !!!' ;
  48. 'MESS' '!!! Cas-test non execute - Fin immediate !!!';
  49. 'FIN' ;
  50. 'FINSI' ;
  51. *=========== FIN Quelques variables d'environnement ===========================*
  52.  
  53. 'OPTION' 'DIME' 2 'MODE' 'PLAN' 'CONT' 'ECHO' 0 ;
  54.  
  55. title = 'CHAINE' 'MOONEY-RIVLIN - TRACTION UNIAXIALE Y' ;
  56.  
  57. *======================================================================*
  58. * Geometrie - Maillage *
  59. *======================================================================*
  60. * Longueur (direction x) de la plaque/membrane :
  61. Lg_x = 1. ;
  62. * Largeur (direction y) de la plaque/membrane :
  63. Lg_y = 1. ;
  64. * Nombre d'elements selon les directions x et y :
  65. 'SI' b_mfin ;
  66. Nel_x = 24 ;
  67. Nel_y = 24 ;
  68. 'SINON' ;
  69. Nel_x = 5 ;
  70. Nel_y = 5 ;
  71. 'FINSI' ;
  72. *
  73. 'OPTION' 'ELEM' 'TRI3' ;
  74. *'OPTION' 'ELEM' 'POLY' ;
  75. *
  76. P1 = 0. 0. ;
  77. P2 = Lg_x 0. ;
  78. P3 = Lg_x Lg_y ;
  79. P4 = 0. Lg_y ;
  80. *
  81. L1 = 'DROITE' Nel_x P1 P2 ;
  82. L2 = 'DROITE' Nel_y P2 P3 ;
  83. L3 = 'DROITE' Nel_x P3 P4 ;
  84. L4 = 'DROITE' Nel_y P4 P1 ;
  85. *
  86. SU = 'DALLER' L1 L2 L3 L4 ;
  87.  
  88. 'SI' GRAPH ;
  89. 'TRACER' SU 'TITRE' ('CHAINE' title ' - MAILLAGE') ;
  90. 'FINSI' ;
  91.  
  92. *======================================================================*
  93. * Modele - Materiau - Caracteristiques (en Pa) *
  94. *======================================================================*
  95. 'SI' (('NEG' ('VALEUR' 'DIME') 2) 'ET'
  96. ('NEG' ('VALEUR' 'MODE') 'PLANCONT')) ;
  97. 'MESS' 'Ce modele ne fonctionne qu en 2D CONTRAINTES PLANES' ;
  98. 'ERREUR' 5 ;
  99. 'FINSI' ;
  100. *
  101. * Ne pas oublier de definir les parametres lies a l'elasticite.
  102. * Meme si ce n'est pas utilise dans le modele, cela est utile pour
  103. * l'operateur de convergence mecanique de PASAPAS-INCREME.
  104. *
  105. * Pour la Formulation HHO : on utilise degre 1 en cellule et degre 1 en face
  106. *
  107. LCMAT = 'MOTS' 'YOUN' 'NU ' 'C1 ' 'C2 ' ;
  108. MO = MODE SU 'MECANIQUE' 'ELASTIQUE' 'ISOTROPE'
  109. 'NON_LINEAIRE' 'UTILISATEUR'
  110. 'HHO_1_1_ft'
  111. 'NUME_LOI' 31 'C_MATERIAU' LCMAT ;
  112. *
  113. * Coefficients du modele de Mooney-Rivlin (en Pa) :
  114. C1 = 0.183E+6 ; C2 = 0.0034E+6 ;
  115. *
  116. * On fixe le coefficient de Poisson XNU a une valeur proche de 0.5
  117. * du fait de l'incompressibilite inherente au modele.
  118. * Le module de Young YOU est alors connu, car, pour ce modele, le
  119. * module de cisaillement MU vaut : MU = YOU/(2*(1+XNU)) = 2.(C1+C2)
  120. * Il s'agit de la valeur initiale et de la borne inferieure dans le cas
  121. * de la traction. En fonction du niveau de deformation atteinte en
  122. * traction, il faut augmenter cette valeur afin de pouvoir faire
  123. * converger les calculs (module tangent en fin de calculs).
  124. * Prendre des valeurs superieures n'entraine pas de modification des
  125. * resultats, cela modifie seulement le nombre d'iterations mecaniques.
  126. *
  127. XNU = 0.497 ;
  128. YOUini = 3.*(2.*(C1+C2)) ; YOU = 100. * YOUini ;
  129. *
  130. MA = 'MATERIAU' MO 'YOUN' YOU 'NU ' XNU
  131. 'STAB' (YOU / (1. + XNU))
  132. 'C1 ' C1 'C2 ' C2 ;
  133.  
  134. *======================================================================*
  135. * Conditions aux limites - Traction suivant UY *
  136. *======================================================================*
  137. HHO_Pts_F = ('EXTRAIRE' Mo 'HHO_PFAC') 'COUL' 'BLEU' ;
  138. HHO_Pts_C = ('EXTRAIRE' Mo 'HHO_PCEL') 'COUL' 'VIOL' ;
  139. 'SI' GRAPH ;
  140. HHO_Pts_M = HHO_Pts_F 'ET' HHO_Pts_C ;
  141. tracer (SU et hho_pts_M) 'TITRE' 'HHO DO IT - Maillage et HHO_Pts' ;
  142. 'FINSI' ;
  143.  
  144. HHO_CL1 = 'POINT' HHO_Pts_F 'DROITE' ('POIN' L1 'INIT') ('POIN' L1 'FINA') 1.E-9 ;
  145. HHO_CL1 = 'COUL' HHO_CL1 'BLEU' ;
  146. HHO_CL3 = 'POINT' HHO_Pts_F 'DROITE' ('POIN' L3 'INIT') ('POIN' L3 'FINA') 1.E-9 ;
  147. HHO_CL3 = 'COUL' HHO_CL3 'VERT' ;
  148. * On va recuperer la face de L1 qui touche P1
  149. mail_P1 = 'ELEMENT' SU 'CONTENANT' P1 'TOUS' ;
  150. modl_p1 = 'REDU' Mo mail_P1 ;
  151. HHO_P1_F = ('EXTRAIRE' Modl_P1 'HHO_PFAC') 'COUL' 'ROUG' ;
  152. HHO_CL2 = 'POINT' HHO_P1_F 'DROITE' ('POIN' L1 'INIT') ('POIN' L1 'FINA') 1.E-9 ;
  153. HHO_CL2 = 'COUL' HHO_CL2 'ROUG' ;
  154.  
  155. 'SI' GRAPH ;
  156. HHO_Lig_M = ('EXTRAIRE' Mo 'HHO_FACE') 'COULEUR' 'ORAN' ;
  157. tracer (su et hho_cl2) 'TITRE' 'HHO DO IT - Maillage et HHO_CL2' ;
  158. tracer (su et hho_lig_M et hho_cl1 et hho_cl2 et hho_cl3) 'TITRE' 'HHO DO IT - Maillage et HHO_CL*' ;
  159. 'FINSI' ;
  160.  
  161. CL2X = 'BLOQUE' 'UXF0' HHO_CL2 ;
  162. CL1Y = 'BLOQUE' 'UYF0' 'UYF1' HHO_CL1 ;
  163. CL3Y0 = 'BLOQUE' 'UYF0' HHO_CL3 ;
  164. CL3Y1 = 'BLOQUE' 'UYF1' HHO_CL3 ;
  165.  
  166. BLTOT = CL2X 'ET' CL1Y 'ET' CL3Y0 'ET' CL3Y1 ;
  167. *
  168. * Definition des instants du chargement :
  169. t_deb = 0. ; t_fin = 10. ;
  170. L_tps = 'PROG' t_deb t_fin ;
  171. * Deplacement suivant Y :
  172. L_UY = 'PROG' 0. ( 3. * Lg_y) ;
  173. FF_y = 'DEPIMP' CL3Y0 1. ;
  174. EV_y = 'EVOL' 'MANU' 'TEMPS' L_tps 'LAMY' L_UY ;
  175. CHARTOT = 'CHARGEMENT' 'DIMP' FF_y EV_y ;
  176.  
  177. *======================================================================*
  178. * Initialisation de la table pour appel a PASAPAS *
  179. *======================================================================*
  180. TAB1 = 'TABLE' ;
  181. TAB1.'MODELE' = MO ;
  182. TAB1.'CARACTERISTIQUES' = MA ;
  183. TAB1.'BLOCAGES_MECANIQUES' = BLTOT ;
  184. TAB1.'CHARGEMENT' = CHARTOT ;
  185. *TAB1.'PRECISION' = 1.E-5 ;
  186. TAB1.'CONVERGENCE_FORCEE' = FAUX ;
  187. TAB1.'GRANDS_DEPLACEMENTS' = VRAI ;
  188. TAB1.'K_SIGMA' = FAUX ;
  189. TAB1.'HYPOTHESE_DEFORMATIONS' = MOT 'UTILISATEUR' ;
  190. TAB1.'TEMPS_CALCULES' = 'PROG' t_deb 'PAS' 0.1 t_fin ;
  191. TAB1.'TEMPS_SAUVES' = 'PROG' t_deb 'PAS' 0.5 t_fin ;
  192. * Pour n'avoir qu'un increment par iteration !
  193. TAB1.'SOUS_INCREMENT' = 1 ;
  194. **TAB1.'PROCESSEURS' = 'MOT' 'COMPORTEMENT' ;
  195. *
  196. PASAPAS TAB1 ;
  197. *
  198. L_abs = TAB1.'TEMPS_SAUVES' ;
  199. n_abs = 'DIMENSION' L_abs ;
  200. *
  201. *======================================================================*
  202. * Construction de la solution analytique *
  203. *======================================================================*
  204. * Definitions :
  205. * - Allongement selon direction y : Lamy = 1 + (UY/Lg_y)
  206. * - Densite d'energie de deformation hyperelastique : W(I1,I2)
  207. * - I1, I2 : trois invariants du tenseur de Cauchy-Green droit
  208. * Dans le cas du modele de Mooney-Rivlin :
  209. * W = C1*(I1-3.)+C2*(I2-3.) , soit dW/dI1 = C1 et dW/dI2 = C2
  210. *
  211. * Les contraintes de Cauchy sont calculables analytiquement :
  212. * - SCxx = 0.
  213. * - SCyy = 2.(Lamy**2 - 1./Lamy).(dW/dI1 + 1./Lamy.dW/dI2)
  214. * - SCxy = 0 (pas de cisaillement)
  215. * - SCzz = 0 (hypothese des contraintes planes)
  216. *
  217. L_Un = 'PROG' n_abs '*' 1. ;
  218. Lamy = L_Un + (('IPOL' L_abs L_tps L_UY) / Lg_Y) ;
  219. *
  220. SCxx_th = 0. * L_Un ;
  221. L_z1 = Lamy * Lamy ; L_z2 = L_Un / Lamy ;
  222. SCyy_th = (L_z1 - L_z2) * ((2.*C1*L_Un) + (2.*C2*L_z2)) ;
  223. SCxy_th = 0. * L_Un ;
  224.  
  225. *======================================================================*
  226. * Comparaison des resultats avec la solution analytique *
  227. *======================================================================*
  228. * La comparaison s'effectue entre les valeurs moyennes des contraintes
  229. * calculees et les solutions analytiques correspondantes.
  230. * On ne cherche pas a verifier l'uniformite du champ de contraintes.
  231. * (Faire le calcul en mettant GRAPH a VRAI et voir les isovaleurs !)
  232. *
  233. TabD = TAB1.'DEPLACEMENTS' ;
  234. TabS = TAB1.'CONTRAINTES' ;
  235. Confini = 'FORM' ;
  236. ChmUn = 'MANU' 'CHML' MO 'SCAL' 1. ;
  237.  
  238. SCxx = 'PROG' 0. ;
  239. SCyy = 'PROG' 0. ;
  240. SCxy = 'PROG' 0. ;
  241. 'REPETER' Boucle (n_abs - 1) ;
  242. 'FORM' (TabD.&Boucle) ;
  243. VolSU = 'INTG' MO ChmUn MA ;
  244. SCxx = SCxx 'ET' ('PROG' (('INTG' MO (TabS. &Boucle) 'SMXX' MA)/VolSU)) ;
  245. SCyy = SCyy 'ET' ('PROG' (('INTG' MO (TabS. &Boucle) 'SMYY' MA)/VolSU)) ;
  246. SCxy = SCxy 'ET' ('PROG' (('INTG' MO (TabS. &Boucle) 'SMXY' MA)/VolSU)) ;
  247. 'FORM' Confini ;
  248. 'FIN' Boucle ;
  249. *
  250. 'SI' GRAPH ;
  251. tlege = 'TABLE' ;
  252. tlege. 1 = 'MARQ CROI' ;
  253. tlege.'TITRE' = 'TABLE' ;
  254. tlege.'TITRE'. 1 = 'Numerique' ;
  255. tlege.'TITRE'. 2 = 'Analytique' ;
  256. Evxx = 'EVOL' 'ROUG' 'MANU' 'LAMB' L_abs 'SCXX' SCxx ;
  257. Evxx_th = 'EVOL' 'BLEU' 'MANU' 'LAMB' L_abs 'SCXX' SCxx_th ;
  258. 'DESSIN' (Evxx 'ET' Evxx_th) 'LEGE' tlege
  259. 'TITRE' ('CHAINE' title ' - CONTRAINTE DE CAUCHY XX (Pa)') ;
  260. Evyy = 'EVOL' 'ROUG' 'MANU' 'LAMB' L_abs 'SCYY' SCyy ;
  261. Evyy_th = 'EVOL' 'BLEU' 'MANU' 'LAMB' L_abs 'SCYY' SCyy_th ;
  262. 'DESSIN' (Evyy 'ET' Evyy_th) 'LEGE' tlege
  263. 'TITRE' ('CHAINE' title ' - CONTRAINTE DE CAUCHY YY (Pa)') ;
  264. Evxy = 'EVOL' 'ROUG' 'MANU' 'LAMB' L_abs 'SCXY' SCxy ;
  265. Evxy_th = 'EVOL' 'BLEU' 'MANU' 'LAMB' L_abs 'SCXY' SCxy_th ;
  266. 'DESSIN' (Evxy 'ET' Evxy_th) 'LEGE' tlege
  267. 'TITRE' ('CHAINE' title ' - CONTRAINTE DE CAUCHY XY (Pa)');
  268. 'FINSI' ;
  269. *
  270. * Tests de bon fonctionnement :
  271. r_z = 'MAXIMUM' ('ABS' SCyy_th) ;
  272. r_xx = 'MAXIMUM' ('ABS' (SCxx - SCxx_th)) / r_z ;
  273. r_yy = 'MAXIMUM' ('ABS' (SCyy - SCyy_th)) / r_z ;
  274. r_xy = 'MAXIMUM' ('ABS' (SCxy - SCxy_th)) / r_z ;
  275. *
  276. 'SAUTER' 1 'LIGNE' ;
  277. MESS ' RESULTATS : ' title ;
  278. MESS ' ------------------------------------------------- ';
  279. 'SAUTER' 1 'LIGNE' ;
  280. 'MESS' ' Tests de bon fonctionnement :' ;
  281. 'MESS' ' -------------------------------' ;
  282. 'MESS' ' Comparaison effectuee sur les contraintes de Cauchy' ;
  283. 'MESS' ' Ecart relatif maximal entre la valeur moyenne calculee' ;
  284. 'MESS' ' et la solution analytique associee' ;
  285. 'MESS' ' Composante XX : ' r_xx ;
  286. 'MESS' ' Composante YY : ' r_yy ;
  287. 'MESS' ' Composante XY : ' r_xy ;
  288. 'SAUTER' 1 'LIGNE' ;
  289. * Ecart relatif maximal tolere
  290. Sigref = 5.E-3 ;
  291. 'SI' ('>EG' ('MAXIMUM' ('PROG' r_xx r_yy r_xy)) Sigref) ;
  292. 'MESS' ' ---------------------' ;
  293. 'MESS' ' ECHEC DU CAS-TEST !' ;
  294. 'MESS' ' ---------------------' ;
  295. 'ERREUR' 5 ;
  296. 'SINON' ;
  297. 'MESS' ' ----------------------' ;
  298. 'MESS' ' SUCCES DU CAS-TEST !' ;
  299. 'MESS' ' ----------------------' ;
  300. 'FINSI' ;
  301. 'SAUTER' 1 'LIGNE' ;
  302.  
  303. 'FIN' ;
  304.  
  305.  
  306.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales