Télécharger alon1.eso

Retour à la liste

Numérotation des lignes :

alon1
  1. C ALON1 SOURCE OF166741 25/11/04 21:15:03 12349
  2. SUBROUTINE ALON1(DEPST,NSTRS,NCOMAT,NVARI,
  3. . MFR1,IB,IGAU,
  4. . XMAT,SIG0,VAR0,SIGF,VARF,DEFP,KERRE,DSIGT,
  5. . SUCC1,SUCC2)
  6.  
  7. ***************************************************************
  8. *
  9. * Modèle d'argile partiellement saturé de ALONSO et al
  10. *
  11. ***************************************************************
  12. *
  13. *_________________________________________________________________
  14. *
  15. *
  16. * ENTREES :
  17. * ---------
  18. *
  19. * DEPST = INCREMENT DE DEFORMATIONS TOTALES
  20. * NSTRS = NBRE DE COMPOSANTES DES DEFORMATIONS
  21. * NCOMAT= NBRE DE CARACTERISTIQUES MECANIQUES DU MATERIAU
  22. * NVARI = NBRE DE VARIABLES INTERNES
  23. * MFR1 = NUMERO DE LA FORMULATION
  24. * IB = NUMERO DE L ELEMENT COURANT
  25. * IGAU = NUMERO DU POINT COURANT
  26. * SIG0(NSTRS) = CONTRAINTES AU DEBUT DU PAS D'INTEGRATION
  27. * VAR0(NVARI) = VARIABLES INTERNES AU DEBUT DU PAS DE TEMPS
  28. * XMAT(NCOMAT) = CARACTERISTIQUES MECANIQUES DU MATERIAU
  29. * SUCC1 SUCCION AU DEBUT DU PAS
  30. * SUCC2 SUCCION A LA FIN DU PAS
  31. *
  32. * SORTIE :
  33. * --------
  34. *
  35. * SIGF(NSTRS) = CONTRAINTES FINALES
  36. * VARF(NVARI) = VARIALES INTERNES A LA FIN DU PAS D'INTEGRATION
  37. * DEFP(NSTRS) = INCREMENT DE DEFORMATION PLASTIQUE A LA FIN
  38. * DU PAS D'INTEGRATION
  39. * ============================================================
  40. * ICI IL FAUT PROGRAMMER EN FORTRAN PUR
  41. *=============================================================
  42. *
  43. IMPLICIT INTEGER(I-N)
  44. IMPLICIT REAL*8(A-H,O-Z)
  45.  
  46. -INC PPARAM
  47. -INC CCOPTIO
  48.  
  49. DIMENSION SIG0(*),DEPST(*),VAR0(*),XMAT(*),SIGF(*),
  50. & VARF(*),DEFP(*),DSIGT(*)
  51.  
  52. PARAMETER (c1s3 = 1.D0/3.D0)
  53.  
  54. DIMENSION RSIG0(6),RDEPS0(6),RSIGF(6),RDEFP(6)
  55. DIMENSION DEPM(6),DEPEL(6),DEVT(6)
  56. REAL*8 LOGSUC
  57. *
  58. * Adaptation de l'option de calcul vers le 3D massif de SIG0 a RSIG0
  59. *====================================================================
  60. *
  61. IF (MFR1 .EQ. 1 .OR. MFR1 .EQ. 31) THEN
  62. *
  63. *---> 1 formulation massive
  64. *---> 2 formulation quasi incompressible
  65. *---> MASSIF 3D
  66. *
  67. IF (NSTRS .EQ. 6) THEN
  68. DO 110 I=1,NSTRS
  69. RSIG0(I)=SIG0(I)
  70. RDEPS0(I)=DEPST(I)
  71. 110 CONTINUE
  72. ELSE IF ( NSTRS .EQ. 4 .AND. ((IFOUR .EQ. 0)
  73. & .OR.(IFOUR .EQ. -1))) THEN
  74. *
  75. *---> Calcul en mode deformations planes ou axisymetrique
  76. *
  77. DO 115 I=1,NSTRS
  78. RSIG0(I)=SIG0(I)
  79. RDEPS0(I)=DEPST(I)
  80. 115 CONTINUE
  81. RSIG0(5)=0.D0
  82. RSIG0(6)=0.D0
  83. RDEPS0(5)=0.D0
  84. RDEPS0(6)=0.D0
  85. ENDIF
  86. ELSE
  87. KERRE = 99
  88. RETURN
  89. ENDIF
  90. *
  91. * Passage des deformations de cisaillement exprimées
  92. * en GAMA aux déformations de cisaillement exprimées
  93. * en déformations
  94. RDEPS0(4)=RDEPS0(4)*0.5D0
  95. RDEPS0(5)=RDEPS0(5)*0.5D0
  96. RDEPS0(6)=RDEPS0(6)*0.5D0
  97. *
  98. * Données du materiau
  99. *===========================================================
  100. *
  101. YOUN0=XMAT(1)
  102. XNU0=XMAT(2)
  103. XKS0=XMAT(5)
  104. XLAM0=XMAT(6)
  105. XM0=XMAT(7)
  106. XKK0=XMAT(8)
  107. PC00=XMAT(9)
  108. P0=XMAT(10)
  109. XLAM1=XMAT(11)
  110. T0=XMAT(12)
  111. TAU0=XMAT(13)
  112. XG0=XMAT(14)
  113. XK0=XMAT(15)
  114. XE0=XMAT(16)
  115. *
  116. XXALF=XMAT(19)
  117. XXBET=XMAT(20)
  118. XXGAM=XMAT(3)
  119. XXPREF=XMAT(4)
  120. *
  121. * AM RHO ET ALPHA SONT DANS XMAT(17) ET XMAT(18)
  122. * CF BIZARRERIE DANS ECOU70
  123. *
  124. * Quelques initialisations
  125. *==============================================================
  126. *
  127. *
  128. *---> Variables internes initiales
  129. * . déformation plastique équivalente
  130. * . pression de consolidation à l'état saturé
  131. * . limite élastique en succion
  132. * . succions initiale et finale
  133. * La succion finale est déstinée à etre calculée au préalable
  134. * dans un opérateur particulier indépendant de ECOULE
  135. *
  136. VOLU0=1.D0+XE0
  137. PC0=VAR0(2)
  138. IF (PC0.LE.1.D-30) PC0=PC00
  139. SLIM0=VAR0(3)
  140. ******************************
  141. * MODIFICATION POUR LA SUCCION le 5/11/97
  142. *
  143. IF (SUCC1.LT.-1.E34.AND.SUCC2.LT.-1.E34) THEN
  144. *
  145. * cas à succion constante : on la prend dans var0
  146. *
  147. SUCI0=VAR0(4)
  148. VARF(4)=VAR0(4)
  149. ELSE
  150. SUCI0=SUCC1
  151. VARF(4)=SUCC2
  152. ENDIF
  153. SUCF0=VARF(4)
  154. *
  155. * TRAITEMENT DU CAS SATURE
  156. *
  157. PSAT0 =0.D0
  158. PSAT1 =0.D0
  159. IF(SUCI0.LT.0.D0) THEN
  160. PSAT0=-SUCI0
  161. SUCI0=0.D0
  162. ENDIF
  163. IF(SUCF0.LT.0.D0) THEN
  164. PSAT1=-SUCF0
  165. SUCF0=0.D0
  166. ENDIF
  167. *
  168. * PASSAGE EN CONTRAINTES EFFECTIVES
  169. *
  170. RSIG0(1)=RSIG0(1) + PSAT0
  171. RSIG0(2)=RSIG0(2) + PSAT0
  172. RSIG0(3)=RSIG0(3) + PSAT0
  173. *
  174. * MODIF POUR REACTUALISER XKS0 EN FONCTION DE
  175. * LA PRESSION MOYENNE ET DE LA SUCCION
  176. * ON PREND LES VALEURS AU DEBUT DU PAS
  177. *
  178. IF(XXBET.NE.0.D0) THEN
  179. XTRR = ABS ( (RSIG0(1)+RSIG0(2)+RSIG0(3))*c1s3 )
  180. XKS0 =XKS0*(1.D0-XXBET*LOG(XTRR/XXPREF))
  181. & *EXP(-XXGAM*SUCI0)
  182. ENDIF
  183. *
  184. * AM 13/05/98
  185. * ON MODIFIE LA LOI DE VARIATION DE K
  186. * ATTENTION : DANS LA FORMULE, LA SUCCION DOIT
  187. * ETRE EN MPA ET ON CONSIDERE QU'ELLE ARRIVE EN PA
  188. * ( CF COMMENTAIRE CI DESSOUS )
  189. *
  190. ***** XK0= XK0*( 1.D0-XXALF*SUCI0)
  191. *
  192. SUCMPA = SUCI0 * 1.D-6
  193. LOGSUC=0.D0
  194. IF(SUCMPA.GT.1.D0) THEN
  195. LOGSUC=LOG(SUCMPA)
  196. ENDIF
  197. XK0= XK0*( 1.D0-XXALF*LOGSUC)
  198. *
  199. *---> Pression atmosphérique
  200. *ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
  201. * ATTENTION : LA PRESSION ATMOSPHERIQUE EST EN Pa
  202. *ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
  203. *
  204. Pat0=1.E5
  205. *
  206. *---> Initialisation du logique de l'écrouissage en succion
  207. * succ0=vrai : il y a écrouissage en succion
  208. *
  209. SUCC0=-1.D0
  210. *
  211. *---> Pente élasto-plastique (courbe de consolidation)
  212. *
  213. XLAM2=XLAM1*((1.D0-T0)*EXP(-1.D0*TAU0*SUCF0)+T0)
  214. *
  215. *---> Pression de saturation
  216. *
  217. PS0=XKK0*SUCF0
  218. *
  219. * Déformation mécanique test
  220. *======================================================================
  221. *
  222. *---> Trace de la déformation élastique de succion
  223. *
  224. TREPSS0=-XKS0/VOLU0*LOG((SUCF0+Pat0)/(SUCI0+Pat0))
  225. *
  226. *---> Déformations mécaniques
  227. *
  228. A = TREPSS0*c1s3
  229. DEPM(1)=RDEPS0(1)-A
  230. DEPM(2)=RDEPS0(2)-A
  231. DEPM(3)=RDEPS0(3)-A
  232. DEPM(4)=RDEPS0(4)
  233. DEPM(5)=RDEPS0(5)
  234. DEPM(6)=RDEPS0(6)
  235. *
  236. * Ecrouissage en succion ?
  237. *======================================================================
  238. *
  239. IF ((SUCF0.GT.SLIM0).AND.(SUCC0.LE.0.D0)) THEN
  240. *
  241. * HYPOTHESE: on écrouit en succion
  242. *
  243. *---> Limite en succion à la fin du pas
  244. *
  245. SLIM1=SUCF0
  246. *
  247. *---> Trace de la déformation plastique due à la succion
  248. *
  249. TREPPS0=(XKS0-XLAM0)/VOLU0*LOG((SLIM1+Pat0)/(SLIM0+Pat0))
  250. *
  251. *---> Pression de consolidation
  252. * . à l'état saturé
  253. * . à la succion finale
  254. *
  255. PC1=PC0*EXP(-VOLU0/(XLAM1-XK0)*TREPPS0)
  256. PCS1=P0*(PC1/P0)**((XLAM1-XK0)/(XLAM2-XK0))
  257. *
  258. *---> On vérifie l'hypothèse
  259. *
  260. * Déformations élastiques test et déformation plastique
  261. *
  262. A = TREPPS0*c1s3
  263. DEPEL(1)=DEPM(1)-A
  264. DEPEL(2)=DEPM(2)-A
  265. DEPEL(3)=DEPM(3)-A
  266. DEPEL(4)=DEPM(4)
  267. DEPEL(5)=DEPM(5)
  268. DEPEL(6)=DEPM(6)
  269. RDEFP(1)=A
  270. RDEFP(2)=A
  271. RDEFP(3)=A
  272. RDEFP(4)=0.D0
  273. RDEFP(5)=0.D0
  274. RDEFP(6)=0.D0
  275. *
  276. * Contraintes
  277. *
  278. PRES0= -c1s3*(RSIG0(1)+RSIG0(2)+RSIG0(3))
  279. TREPS0=DEPEL(1)+DEPEL(2)+DEPEL(3)
  280. PRES1=PRES0*EXP(-VOLU0/XK0*TREPS0)
  281. DO 12 I=1,6
  282. A=0.D0
  283. IF (I.LE.3) A=1.D0
  284. DEVT(I)=RSIG0(I)+PRES0*A
  285. DEVT(I)=DEVT(I)+2.D0*XG0*(DEPEL(I)-TREPS0*c1s3*A)
  286. RSIGF(I)=DEVT(I)-PRES1*A
  287. 12 CONTINUE
  288. *
  289. * Contrainte équivalente
  290. *
  291. STEST2=1.5D0*PROCON(DEVT,DEVT,6)
  292. IF (STEST2.LE.1.D-10) STEST2=0.D0
  293. *
  294. * Fonction de charge
  295. *
  296. PHIT=STEST2+XM0*XM0*(PRES1+PS0)*(PRES1-PCS1)
  297. *
  298. * On vérifie qu'on est élastique
  299. *
  300. IF (PHIT.LE.0.D0) THEN
  301. VARF(1)=VAR0(1)
  302. VARF(2)=PC1
  303. VARF(3)=SLIM1
  304. GOTO 99
  305. ELSE
  306. SUCC0=1.D0
  307. GOTO 98
  308. ENDIF
  309. *
  310. *---> Fin de la vérification de l'hypothèse
  311. *
  312. ENDIF
  313. *
  314. * Fin du traitement de l'écrouissage en succion
  315. *===========================================================================
  316. *
  317. * Ecrouissage en pression
  318. *===========================================================================
  319. *
  320. 98 CONTINUE
  321. IF ((SUCF0.LE.SLIM0).OR.(SUCC0.GT.0.D0)) THEN
  322. *
  323. CALL ALON2(Pat0,XMAT,DEPM,RSIG0,VAR0,
  324. . RSIGF,VARF,RDEFP,KERRE,IB,IGAU)
  325. *
  326. ENDIF
  327. *
  328. * Fin de l'écrouissage en pression
  329. *===========================================================================
  330.  
  331. * Passage des deformations de cisaillement exprimées
  332. * en déformations aux déformations de cisaillement exprimées
  333. * en GAMA
  334. *
  335. 99 CONTINUE
  336. RDEFP(4)=RDEFP(4)*2.D0
  337. RDEFP(5)=RDEFP(5)*2.D0
  338. RDEFP(6)=RDEFP(6)*2.D0
  339. *
  340. * Passage a l'option de calcul pour les contraintes
  341. *=========================================================
  342. *
  343. IF (MFR1 .EQ. 1 .OR. MFR1 .EQ. 31) THEN
  344. *
  345. * RETOUR EN CONTRAINTES TOTALES
  346. *
  347. DO I=1,3
  348. RSIGF(I)=RSIGF(I) - PSAT1
  349. ENDDO
  350.  
  351. DO 170 I=1,NSTRS
  352. SIGF(I)=RSIGF(I)
  353. DEFP(I)=RDEFP(I)
  354. 170 CONTINUE
  355.  
  356. ENDIF
  357. *
  358. RETURN
  359. *
  360. END
  361.  
  362.  
  363.  

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