Télécharger umat.eso

Retour à la liste

Numérotation des lignes :

umat
  1. C UMAT SOURCE CHAT 11/03/16 21:32:49 6902
  2. SUBROUTINE UMAT ( STRESS, STATEV, DDSDDE, SSE, SPD, SCD,
  3. & RPL, DDSDDT, DRPLDE, DRPLDT,
  4. & STRAN, DSTRAN, TIME, DTIME,
  5. & TEMP, DTEMP, PREDEF, DPRED,
  6. & CMNAME, NDI, NSHR, NTENS, NSTATV,
  7. & PROPS, NPROPS, COORDS,
  8. & DROT, PNEWDT, CELENT, DFGRD0, DFGRD1,
  9. & NOEL, NPT, LAYER, KSPT, KSTEP, KINC )
  10.  
  11. IMPLICIT INTEGER(I-N)
  12. IMPLICIT REAL*8(A-H,O-Z)
  13.  
  14. C-----------------------------------------------------------------------
  15. C
  16. C DESCRIPTION FONCTIONNELLE :
  17. C -------------------------
  18. C
  19. C Version du module externe UMAT integree au code pour eviter tout
  20. C probleme d'edition de lien et pour permettre le passage de tests
  21. C de non regression.
  22. C
  23. C En utilisation normale, ce module doit etre surcharge par celui
  24. C de meme nom fourni par l'utilisateur.
  25. C
  26. C Si cette version de UMAT est appelee, cela signifie qu'il n'y a
  27. C pas eu surcharge par le module utilisateur
  28. C ATTENTION : si l'utilisateur oublie de surcharger et affecte a sa
  29. C loi le meme numero que l'un de ceux pris en charge ci-apres, il y
  30. C a risque d'erreur non controlee a l'execution.
  31. C
  32. C CONVENTION : on autorise la programmation de l'utilisateur a se
  33. C servir de KINC comme code retour, de la meme maniere que l'on
  34. C s'en sert ci-dessous. Regles a respecter :
  35. C 1 - Pas d'initialisation superflue de KINC en entrant dans UMAT.
  36. C KINC est initialise a 1 par WKUMA0, avant l'appel a UMAT.
  37. C 2 - En cas d'erreur, KINC est affecte d'une valeur differente de 1
  38. C
  39. C Dans ce dernier cas, l'utilisateur a la possibilite de completer
  40. C le message d'erreur affiche (de numero 965) en surchargeant le
  41. C sousprogramme UMAERR (umaerr.eso).
  42. C
  43. C-----------------------------------------------------------------------
  44. C
  45. C DESCRIPTION DE L'INTERFACE :
  46. C --------------------------
  47. C
  48. C IN/OUT : STRESS : REAL*8(NTENS), tenseur des contraintes
  49. C En entree : tenseur des contraintes a t0
  50. C En sortie : tenseur des contraintes a t0+dt
  51. C Dans le cas des grandes transformations, il
  52. C s'agit des contraintes de Cauchy ("actuelles").
  53. C IN/OUT : STATEV : REAL*8(*), variables internes
  54. C En entree : variables internes a t0
  55. C En sortie : variables internes a t0+dt
  56. C
  57. C
  58. C OUT : DDSDDE : REAL*8(NTENS,NTENS), matrice jacobienne du
  59. C modele (matrice de Hooke tangente) a t0+dt
  60. C Sortie facultative, non exploitee par CAST3M
  61. C pour l'instant
  62. C
  63. C IN/OUT : SSE : REAL*8, energie de deformation elastique
  64. C SPD : REAL*8, dissipation plastique
  65. C SCD : REAL*8, dissipation visqueuse
  66. C Valeurs a t0 en entree, a t0+dt en sortie
  67. C Entrees/sorties facultatives, non exploitees par
  68. C CAST3M pour l'instant
  69. C
  70. C
  71. C OUT : RPL : REAL*8, puissance calorifique volumique degagee
  72. C par le travail mecanique, a t0+dt
  73. C DDSDDT : REAL*8(NTENS),derivee du tenseur des contraintes
  74. C par rapport a la temperature, a t0+dt
  75. C DRPLDE : REAL*8(NTENS), derivees de RPL par rapport aux
  76. C composantes du tenseur des deformations, a t0+dt
  77. C DRPLDT : REAL*8, derivee de RPL par rapport a la
  78. C temperature, a t0+dt
  79. C Sorties facultatives, non exploitees par CAST3M
  80. C pour l'instant
  81. C Ces sorties sont prevues pour un couplage fort
  82. C entre thermique et mecanique
  83. C
  84. C
  85. C IN : STRAN : REAL*8(NTENS), tenseur des deformations
  86. C totales a t0
  87. C DSTRAN : REAL*8(NTENS), tenseur des increments de
  88. C deformation totale par rapport a l'etat
  89. C de reference a t0
  90. C
  91. C
  92. C IN : TIME : REAL*8(2), TIME(1) = 0
  93. C TIME(2) = t0
  94. C DTIME : REAL*8, DTIME = dt
  95. C t0 : precedent instant d'equilibre atteint
  96. C dt : nouveau pas de temps propose par PASAPAS
  97. C pour atteindre l'equilibre avec l'increment de
  98. C deformation totale impose (DSTRAN)
  99. C Remarque : les notions attachees a ces entrees
  100. C sont differentes lorsque l'on adhere a ABAQUS
  101. C (dans ce cas la variable TIME(1) a son utilite)
  102. C
  103. C
  104. C IN : TEMP : REAL*8, temperature a t0
  105. C DTEMP : REAL*8, increment de temperature a t0+dt
  106. C PREDEF : REAL*8(*), vecteur des parametres externes de
  107. C la loi de comportement, valeurs a t0
  108. C DPRED : REAL*8(*), increments des parametres externes
  109. C a t0+dt
  110. C
  111. C
  112. C IN : CMNAME : CHARACTER*16, identifiant de la loi de
  113. C comportement
  114. C On conserve le type 'chaine de caracteres' pour
  115. C l'identifiant de la loi, afin de preserver la
  116. C compatibilite avec ABAQUS.
  117. C Dans le cas d'une adherence a CAST3M, la loi est
  118. C identifiee par le numero qui lui a ete attribue:
  119. C argument 'NUME_LOI' de l'operateur MODE.
  120. C Par convention, ce numero est encode dans les 4
  121. C derniers caracteres de la chaine, et doit etre
  122. C recupere dans UMAT par une instruction du type
  123. C K4ILOI = CMNAME(13:16)
  124. C avec K4ILOI variable locale de type CHARACTER*4
  125. C
  126. C
  127. C IN : NDI : INTEGER definissant le type de calcul CAST3M
  128. C = 2 : tridimensionnel (3D)
  129. C = 0 : axisymetrie (2D)
  130. C = -1 : deformations planes (2D)
  131. C = -2 : contraintes planes (2D)
  132. C = -3 : deformations planes generalisees (2D)
  133. C = 3 a 11 : unidimensionnel plan (massif 1D)
  134. C = 12 a 14 : unidimensionnel axisymetrique (massif 1D)
  135. C = 15 : unidimensionnel spherique (massif 1D)
  136. C
  137. C
  138. C IN : NSHR : INTEGER, nombre de composantes extradiagonales
  139. C du tenseur des contraintes
  140. C Entree non active dans le cas d'une adherence
  141. C a CAST3M
  142. C
  143. C
  144. C IN : NTENS : INTEGER, nombre de composantes du tenseur des
  145. C contraintes
  146. C NSTATV : INTEGER, nombre de variables internes
  147. C
  148. C
  149. C IN : PROPS : REAL*8(NPROPS), vecteur des constantes
  150. C de materiau
  151. C N.B. Il peut s'agir de coefficients constants
  152. C intervenant dans des formules analytiques
  153. C decrivant les evolutions des proprietes du
  154. C materiau en fonction de la temperature et/ou
  155. C d'autres parametres externes.
  156. C OU il peut s'agir plus simplement de proprietes
  157. C de materiau constantes.
  158. C NPROPS : INTEGER, nombre de constantes de materiau
  159. C
  160. C
  161. C IN : COORDS : REAL*8(3), coordonnees cartesiennes du point
  162. C d'integration courant
  163. C
  164. C
  165. C IN : DROT : REAL*8(3,3)
  166. C Dans le cas d'une adherence a CAST3M
  167. C ------------------------------------
  168. C Matrice de passage du repere local de l'element
  169. C fini massif au repere general du maillage
  170. C DROT(l,c) : composante l du vecteur c de la base
  171. C locale dans la base generale
  172. C Entree non active pour les elements finis non
  173. C massifs
  174. C Dans le cas d'une adherence a ABAQUS
  175. C ------------------------------------
  176. C Matrice d'increments de rotation
  177. C Cette matrice decrit la rotation sur le pas de
  178. C temps de la base dans laquelle sont exprimes
  179. C les tenseurs de contraintes et de deformations
  180. C
  181. C
  182. C OUT : PNEWDT : REAL*8, rapport entre le nouveau pas de temps
  183. C suggere et le pas de temps donne en entree
  184. C (NEWDT = PNEWDT * DTIME)
  185. C
  186. C
  187. C IN : CELENT : REAL*8, longueur caracteristique de l'element
  188. C Dans le cas d'une adherence a CAST3M, cette
  189. C longueur caracteristique est determinee par
  190. C LOCARA comme la distance maximale entre deux
  191. C noeuds de l'element.
  192. C
  193. C
  194. C IN : DFGRD0 : REAL*8(3,3), tenseur gradient de deplacement
  195. C a t0
  196. C DFGRD1 : REAL*8(3,3), tenseur gradient de deplacement
  197. C a t0+dt
  198. C
  199. C
  200. C IN : NOEL : INTEGER, numero de l'element courant
  201. C NPT : INTEGER, numero du point d'integration courant
  202. C
  203. C
  204. C IN : LAYER : INTEGER, numero de couche pour des coques
  205. C composites ou des solides multi-couches
  206. C KSPT : INTEGER, numero de section dans la couche
  207. C courante
  208. C Entrees non actives dans le cas d'une adherence
  209. C a CAST3M
  210. C
  211. C
  212. C IN : KSTEP : INTEGER
  213. C IN : KINC : INTEGER
  214. C Entrees n'ayant pas de sens dans le cas
  215. C d'une adherence a CAST3M
  216. C
  217. C-----------------------------------------------------------------------
  218. C
  219. C MODELES PRIS EN CHARGE par le module UMAT 'bouchon' :
  220. C ---------------------------------------------------
  221. C
  222. C ILOI = 10 : ELASTICITE ISOTROPE ISOTHERME
  223. C FORMULATION MASSIVE
  224. C
  225. C ILOI = 11 : ELASTICITE ISOTROPE NON ISOTHERME
  226. C FORMULATION MASSIVE
  227. C La temperature 'TETA' est definie en tant que
  228. C parametre externe
  229. C => Instanciation du materiau et prise en charge de la
  230. C dilatation thermique dans UMAT
  231. C
  232. C ILOI = 12 : ELASTICITE ORTHOTROPE ISOTHERME
  233. C FORMULATION MASSIVE
  234. C
  235. C ILOI = 21 : Modele 'FLUAGE' 'POLYNOMIAL' de CAST3M, INPLAS=21
  236. C RESTRICTION A LA FORMULATION MASSIVE
  237. C
  238. C ILOI = 22 : Modele 'FLUAGE' 'POLYNOMIAL' de CAST3M, INPLAS=21
  239. C RESTRICTION A LA FORMULATION MASSIVE
  240. C Instanciation des composantes de materiau au fur et a
  241. C mesure des iterations internes.
  242. C Le modele comprend cette fois des parametres externes.
  243. C Les composantes de materiau sont evaluees par les
  244. C memes fonctions externes que celles utilisees par
  245. C l'operateur VARI.
  246. C MODELE 'MAQUETTE'
  247. C
  248. C ILOI = 7 : Modele 'VISCOPLASTIQUE' 'GATT_MONERIE' de CAST3M,
  249. C INPLAS=107
  250. C RESTRICTION A LA FORMULATION MASSIVE
  251. C
  252. C ILOI = 5 : Modele 'PLASTIQUE' 'ISOTROPE' de CAST3M, INPLAS=5
  253. C RESTRICTION A LA FORMULATION MASSIVE
  254. C
  255. C ILOI = 31 : Modele MOONEY-RIVLIN en GRANDES TRANSFORMATIONS
  256. C Cas des CONTRAINTES PLANES dans la direction 3 (2D/3D)
  257. C Restriction a la formulation MASSIVE
  258. C
  259. C ILOI = 32 : Modele NEO-HOOKIEN en GRANDES TRANSFORMATIONS
  260. C Restriction a la formulation MASSIVE
  261. C
  262. C-----------------------------------------------------------------------
  263. C Arguments de l'interface
  264. C
  265. CHARACTER*16 CMNAME
  266. C
  267. INTEGER NDI, NSHR, NTENS, NSTATV, NPROPS,
  268. & NOEL, NPT, LAYER, KSPT, KSTEP, KINC
  269. C
  270. REAL*8 STRESS(NTENS), STATEV(*),
  271. & DDSDDE(NTENS,NTENS),
  272. & SSE, SPD, SCD,
  273. & RPL, DDSDDT(NTENS), DRPLDE(NTENS), DRPLDT,
  274. & STRAN(NTENS), DSTRAN(NTENS),
  275. & TIME(2), DTIME,
  276. & TEMP, DTEMP, PREDEF(*), DPRED(*),
  277. & PROPS(NPROPS),
  278. & COORDS(3),
  279. & DROT(3,3),
  280. & PNEWDT,
  281. & CELENT,
  282. & DFGRD0(3,3), DFGRD1(3,3)
  283. C
  284. C Variables locales
  285. C
  286. CHARACTER*4 K4ILOI
  287. C
  288. PARAMETER(UN=1.D0,DEUX=2.D0,UNDEMI=.5D0)
  289. C
  290. REAL*8 YOUN, NU, BULK3, G2, LAM, EPST0(6), DEPST(6),
  291. & TETA0, DTETA, TETAF, ALPH, TREF, DYDT, DNDT,
  292. & YOUN0, NU0, BULK30, G20, LAM0,
  293. & YOUNF, NUF, BULK3F, G2F, LAMF,
  294. & DELDSE(6,6), ETHERM(6), DTHERM(6),
  295. & YREF, NREF, EPSE0(6), DEPSE(6),DHOOK(6,6),
  296. & DSIG2(3,3),DEPST2(3,3),TENS(3,3),DSIG(6),
  297. & V1(3),V2(3),V3(3),V(3,3),P(3,3)
  298. C
  299. C
  300. C---------------------- Debut du code executable -----------------------
  301. C
  302. C
  303. K4ILOI = CMNAME(13:16)
  304. C
  305. C=======================================================================
  306. C ELASTICITE ISOTROPE ISOTHERME
  307. C=======================================================================
  308. C
  309. IF (K4ILOI.EQ.' 10') THEN
  310. C
  311. C-----------------------------------------------------------------------
  312. C Constantes de materiau
  313. C ----------------------
  314. C PROPS(1) : YOUN Module d'Young
  315. C PROPS(2) : NU Coefficient de Poisson
  316. C-----------------------------------------------------------------------
  317. C
  318. C Recuperation des constantes de materiau
  319. C
  320. YOUN = PROPS(1)
  321. NU = PROPS(2)
  322. C
  323. C Calcul de la matrice de Hooke (constante)
  324. C Hypotheses : NTENS=6
  325. C les composantes diagonales sont les 3 premieres
  326. C
  327. BULK3 = YOUN/(1.0D0-2.0D0*NU)
  328. G2 = YOUN/(1.0D0+NU)
  329. LAM = (BULK3-G2)/3.0D0
  330. C
  331. DO 100 J=1,NTENS
  332. DO 101 I=1,NTENS
  333. DDSDDE(I,J)=0.0D0
  334. 101 CONTINUE
  335. 100 CONTINUE
  336. C
  337. DO 110 J=2,3
  338. DO 111 I=1,J-1
  339. DDSDDE(I,J)=LAM
  340. DDSDDE(J,I)=LAM
  341. 111 CONTINUE
  342. 110 CONTINUE
  343. DO 112 J=1,3
  344. DDSDDE(J,J)=G2+LAM
  345. 112 CONTINUE
  346. DO 113 J=4,6
  347. DDSDDE(J,J)=G2
  348. 113 CONTINUE
  349. C
  350. C Deformations : gamma -> epsilon pour les termes extradiagonaux
  351. C Uniquement sur les increments car on n'a pas besoin des cumuls
  352. C
  353. DO 120 J=1,3
  354. DEPST(J)=DSTRAN(J)
  355. 120 CONTINUE
  356. DO 121 J=4,6
  357. DEPST(J)=DSTRAN(J)/2.0D0
  358. 121 CONTINUE
  359. C
  360. C Calcul des contraintes a la fin du pas
  361. C
  362. DO 130 J=1,NTENS
  363. DO 131 I=1,NTENS
  364. STRESS(I)=STRESS(I)+DDSDDE(I,J)*DEPST(J)
  365. 131 CONTINUE
  366. 130 CONTINUE
  367. C
  368. C=======================================================================
  369. C ELASTICITE ISOTROPE NON ISOTHERME, premier modele
  370. C La temperature 'TETA' est definie en tant que parametre externe
  371. C => Instanciation du materiau et prise en charge de la dilatation
  372. C thermique dans UMAT
  373. C=======================================================================
  374. C
  375. ELSE IF (K4ILOI.EQ.' 11') THEN
  376. C
  377. C-----------------------------------------------------------------------
  378. C Variables internes du modele
  379. C ----------------------------
  380. C
  381. C STATEV( 1): EEXX Deformation elastique XX
  382. C STATEV( 2): EEYY Deformation elastique YY
  383. C STATEV( 3): EEZZ Deformation elastique ZZ
  384. C STATEV( 4): EEXY Deformation elastique XY
  385. C STATEV( 5): EEXZ Deformation elastique XZ
  386. C STATEV( 6): EEYZ Deformation elastique YZ
  387. C
  388. C STATEV( 7): ETXX Deformation thermique XX
  389. C STATEV( 8): ETYY Deformation thermique YY
  390. C STATEV( 9): ETZZ Deformation thermique ZZ
  391. C STATEV(10): ETXY Deformation thermique XY
  392. C STATEV(11): ETXZ Deformation thermique XZ
  393. C STATEV(12): ETYZ Deformation thermique YZ
  394. C
  395. C Parametres externes du modele
  396. C -----------------------------
  397. C
  398. C PREDEF(1) : TETA Temperature
  399. C DPRED(1) : Variation de temperature sur le pas de temps
  400. C
  401. C N.B. On nomme 'TETA' la temperature afin de pouvoir prendre en
  402. C charge au niveau le plus bas l'instanciation du materiau
  403. C et la dilatation thermique
  404. C
  405. C Constantes de materiau
  406. C ----------------------
  407. C
  408. C PROPS(1) : YOUN Module d'Young a la temperature
  409. C de reference TREF
  410. C PROPS(2) : NU Coefficient de Poisson a la temperature
  411. C de reference TREF
  412. C PROPS(3) : ALPH Coefficient de dilatation thermique
  413. C (constant)
  414. C PROPS(4) : TREF Temperature de reference
  415. C PROPS(5) : DYDT Derivee du module d'Young par rapport
  416. C a la temperature
  417. C PROPS(6) : DNDT Derivee du coefficient de Poisson
  418. C par rapport a la temperature
  419. C-----------------------------------------------------------------------
  420. C
  421. C Recuperation des parametres externes du modele
  422. C
  423. TETA0 = PREDEF(1)
  424. DTETA = DPRED(1)
  425. TETAF = TETA0 + DTETA
  426. C
  427. C Recuperation des constantes de materiau
  428. C
  429. YOUN = PROPS(1)
  430. NU = PROPS(2)
  431. ALPH = PROPS(3)
  432. TREF = PROPS(4)
  433. DYDT = PROPS(5)
  434. DNDT = PROPS(6)
  435. C
  436. C Evaluation des proprietes de materiau au debut du pas
  437. C
  438. YOUN0 = YOUN + DYDT * (TETA0-TREF)
  439. NU0 = NU + DNDT * (TETA0-TREF)
  440. C
  441. BULK30 = YOUN0/(1.0D0-2.0D0*NU0)
  442. G20 = YOUN0/(1.0D0+NU0)
  443. LAM0 = (BULK30-G20)/3.0D0
  444. C
  445. C Evaluation des proprietes de materiau a la fin du pas
  446. C
  447. YOUNF = YOUN + DYDT * (TETAF-TREF)
  448. NUF = NU + DNDT * (TETAF-TREF)
  449. C
  450. BULK3F = YOUNF/(1.0D0-2.0D0*NUF)
  451. G2F = YOUNF/(1.0D0+NUF)
  452. LAMF = (BULK3F-G2F)/3.0D0
  453. C
  454. C Calcul de la matrice de Hooke a la fin du pas
  455. C Hypotheses : NTENS=6
  456. C les composantes diagonales sont les 3 premieres
  457. C
  458. DO 200 J=1,NTENS
  459. DO 201 I=1,NTENS
  460. DDSDDE(I,J)=0.0D0
  461. 201 CONTINUE
  462. 200 CONTINUE
  463. C
  464. DO 210 J=2,3
  465. DO 211 I=1,J-1
  466. DDSDDE(I,J)=LAMF
  467. DDSDDE(J,I)=LAMF
  468. 211 CONTINUE
  469. 210 CONTINUE
  470. DO 212 J=1,3
  471. DDSDDE(J,J)=G2F+LAMF
  472. 212 CONTINUE
  473. DO 213 J=4,6
  474. DDSDDE(J,J)=G2F
  475. 213 CONTINUE
  476. C
  477. C Calcul de la variation de la matrice de Hooke au cours du pas
  478. C
  479. DO 220 J=1,NTENS
  480. DO 221 I=1,NTENS
  481. DELDSE(I,J)=0.0D0
  482. 221 CONTINUE
  483. 220 CONTINUE
  484. C
  485. DO 230 J=2,3
  486. DO 231 I=1,J-1
  487. DELDSE(I,J)=LAMF-LAM0
  488. DELDSE(J,I)=LAMF-LAM0
  489. 231 CONTINUE
  490. 230 CONTINUE
  491. DO 232 J=1,3
  492. DELDSE(J,J)=(G2F+LAMF)-(G20+LAM0)
  493. 232 CONTINUE
  494. DO 233 J=4,6
  495. DELDSE(J,J)=G2F-G20
  496. 233 CONTINUE
  497. C
  498. C Calcul de la dilatation thermique au debut du pas et de
  499. C l'increment de dilatation thermique au cours du pas
  500. C
  501. DO 240 J=1,3
  502. ETHERM(J)=ALPH*(TETA0-TREF)
  503. 240 CONTINUE
  504. DO 241 J=4,6
  505. ETHERM(J)=0.0D0
  506. 241 CONTINUE
  507. C
  508. DO 242 J=1,3
  509. DTHERM(J)=ALPH*DTETA
  510. 242 CONTINUE
  511. DO 243 J=4,6
  512. DTHERM(J)=0.0D0
  513. 243 CONTINUE
  514. C
  515. C Deformations : gamma -> epsilon pour les termes extradiagonaux
  516. C
  517. DO 250 J=1,3
  518. EPST0(J)=STRAN(J)
  519. 250 CONTINUE
  520. DO 251 J=4,6
  521. EPST0(J)=STRAN(J)/2.0D0
  522. 251 CONTINUE
  523. DO 252 J=1,3
  524. DEPST(J)=DSTRAN(J)
  525. 252 CONTINUE
  526. DO 253 J=4,6
  527. DEPST(J)=DSTRAN(J)/2.0D0
  528. 253 CONTINUE
  529. C
  530. C Calcul des contraintes a la fin du pas
  531. C
  532. DO 260 J=1,NTENS
  533. DO 261 I=1,NTENS
  534. STRESS(I)=STRESS(I)+DDSDDE(I,J)*(DEPST(J)-DTHERM(J))
  535. & +DELDSE(I,J)*(EPST0(J)-ETHERM(J))
  536. 261 CONTINUE
  537. 260 CONTINUE
  538. C
  539. C Calcul de la dilatation thermique a la fin du pas
  540. C
  541. DO 270 J=1,NTENS
  542. STATEV(NTENS+J)=ETHERM(J)+DTHERM(J)
  543. 270 CONTINUE
  544. C
  545. C Calcul de la deformation elastique a la fin du pas
  546. C
  547. DO 280 J=1,NTENS
  548. STATEV(J)=EPST0(J)+DEPST(J)-STATEV(NTENS+J)
  549. 280 CONTINUE
  550. C
  551. C=======================================================================
  552. C ELASTICITE ORTHOTROPE ISOTHERME
  553. C=======================================================================
  554. C
  555. ELSE IF (K4ILOI.EQ.' 12') THEN
  556. C-----------------------------------------------------------------------
  557. C Constantes de materiau
  558. C ----------------------
  559. C PROPS(1-3) : Modules d'Young
  560. C PROPS(4-6) : Coefficients de Poisson
  561. C PROPS(7-9) : Modules de cisaillement
  562. C PROPS(10-18) : repere d'orthotropie / repere local
  563. C-----------------------------------------------------------------------
  564. C
  565. C Recuperation des constantes du materiau
  566. C
  567. YG1=PROPS(1)
  568. YG2=PROPS(2)
  569. YG3=PROPS(3)
  570. XNU12=PROPS(4)
  571. XNU23=PROPS(5)
  572. XNU13=PROPS(6)
  573. G12=PROPS(7)
  574. G23=PROPS(8)
  575. G13=PROPS(9)
  576. XNU21=(YG2/YG1)*XNU12
  577. XNU32=(YG3/YG2)*XNU23
  578. XNU31=(YG3/YG1)*XNU13
  579. AUX=(UN-XNU12*XNU21-XNU23*XNU32-XNU13*XNU31
  580. . -DEUX*XNU21*XNU32*XNU13)
  581. AUX1=AUX/YG1
  582. AUX2=AUX/YG2
  583. AUX3=AUX/YG3
  584. C-----------------------------------------------------------------------
  585. C
  586. C Construction de la matrice de Hooke dans repere d'orthotropie
  587. C
  588. CALL ZERO(DHOOK,6,6)
  589. DHOOK(1,1)=(UN-XNU23*XNU32)/AUX1
  590. DHOOK(1,2)=(XNU21+XNU31*XNU23)/AUX1
  591. DHOOK(2,1)=DHOOK(1,2)
  592. DHOOK(1,3)=(XNU31+XNU21*XNU32)/AUX1
  593. DHOOK(3,1)=DHOOK(1,3)
  594. DHOOK(2,2)=(UN-XNU13*XNU31)/AUX2
  595. DHOOK(2,3)=(XNU32+XNU12*XNU31)/AUX2
  596. DHOOK(3,2)=DHOOK(2,3)
  597. DHOOK(3,3)=(UN-XNU12*XNU21)/AUX3
  598. DHOOK(4,4)=DEUX * G12
  599. DHOOK(5,5)=DEUX * G13
  600. DHOOK(6,6)=DEUX * G23
  601. C-----------------------------------------------------------------------
  602. C
  603. C Recuperation des vecteurs d'orthotropie / repere local
  604. C
  605. V1(1)=PROPS(10)
  606. V1(2)=PROPS(11)
  607. V1(3)=PROPS(12)
  608. V2(1)=PROPS(13)
  609. V2(2)=PROPS(14)
  610. V2(3)=PROPS(15)
  611. CALL CROSS2(V1,V2,V3,IER)
  612. V(1,1)=V1(1)
  613. V(2,1)=V1(2)
  614. V(3,1)=V1(3)
  615. V(1,2)=V2(1)
  616. V(2,2)=V2(2)
  617. V(3,2)=V2(3)
  618. V(1,3)=V3(1)
  619. V(2,3)=V3(2)
  620. V(3,3)=V3(3)
  621. C----------------------------------------------------------------------------
  622. C
  623. C Expression des increments des deformations dans repere d'orthotropie
  624. C P : matrice de passage du repere global au repere d'orthotropie
  625. C
  626. CALL MULMAT(P,DROT,V,3,3,3)
  627. C
  628. DEPST2(1,1)=DSTRAN(1)
  629. DEPST2(2,2)=DSTRAN(2)
  630. DEPST2(3,3)=DSTRAN(3)
  631. DEPST2(1,2)=DSTRAN(4)/DEUX
  632. DEPST2(1,3)=DSTRAN(5)/DEUX
  633. DEPST2(2,3)=DSTRAN(6)/DEUX
  634. DEPST2(2,1)=DEPST2(1,2)
  635. DEPST2(3,1)=DEPST2(1,3)
  636. DEPST2(3,2)=DEPST2(2,3)
  637. CALL PRODT(TENS,DEPST2,P,3,3)
  638. C----------------------------------------------------------------------------
  639. C
  640. C Calcul des increments de contrainte dans le repere d'orthotropie
  641. C
  642. DEPST(1)=TENS(1,1)
  643. DEPST(2)=TENS(2,2)
  644. DEPST(3)=TENS(3,3)
  645. DEPST(4)=TENS(1,2)
  646. DEPST(5)=TENS(1,3)
  647. DEPST(6)=TENS(2,3)
  648. C
  649. DO 5500 I=1,6
  650. DSIG(I)=0.D0
  651. DO 55001 J=1,6
  652. DSIG(I)=DSIG(I)+DHOOK(I,J)*DEPST(J)
  653. 55001 CONTINUE
  654. 5500 CONTINUE
  655. C----------------------------------------------------------------------------
  656. C
  657. C Expression des increments de contrainte dans le repere global
  658. C
  659. DSIG2(1,1)=DSIG(1)
  660. DSIG2(2,2)=DSIG(2)
  661. DSIG2(3,3)=DSIG(3)
  662. DSIG2(1,2)=DSIG(4)
  663. DSIG2(1,3)=DSIG(5)
  664. DSIG2(2,3)=DSIG(6)
  665. DSIG2(2,1)=DSIG2(1,2)
  666. DSIG2(3,1)=DSIG2(1,3)
  667. DSIG2(3,2)=DSIG2(2,3)
  668. CALL TRPOSE(P)
  669. CALL PRODT(TENS,DSIG2,P,3,3)
  670. C----------------------------------------------------------------------------
  671. C
  672. C Calcul des contraintes a la fin du pas dans le repere global
  673. C
  674. STRESS(1)=STRESS(1)+TENS(1,1)
  675. STRESS(2)=STRESS(2)+TENS(2,2)
  676. STRESS(3)=STRESS(3)+TENS(3,3)
  677. STRESS(4)=STRESS(4)+TENS(1,2)
  678. STRESS(5)=STRESS(5)+TENS(1,3)
  679. STRESS(6)=STRESS(6)+TENS(2,3)
  680. C
  681. C=======================================================================
  682. C Modele 'FLUAGE' 'POLYNOMIAL' de CAST3M, INPLAS=21
  683. C RESTRICTION A LA FORMULATION MASSIVE
  684. C=======================================================================
  685. C
  686. ELSE IF (K4ILOI.EQ.' 21') THEN
  687. C
  688. CALL UMAPOL ( STRESS, STATEV, DDSDDE,
  689. & STRAN, DSTRAN, DTIME,
  690. & TEMP, DTEMP, PREDEF, DPRED,
  691. & NTENS, NSTATV,
  692. & PROPS, NPROPS, COORDS,
  693. & NOEL, NPT, KINC )
  694. C
  695. C=======================================================================
  696. C Modele 'FLUAGE' 'POLYNOMIAL' de CAST3M, INPLAS=21
  697. C RESTRICTION A LA FORMULATION MASSIVE
  698. C Instanciation des composantes de materiau au fur et a mesure des
  699. C iterations internes.
  700. C Le modele comprend cette fois des parametres externes.
  701. C Les composantes de materiau sont evaluees par les memes fonctions
  702. C externes que celles utilisees par l'operateur VARI.
  703. C MODELE 'MAQUETTE'
  704. C=======================================================================
  705. C
  706. ELSE IF (K4ILOI.EQ.' 22') THEN
  707. C
  708. CALL UMAPO2 ( STRESS, STATEV, DDSDDE,
  709. & STRAN, DSTRAN, DTIME,
  710. & TEMP, DTEMP, PREDEF, DPRED,
  711. & NTENS, NSTATV,
  712. & PROPS, NPROPS, COORDS,
  713. & NOEL, NPT, KINC )
  714. C
  715. C=======================================================================
  716. C Modele 'VISCOPLASTIQUE' 'GATT_MONERIE' de CAST3M, INPLAS=107
  717. C RESTRICTION A LA FORMULATION MASSIVE
  718. C=======================================================================
  719. C
  720. ELSE IF (K4ILOI.EQ.' 7') THEN
  721. C
  722. CALL UMAGAT ( STRESS, STATEV, DDSDDE,
  723. & STRAN, DSTRAN, DTIME,
  724. & TEMP, DTEMP, PREDEF, DPRED,
  725. & NTENS, NSTATV,
  726. & PROPS, NPROPS, COORDS,
  727. & NOEL, NPT, KINC )
  728. C
  729. C=======================================================================
  730. C Modele 'PLASTIQUE' 'ISOTROPE' de CAST3M, INPLAS=5
  731. C RESTRICTION A LA FORMULATION MASSIVE
  732. C=======================================================================
  733. C
  734. ELSE IF (K4ILOI.EQ.' 5') THEN
  735. C
  736. CALL UMAPLI ( STRESS, STATEV, DDSDDE,
  737. & STRAN, DSTRAN, DTIME,
  738. & TEMP, DTEMP, PREDEF, DPRED,
  739. & NTENS, NSTATV,
  740. & PROPS, NPROPS, COORDS,
  741. & NOEL, NPT, KINC )
  742. C
  743. C=======================================================================
  744. C Modele HYPERELASTIQUE MOONEY-RIVLIN
  745. C CONTRAINTES PLANES INCOMPRESSIBLE (direction 3)
  746. C DEFORMATIONS PLANES Quasi INCOMPRESSIBLE
  747. C TRIDIMENSIONNEL Quasi INCOMPRESSIBLE
  748. C Contribution de Laurent Gornet - Ecole Centrale de Nantes (2006)
  749. C=======================================================================
  750. C
  751. ELSE IF (K4ILOI.EQ.' 31') THEN
  752. C
  753. CALL MOONEY ( STRESS, STATEV, DDSDDE, STRAN, DSTRAN,
  754. & TIME, DTIME, TEMP, DTEMP, PREDEF, DPRED,
  755. & NDI, NSHR, NTENS, NSTATV, PROPS, NPROPS,
  756. & DFGRD0, DFGRD1, KSTEP, KINC,SSE,spd,scd,rpl,
  757. & DDSDDT,DRPLDE,DRPLDT,cmname,coords,drot, PNEWDT,
  758. & celent,NOEL, NPT, LAYER, KSPT )
  759. C
  760. C=======================================================================
  761. C Modele HYPERELASTIQUE NEO-HOOKEEN COMPRESSIBLE (2006/2010)
  762. C en GRANDES TRANSFORMATIONS
  763. C Contribution de Laurent Gornet - Ecole Centrale de Nantes (2010)
  764. C=======================================================================
  765. C
  766. ELSE IF (K4ILOI.EQ.' 32') THEN
  767. C
  768. CALL NEOHOO ( STRESS, STATEV, DDSDDE, STRAN, DSTRAN,
  769. & TIME, DTIME, TEMP, DTEMP, PREDEF, DPRED,
  770. & NDI, NSHR, NTENS, NSTATV, PROPS, NPROPS,
  771. & DFGRD0, DFGRD1, KSTEP, KINC )
  772.  
  773. C
  774. ELSE IF (K4ILOI.EQ.' 33') THEN
  775. C
  776. CALL GDGD (STRESS, STATEV, DDSDDE, STRAN, DSTRAN,
  777. & TIME, DTIME, TEMP, DTEMP, PREDEF, DPRED,
  778. & NDI, NSHR, NTENS, NSTATV, PROPS, NPROPS,
  779. & DFGRD0, DFGRD1, KSTEP, KINC,SSE,spd,scd,rpl,
  780. & DDSDDT,DRPLDE,DRPLDT,cmname,coords,drot,PNEWDT,
  781. & celent,NOEL, NPT, LAYER, KSPT )
  782. ELSE IF (K4ILOI.EQ.' 34') THEN
  783. CALL HARTS (STRESS, STATEV, DDSDDE, STRAN, DSTRAN,
  784. & TIME, DTIME, TEMP, DTEMP, PREDEF, DPRED,
  785. & NDI, NSHR, NTENS, NSTATV, PROPS, NPROPS,
  786. & DFGRD0, DFGRD1, KSTEP, KINC,SSE,spd,scd,rpl,
  787. & DDSDDT,DRPLDE,DRPLDT,cmname,coords,drot,PNEWDT,
  788. & celent,NOEL, NPT, LAYER, KSPT )
  789. C
  790. ELSE IF (K4ILOI.EQ.' 35') THEN
  791. C
  792. CALL BIDERM (STRESS, STATEV, DDSDDE, STRAN, DSTRAN,
  793. & TIME, DTIME, TEMP, DTEMP, PREDEF, DPRED,
  794. & NDI, NSHR, NTENS, NSTATV, PROPS, NPROPS,
  795. & DFGRD0, DFGRD1, KSTEP, KINC,SSE,spd,scd,rpl,
  796. & DDSDDT,DRPLDE,DRPLDT,cmname,coords,drot,PNEWDT,
  797. & celent,NOEL, NPT, LAYER, KSPT )
  798. ELSE IF (K4ILOI.EQ.' 36') THEN
  799. C
  800. CALL HUITCH (STRESS, STATEV, DDSDDE, STRAN, DSTRAN,
  801. & TIME, DTIME, TEMP, DTEMP, PREDEF, DPRED,
  802. & NDI, NSHR, NTENS, NSTATV, PROPS, NPROPS,
  803. & DFGRD0, DFGRD1, KSTEP, KINC,SSE,spd,scd,rpl,
  804. & DDSDDT,DRPLDE,DRPLDT,cmname,coords,drot,PNEWDT,
  805. & celent,NOEL, NPT, LAYER, KSPT )
  806. C=======================================================================
  807. C Modele externe non reconnu
  808. C=======================================================================
  809. C
  810. ELSE
  811. C
  812. KINC = -2
  813. C
  814. ENDIF
  815. C
  816. RETURN
  817. END
  818.  
  819.  
  820.  
  821.  

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