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
587 : CALL ZERO(DHOOK,6,6)
588 : DHOOK(1,1)=(UN-XNU23*XNU32)/AUX1
589 : DHOOK(1,2)=(XNU21+XNU31*XNU23)/AUX1
590 : DHOOK(2,1)=DHOOK(1,2)
591 : DHOOK(1,3)=(XNU31+XNU21*XNU32)/AUX1
592 : DHOOK(3,1)=DHOOK(1,3)
593 : DHOOK(2,2)=(UN-XNU13*XNU31)/AUX2
594 : DHOOK(2,3)=(XNU32+XNU12*XNU31)/AUX2
595 : DHOOK(3,2)=DHOOK(2,3)
596 : DHOOK(3,3)=(UN-XNU12*XNU21)/AUX3
597 : DHOOK(4,4)=DEUX * G12
598 : DHOOK(5,5)=DEUX * G13
599 : DHOOK(6,6)=DEUX * G23
600 : C-----------------------------------------------------------------------
601 : C
602 : C Recuperation des vecteurs d'orthotropie / repere local
603 : C
604 : V1(1)=PROPS(10)
605 : V1(2)=PROPS(11)
606 : V1(3)=PROPS(12)
607 : V2(1)=PROPS(13)
608 : V2(2)=PROPS(14)
609 : V2(3)=PROPS(15)
609 : CALL CROSS2(V1,V2,V3,IER)
610 : V(1,1)=V1(1)
611 : V(2,1)=V1(2)
612 : V(3,1)=V1(3)
613 : V(1,2)=V2(1)
614 : V(2,2)=V2(2)
615 : V(3,2)=V2(3)
616 : V(1,3)=V3(1)
617 : V(2,3)=V3(2)
618 : V(3,3)=V3(3)
619 : C----------------------------------------------------------------------------
620 : C
621 : C Expression des increments des deformations dans repere d'orthotropie
622 : C P : matrice de passage du repere global au repere d'orthotropie
623 : C
623 : CALL MULMAT(P,DROT,V,3,3,3)
624 : C
625 : DEPST2(1,1)=DSTRAN(1)
626 : DEPST2(2,2)=DSTRAN(2)
627 : DEPST2(3,3)=DSTRAN(3)
628 : DEPST2(1,2)=DSTRAN(4)/DEUX
629 : DEPST2(1,3)=DSTRAN(5)/DEUX
630 : DEPST2(2,3)=DSTRAN(6)/DEUX
631 : DEPST2(2,1)=DEPST2(1,2)
632 : DEPST2(3,1)=DEPST2(1,3)
633 : DEPST2(3,2)=DEPST2(2,3)
633 : CALL PRODT(TENS,DEPST2,P,3,3)
634 : C----------------------------------------------------------------------------
635 : C
636 : C Calcul des increments de contrainte dans le repere d'orthotropie
637 : C
638 : DEPST(1)=TENS(1,1)
639 : DEPST(2)=TENS(2,2)
640 : DEPST(3)=TENS(3,3)
641 : DEPST(4)=TENS(1,2)
642 : DEPST(5)=TENS(1,3)
643 : DEPST(6)=TENS(2,3)
644 : C
645 : DO 5500 I=1,6
646 : DSIG(I)=0.D0
647 : DO 55001 J=1,6
648 : DSIG(I)=DSIG(I)+DHOOK(I,J)*DEPST(J)
649 : 55001 CONTINUE
650 : 5500 CONTINUE
651 : C----------------------------------------------------------------------------
652 : C
653 : C Expression des increments de contrainte dans le repere global
654 : C
655 : DSIG2(1,1)=DSIG(1)
656 : DSIG2(2,2)=DSIG(2)
657 : DSIG2(3,3)=DSIG(3)
658 : DSIG2(1,2)=DSIG(4)
659 : DSIG2(1,3)=DSIG(5)
660 : DSIG2(2,3)=DSIG(6)
661 : DSIG2(2,1)=DSIG2(1,2)
662 : DSIG2(3,1)=DSIG2(1,3)
663 : DSIG2(3,2)=DSIG2(2,3)
663 : CALL TRPOSE(P)
663 : CALL PRODT(TENS,DSIG2,P,3,3)
664 : C----------------------------------------------------------------------------
665 : C
666 : C Calcul des contraintes a la fin du pas dans le repere global
667 : C
668 : STRESS(1)=STRESS(1)+TENS(1,1)
669 : STRESS(2)=STRESS(2)+TENS(2,2)
670 : STRESS(3)=STRESS(3)+TENS(3,3)
671 : STRESS(4)=STRESS(4)+TENS(1,2)
672 : STRESS(5)=STRESS(5)+TENS(1,3)
673 : STRESS(6)=STRESS(6)+TENS(2,3)
674 : C
675 : C=======================================================================
676 : C Modele 'FLUAGE' 'POLYNOMIAL' de CAST3M, INPLAS=21
677 : C RESTRICTION A LA FORMULATION MASSIVE
678 : C=======================================================================
679 : C
680 : ELSE IF (K4ILOI.EQ.' 21') THEN
681 : C
681 : CALL UMAPOL ( STRESS, STATEV, DDSDDE,
682 : & STRAN, DSTRAN, DTIME,
683 : & TEMP, DTEMP, PREDEF, DPRED,
684 : & NTENS, NSTATV,
685 : & PROPS, NPROPS, COORDS,
686 : & NOEL, NPT, KINC )
687 : C
688 : C=======================================================================
689 : C Modele 'FLUAGE' 'POLYNOMIAL' de CAST3M, INPLAS=21
690 : C RESTRICTION A LA FORMULATION MASSIVE
691 : C Instanciation des composantes de materiau au fur et a mesure des
692 : C iterations internes.
693 : C Le modele comprend cette fois des parametres externes.
694 : C Les composantes de materiau sont evaluees par les memes fonctions
695 : C externes que celles utilisees par l'operateur VARI.
696 : C MODELE 'MAQUETTE'
697 : C=======================================================================
698 : C
699 : ELSE IF (K4ILOI.EQ.' 22') THEN
700 : C
700 : CALL UMAPO2 ( STRESS, STATEV, DDSDDE,
701 : & STRAN, DSTRAN, DTIME,
702 : & TEMP, DTEMP, PREDEF, DPRED,
703 : & NTENS, NSTATV,
704 : & PROPS, NPROPS, COORDS,
705 : & NOEL, NPT, KINC )
706 : C
707 : C=======================================================================
708 : C Modele 'VISCOPLASTIQUE' 'GATT_MONERIE' de CAST3M, INPLAS=107
709 : C RESTRICTION A LA FORMULATION MASSIVE
710 : C=======================================================================
711 : C
712 : ELSE IF (K4ILOI.EQ.' 7') THEN
713 : C
713 : CALL UMAGAT ( STRESS, STATEV, DDSDDE,
714 : & STRAN, DSTRAN, DTIME,
715 : & TEMP, DTEMP, PREDEF, DPRED,
716 : & NTENS, NSTATV,
717 : & PROPS, NPROPS, COORDS,
718 : & NOEL, NPT, KINC )
719 : C
720 : C=======================================================================
721 : C Modele 'PLASTIQUE' 'ISOTROPE' de CAST3M, INPLAS=5
722 : C RESTRICTION A LA FORMULATION MASSIVE
723 : C=======================================================================
724 : C
725 : ELSE IF (K4ILOI.EQ.' 5') THEN
726 : C
726 : CALL UMAPLI ( STRESS, STATEV, DDSDDE,
727 : & STRAN, DSTRAN, DTIME,
728 : & TEMP, DTEMP, PREDEF, DPRED,
729 : & NTENS, NSTATV,
730 : & PROPS, NPROPS, COORDS,
731 : & NOEL, NPT, KINC )
732 : C
733 : C=======================================================================
734 : C Modele HYPERELASTIQUE MOONEY-RIVLIN
735 : C CONTRAINTES PLANES INCOMPRESSIBLE (direction 3)
736 : C DEFORMATIONS PLANES Quasi INCOMPRESSIBLE
737 : C TRIDIMENSIONNEL Quasi INCOMPRESSIBLE
738 : C Contribution de Laurent Gornet - Ecole Centrale de Nantes (2006)
739 : C=======================================================================
740 : C
741 : ELSE IF (K4ILOI.EQ.' 31') THEN
742 : C
742 : CALL MOONEY ( STRESS, STATEV, DDSDDE, STRAN, DSTRAN,
743 : & TIME, DTIME, TEMP, DTEMP, PREDEF, DPRED,
744 : & NDI, NSHR, NTENS, NSTATV, PROPS, NPROPS,
745 : & DFGRD0, DFGRD1, KSTEP, KINC,SSE,spd,scd,rpl,
746 : & DDSDDT,DRPLDE,DRPLDT,cmname,coords,drot, PNEWDT,
747 : & celent,NOEL, NPT, LAYER, KSPT )
748 : C
749 : C=======================================================================
750 : C Modele HYPERELASTIQUE NEO-HOOKEEN COMPRESSIBLE (2006/2010)
751 : C en GRANDES TRANSFORMATIONS
752 : C Contribution de Laurent Gornet - Ecole Centrale de Nantes (2010)
753 : C=======================================================================
754 : C
755 : ELSE IF (K4ILOI.EQ.' 32') THEN
756 : C
756 : CALL NEOHOO ( STRESS, STATEV, DDSDDE, STRAN, DSTRAN,
757 : & TIME, DTIME, TEMP, DTEMP, PREDEF, DPRED,
758 : & NDI, NSHR, NTENS, NSTATV, PROPS, NPROPS,
759 : & DFGRD0, DFGRD1, KSTEP, KINC )
760 :
761 : C
762 : ELSE IF (K4ILOI.EQ.' 33') THEN
763 : C
763 : CALL GDGD (STRESS, STATEV, DDSDDE, STRAN, DSTRAN,
764 : & TIME, DTIME, TEMP, DTEMP, PREDEF, DPRED,
765 : & NDI, NSHR, NTENS, NSTATV, PROPS, NPROPS,
766 : & DFGRD0, DFGRD1, KSTEP, KINC,SSE,spd,scd,rpl,
767 : & DDSDDT,DRPLDE,DRPLDT,cmname,coords,drot,PNEWDT,
768 : & celent,NOEL, NPT, LAYER, KSPT )
769 : ELSE IF (K4ILOI.EQ.' 34') THEN
769 : CALL HARTS (STRESS, STATEV, DDSDDE, STRAN, DSTRAN,
770 : & TIME, DTIME, TEMP, DTEMP, PREDEF, DPRED,
771 : & NDI, NSHR, NTENS, NSTATV, PROPS, NPROPS,
772 : & DFGRD0, DFGRD1, KSTEP, KINC,SSE,spd,scd,rpl,
773 : & DDSDDT,DRPLDE,DRPLDT,cmname,coords,drot,PNEWDT,
774 : & celent,NOEL, NPT, LAYER, KSPT )
775 : C
776 : ELSE IF (K4ILOI.EQ.' 35') THEN
777 : C
777 : CALL BIDERM (STRESS, STATEV, DDSDDE, STRAN, DSTRAN,
778 : & TIME, DTIME, TEMP, DTEMP, PREDEF, DPRED,
779 : & NDI, NSHR, NTENS, NSTATV, PROPS, NPROPS,
780 : & DFGRD0, DFGRD1, KSTEP, KINC,SSE,spd,scd,rpl,
781 : & DDSDDT,DRPLDE,DRPLDT,cmname,coords,drot,PNEWDT,
782 : & celent,NOEL, NPT, LAYER, KSPT )
783 : ELSE IF (K4ILOI.EQ.' 36') THEN
784 : C
784 : CALL HUITCH (STRESS, STATEV, DDSDDE, STRAN, DSTRAN,
785 : & TIME, DTIME, TEMP, DTEMP, PREDEF, DPRED,
786 : & NDI, NSHR, NTENS, NSTATV, PROPS, NPROPS,
787 : & DFGRD0, DFGRD1, KSTEP, KINC,SSE,spd,scd,rpl,
788 : & DDSDDT,DRPLDE,DRPLDT,cmname,coords,drot,PNEWDT,
789 : & celent,NOEL, NPT, LAYER, KSPT )
790 : C=======================================================================
791 : C Modele externe non reconnu
792 : C=======================================================================
793 : C
794 : ELSE
795 : C
796 : KINC = -2
797 : C
798 : ENDIF
799 : C
800 : RETURN
801 : END
802 :
803 :
804 :
© Cast3M 2003 - All rights reserved.
Disclaimer