Télécharger maxwel.eso

Retour à la liste

Numérotation des lignes :

maxwel
  1. C MAXWEL SOURCE GOUNAND 14/05/28 21:15:09 8056
  2. SUBROUTINE MAXWEL(WRK0,WRK1,WRK5,WR12,MFR,
  3. 1 IB,IGAU,MELE,NCHAIN,KERRE,DT,CMATE,NWA,TEMP0)
  4. *
  5. *==============================================================
  6. * chaine de Maxwell
  7. *==============================================================
  8. *
  9. * entrees
  10. *
  11. * WRK0
  12. * XMAT(NCOMAT) = CARACTERISTIQUES MECANIQUES DU MATERIAU
  13. *
  14. * WRK1
  15. * SIG0(NSTRS) = CONTR. AU DEBUT DU PAS D'INTEGRATION
  16. * DEPST(NSTRS) = INCREMENT DES DEFORM. TOTALES
  17. * VAR0(NVARI) = VARIABLES INTERNES AU DEBUT DU PAS D'INTEGRATION
  18. * XCAR(ICARA) = CARACT. GEOMETRIQUES DES ELEMENTS FINIS
  19. *
  20. * WRK5
  21. * EPINO(NSTRS) = DEFORMATION INELASTIQUE AU DEBUT DU PAS D'INTEGRATION
  22. *
  23. * WRK12
  24. * EMi(2,NWA(i+1)) i=0 a 8
  25. * = EVOLUTION DU MODUE D'YOUNG DE LA BRANCHE i
  26. * SMi(NSTRS) i=1 a 8
  27. * = VARIABLES INTERNES AU DEBUT DU PAS D'INTEGRATION
  28. *
  29. * IB = NUMERO DE L'ELEMENT
  30. * IGAU = NUMERO DU POINT DE GAUSS
  31. * MELE = NUMERO DE L'ELEMENT FINI (TYPE)
  32. * NCHAIN = NOMBRE DE BRANCHE DU MODELE DE MAXWELL
  33. * DT = INCREMENT DE TEMPS
  34. * NWA = DIMENSION DES EVOLUTIONS EMi
  35. * TEMP0 = TEMPS COURANT
  36. *
  37.  
  38. * sorties
  39. *
  40. * WRK1
  41. * SIGF(NSTRS)= CONTR. A LA FIN DU PAS D'INTEGRATION
  42. * DEFP(NSTRS)= INCREMENT DES DEFORM. PLASTIQUES A LA FIN DU PAS
  43. * D'INTEGRATION
  44. *
  45. * WRK5
  46. * EPINF(NSTRS) = DEFORMATION INELASTIQUE A LA FIN DU PAS D'INTEGRATION
  47. *
  48. *
  49. *
  50. *
  51. *
  52. *==============================================================
  53. *
  54. IMPLICIT INTEGER(I-N)
  55. IMPLICIT REAL*8(A-H,O-Z)
  56.  
  57. -INC PPARAM
  58. -INC CCOPTIO
  59. *
  60. SEGMENT WRK0
  61. REAL*8 XMAT(NCXMAT)
  62. ENDSEGMENT
  63. *
  64. SEGMENT WRK1
  65. REAL*8 DDHOOK(LHOOK,LHOOK),SIG0(NSTRS),DEPST(NSTRS)
  66. REAL*8 SIGF(NSTRS),VAR0(NVARI),VARF(NVARI)
  67. REAL*8 DEFP(NSTRS),XCAR(ICARA)
  68. ENDSEGMENT
  69. *
  70. SEGMENT WRK5
  71. REAL*8 EPIN0(NSTRS),EPINF(NSTRS),EPST0(NSTRS)
  72. ENDSEGMENT
  73. *
  74. SEGMENT WR12
  75. REAL*8 EM0(2,NWA(1)),EM1(2,NWA(2)),EM2(2,NWA(3))
  76. REAL*8 EM3(2,NWA(4)),EM4(2,NWA(5)),EM5(2,NWA(6))
  77. REAL*8 EM6(2,NWA(7)),EM7(2,NWA(8)),EM8(2,NWA(9))
  78. REAL*8 SM0(NSTRS),SM1(NSTRS),SM2(NSTRS),SM3(NSTRS)
  79. REAL*8 SM4(NSTRS),SM5(NSTRS),SM6(NSTRS),SM7(NSTRS)
  80. REAL*8 SM8(NSTRS)
  81. ENDSEGMENT
  82. *
  83. CHARACTER*8 CMATE
  84.  
  85. DIMENSION NWA(9)
  86. NCXMAT=XMAT(/1)
  87. NVARI=VAR0(/1)
  88. NSTRS=SIG0(/1)
  89. ANU=XMAT(2)
  90. UNANU=1.D0-ANU
  91. TPS1=TEMP0
  92. TPS2=TEMP0+DT
  93. SE1=0.D0
  94. SE2=0.D0
  95.  
  96. *
  97. * Formulation UNIDIMENSIONNELLE
  98. * ou Formulation UNIDIRECTIONNELLE
  99. *
  100. IF (MFR.EQ.27.OR.
  101. & ((MFR.EQ.1.OR.MFR.EQ.33).AND.( CMATE.EQ.'UNIDIREC'))) THEN
  102.  
  103. CONS=1.D0
  104. IF(MFR.EQ.27) XSECT=XCAR(1)
  105. IF(MFR.EQ.1.OR.MFR.EQ.33) XSECT=1.D0
  106.  
  107.  
  108. CALL MODFIC(TPS1,TPS2,0,WR12,WRK0,
  109. 1 NWA,EFIC,TR,E1,E2,KERRE,CMATE)
  110. FLUA=EXP(-TR*DT)
  111. SM0(1)=SM0(1)/XSECT
  112. SM0(1)=SM0(1)*FLUA+CONS*EFIC*DEPST(1)
  113. SM0(1)=SM0(1)*XSECT
  114. SIGF(1)=SM0(1)
  115. SE1=SE1+E1
  116. SE2=SE2+E2
  117.  
  118. CALL MODFIC(TPS1,TPS2,1,WR12,WRK0,
  119. 1 NWA,EFIC,TR,E1,E2,KERRE,CMATE)
  120. FLUA=EXP(-TR*DT)
  121. SM1(1)=SM1(1)/XSECT
  122. SM1(1)=SM1(1)*FLUA+CONS*EFIC*DEPST(1)
  123. SM1(1)=SM1(1)*XSECT
  124. SIGF(1)=SIGF(1)+SM1(1)
  125. SE1=SE1+E1
  126. SE2=SE2+E2
  127.  
  128.  
  129.  
  130. CALL MODFIC(TPS1,TPS2,2,WR12,WRK0,
  131. 1 NWA,EFIC,TR,E1,E2,KERRE,CMATE)
  132. FLUA=EXP(-TR*DT)
  133. SM2(1)=SM2(1)/XSECT
  134. SM2(1)=SM2(1)*FLUA+CONS*EFIC*DEPST(1)
  135. SM2(1)=SM2(1)*XSECT
  136. SIGF(1)=SIGF(1)+SM2(1)
  137. SE1=SE1+E1
  138. SE2=SE2+E2
  139.  
  140. CALL MODFIC(TPS1,TPS2,3,WR12,WRK0,
  141. 1 NWA,EFIC,TR,E1,E2,KERRE,CMATE)
  142. FLUA=EXP(-TR*DT)
  143. SM3(1)=SM3(1)/XSECT
  144. SM3(1)=SM3(1)*FLUA+CONS*EFIC*DEPST(1)
  145. SM3(1)=SM3(1)*XSECT
  146. SIGF(1)=SIGF(1)+SM3(1)
  147. SE1=SE1+E1
  148. SE2=SE2+E2
  149.  
  150. CALL MODFIC(TPS1,TPS2,4,WR12,WRK0,
  151. 1 NWA,EFIC,TR,E1,E2,KERRE,CMATE)
  152. FLUA=EXP(-TR*DT)
  153. SM4(1)=SM4(1)/XSECT
  154. SM4(1)=SM4(1)*FLUA+CONS*EFIC*DEPST(1)
  155. SM4(1)=SM4(1)*XSECT
  156. SIGF(1)=SIGF(1)+SM4(1)
  157. SE1=SE1+E1
  158. SE2=SE2+E2
  159.  
  160. IF (NCHAIN-1.GE.5) THEN
  161. CALL MODFIC(TPS1,TPS2,5,WR12,WRK0,
  162. 1 NWA,EFIC,TR,E1,E2,KERRE,CMATE)
  163. FLUA=EXP(-TR*DT)
  164. SM5(1)=SM5(1)/XSECT
  165. SM5(1)=SM5(1)*FLUA+CONS*EFIC*DEPST(1)
  166. SM5(1)=SM5(1)*XSECT
  167. SIGF(1)=SIGF(1)+SM5(1)
  168. SE1=SE1+E1
  169. SE2=SE2+E2
  170.  
  171. ELSE IF (NCHAIN-1.GE.6) THEN
  172. CALL MODFIC(TPS1,TPS2,6,WR12,WRK0,
  173. 1 NWA,EFIC,TR,E1,E2,KERRE,CMATE)
  174. FLUA=EXP(-TR*DT)
  175. SM6(1)=SM6(1)/XSECT
  176. SM6(1)=SM6(1)*FLUA+CONS*EFIC*DEPST(1)
  177. SM6(1)=SM6(1)*XSECT
  178. SIGF(1)=SIGF(1)+SM6(1)
  179. SE1=SE1+E1
  180. SE2=SE2+E2
  181.  
  182. ELSE IF (NCHAIN-1.GE.7) THEN
  183. CALL MODFIC(TPS1,TPS2,7,WR12,WRK0,
  184. 1 NWA,EFIC,TR,E1,E2,KERRE,CMATE)
  185. FLUA=EXP(-TR*DT)
  186. SM7(1)=SM7(1)/XSECT
  187. SM7(1)=SM7(1)*FLUA+CONS*EFIC*DEPST(1)
  188. SM7(1)=SM7(1)*XSECT
  189. SIGF(1)=SIGF(1)+SM7(1)
  190. SE1=SE1+E1
  191. SE2=SE2+E2
  192.  
  193. ELSE IF (NCHAIN-1.GE.8) THEN
  194. CALL MODFIC(TPS1,TPS2,8,WR12,WRK0,
  195. 1 NWA,EFIC,TR,E1,E2,KERRE,CMATE)
  196. FLUA=EXP(-TR*DT)
  197. SM8(1)=SM8(1)/XSECT
  198. SM8(1)=SM8(1)*FLUA+CONS*EFIC*DEPST(1)
  199. SM8(1)=SM8(1)*XSECT
  200. SIGF(1)=SIGF(1)+SM8(1)
  201. SE1=SE1+E1
  202. SE2=SE2+E2
  203. ENDIF
  204.  
  205. DEFP(1)=DEPST(1)-((SIGF(1))/(XSECT*SE2))
  206. 1 +((SIG0(1))/(XSECT*SE1))
  207. EPINF(1)=EPIN0(1)-DEFP(1)
  208. DO I=1,NVARI
  209. VARF(I)=VAR0(I)
  210. END DO
  211. GOTO 999
  212.  
  213. * Formulation TRIDIMENSIONNELLE MASSIVE
  214. *
  215. ELSE IF (IFOUR.EQ.2.OR.IFOUR.EQ.1) THEN
  216. CONS=1.D0/((1.D0+ANU)*(1.D0-2.D0*ANU))
  217. DO 10 M=0,NCHAIN-1
  218. CALL MODFIC(TPS1,TPS2,M,WR12,WRK0,
  219. 1 NWA,EFIC,TR,E1,E2,KERRE,CMATE)
  220. SE1=SE1+E1
  221. SE2=SE2+E2
  222. FLUA=EXP(-TR*DT)
  223. IF (M.EQ.0) THEN
  224. SM0(1)=SM0(1)*FLUA
  225. 1 +CONS*EFIC*(UNANU*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
  226. SM0(2)=SM0(2)*FLUA
  227. 1 +CONS*EFIC*(UNANU*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
  228. SM0(3)=SM0(3)*FLUA
  229. 1 +CONS*EFIC*(UNANU*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
  230. SM0(4)=SM0(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
  231. SM0(5)=SM0(5)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(5)
  232. SM0(6)=SM0(6)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(6)
  233. SIGF(1)=SM0(1)
  234. SIGF(2)=SM0(2)
  235. SIGF(3)=SM0(3)
  236. SIGF(4)=SM0(4)
  237. SIGF(5)=SM0(5)
  238. SIGF(6)=SM0(6)
  239. ELSE IF (M.EQ.1) THEN
  240. SM1(1)=SM1(1)*FLUA
  241. 1 +CONS*EFIC*(UNANU*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
  242. SM1(2)=SM1(2)*FLUA
  243. 1 +CONS*EFIC*(UNANU*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
  244. SM1(3)=SM1(3)*FLUA
  245. 1 +CONS*EFIC*(UNANU*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
  246. SM1(4)=SM1(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
  247. SM1(5)=SM1(5)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(5)
  248. SM1(6)=SM1(6)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(6)
  249. SIGF(1)=SIGF(1)+SM1(1)
  250. SIGF(2)=SIGF(2)+SM1(2)
  251. SIGF(3)=SIGF(3)+SM1(3)
  252. SIGF(4)=SIGF(4)+SM1(4)
  253. SIGF(5)=SIGF(5)+SM1(5)
  254. SIGF(6)=SIGF(6)+SM1(6)
  255. ELSE IF (M.EQ.2) THEN
  256. SM2(1)=SM2(1)*FLUA
  257. 1 +CONS*EFIC*(UNANU*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
  258. SM2(2)=SM2(2)*FLUA
  259. 1 +CONS*EFIC*(UNANU*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
  260. SM2(3)=SM2(3)*FLUA
  261. 1 +CONS*EFIC*(UNANU*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
  262. SM2(4)=SM2(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
  263. SM2(5)=SM2(5)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(5)
  264. SM2(6)=SM2(6)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(6)
  265. SIGF(1)=SIGF(1)+SM2(1)
  266. SIGF(2)=SIGF(2)+SM2(2)
  267. SIGF(3)=SIGF(3)+SM2(3)
  268. SIGF(4)=SIGF(4)+SM2(4)
  269. SIGF(5)=SIGF(5)+SM2(5)
  270. SIGF(6)=SIGF(6)+SM2(6)
  271. ELSE IF (M.EQ.3) THEN
  272. SM3(1)=SM3(1)*FLUA
  273. 1 +CONS*EFIC*(UNANU*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
  274. SM3(2)=SM3(2)*FLUA
  275. 1 +CONS*EFIC*(UNANU*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
  276. SM3(3)=SM3(3)*FLUA
  277. 1 +CONS*EFIC*(UNANU*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
  278. SM3(4)=SM3(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
  279. SM3(5)=SM2(5)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(5)
  280. SM3(6)=SM2(6)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(6)
  281. SIGF(1)=SIGF(1)+SM3(1)
  282. SIGF(2)=SIGF(2)+SM3(2)
  283. SIGF(3)=SIGF(3)+SM3(3)
  284. SIGF(4)=SIGF(4)+SM3(4)
  285. SIGF(5)=SIGF(5)+SM3(5)
  286. SIGF(6)=SIGF(6)+SM3(6)
  287. ELSE IF (M.EQ.4) THEN
  288. SM4(1)=SM4(1)*FLUA
  289. 1 +CONS*EFIC*(UNANU*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
  290. SM4(2)=SM4(2)*FLUA
  291. 1 +CONS*EFIC*(UNANU*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
  292. SM4(3)=SM4(3)*FLUA
  293. 1 +CONS*EFIC*(UNANU*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
  294. SM4(4)=SM4(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
  295. SM4(5)=SM4(5)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(5)
  296. SM4(6)=SM4(6)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(6)
  297. SIGF(1)=SIGF(1)+SM4(1)
  298. SIGF(2)=SIGF(2)+SM4(2)
  299. SIGF(3)=SIGF(3)+SM4(3)
  300. SIGF(4)=SIGF(4)+SM4(4)
  301. SIGF(5)=SIGF(5)+SM4(5)
  302. SIGF(6)=SIGF(6)+SM4(6)
  303. ELSE IF (M.EQ.5) THEN
  304. SM5(1)=SM5(1)*FLUA
  305. 1 +CONS*EFIC*(UNANU*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
  306. SM5(2)=SM5(2)*FLUA
  307. 1 +CONS*EFIC*(UNANU*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
  308. SM5(3)=SM5(3)*FLUA
  309. 1 +CONS*EFIC*(UNANU*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
  310. SM5(4)=SM5(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
  311. SM5(5)=SM5(5)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(5)
  312. SM5(6)=SM5(6)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(6)
  313. SIGF(1)=SIGF(1)+SM5(1)
  314. SIGF(2)=SIGF(2)+SM5(2)
  315. SIGF(3)=SIGF(3)+SM5(3)
  316. SIGF(4)=SIGF(4)+SM5(4)
  317. SIGF(5)=SIGF(5)+SM5(5)
  318. SIGF(6)=SIGF(6)+SM5(6)
  319. ELSE IF (M.EQ.6) THEN
  320. SM6(1)=SM6(1)*FLUA
  321. 1 +CONS*EFIC*(UNANU*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
  322. SM6(2)=SM6(2)*FLUA
  323. 1 +CONS*EFIC*(UNANU*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
  324. SM6(3)=SM6(3)*FLUA
  325. 1 +CONS*EFIC*(UNANU*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
  326. SM6(4)=SM6(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
  327. SM6(5)=SM6(5)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(5)
  328. SM6(6)=SM6(6)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(6)
  329. SIGF(1)=SIGF(1)+SM6(1)
  330. SIGF(2)=SIGF(2)+SM6(2)
  331. SIGF(3)=SIGF(3)+SM6(3)
  332. SIGF(4)=SIGF(4)+SM6(4)
  333. SIGF(5)=SIGF(5)+SM6(5)
  334. SIGF(6)=SIGF(6)+SM6(6)
  335. ELSE IF (M.EQ.7) THEN
  336. SM7(1)=SM7(1)*FLUA
  337. 1 +CONS*EFIC*(UNANU*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
  338. SM7(2)=SM7(2)*FLUA
  339. 1 +CONS*EFIC*(UNANU*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
  340. SM7(3)=SM7(3)*FLUA
  341. 1 +CONS*EFIC*(UNANU*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
  342. SM7(4)=SM7(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
  343. SM7(5)=SM7(5)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(5)
  344. SM7(6)=SM7(6)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(6)
  345. SIGF(1)=SIGF(1)+SM7(1)
  346. SIGF(2)=SIGF(2)+SM7(2)
  347. SIGF(3)=SIGF(3)+SM7(3)
  348. SIGF(4)=SIGF(4)+SM7(4)
  349. SIGF(5)=SIGF(5)+SM7(5)
  350. SIGF(6)=SIGF(6)+SM7(6)
  351. ELSE IF (M.EQ.8) THEN
  352. SM8(1)=SM8(1)*FLUA
  353. 1 +CONS*EFIC*(UNANU*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
  354. SM8(2)=SM8(2)*FLUA
  355. 1 +CONS*EFIC*(UNANU*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
  356. SM8(3)=SM8(3)*FLUA
  357. 1 +CONS*EFIC*(UNANU*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
  358. SM8(4)=SM8(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
  359. SM8(5)=SM8(5)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(5)
  360. SM8(6)=SM8(6)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(6)
  361. SIGF(1)=SIGF(1)+SM8(1)
  362. SIGF(2)=SIGF(2)+SM8(2)
  363. SIGF(3)=SIGF(3)+SM8(3)
  364. SIGF(4)=SIGF(4)+SM8(4)
  365. SIGF(5)=SIGF(5)+SM8(5)
  366. SIGF(6)=SIGF(6)+SM8(6)
  367. END IF
  368. 10 CONTINUE
  369.  
  370. DEFP(1)=DEPST(1)-((SIGF(1)-ANU*(SIGF(2)+SIGF(3)))/SE2
  371. 1 -(SIG0(1)-ANU*(SIG0(2)+SIG0(3)))/SE1)
  372. DEFP(2)=DEPST(2)-((SIGF(2)-ANU*(SIGF(1)+SIGF(3)))/SE2
  373. 1 -(SIG0(2)-ANU*(SIG0(1)+SIG0(3)))/SE1)
  374. DEFP(3)=DEPST(3)-((SIGF(3)-ANU*(SIGF(2)+SIGF(1)))/SE2
  375. 1 -(SIG0(3)-ANU*(SIG0(2)+SIG0(1)))/SE1)
  376. DEFP(4)=DEPST(4)-(1+ANU)*(SIGF(4)/SE2-SIG0(4)/SE1)
  377. DEFP(5)=DEPST(5)-(1+ANU)*(SIGF(5)/SE2-SIG0(5)/SE1)
  378. DEFP(6)=DEPST(6)-(1+ANU)*(SIGF(6)/SE2-SIG0(6)/SE1)
  379. DO I=1,NSTRS
  380. EPINF(I)=EPIN0(I)+DEFP(I)
  381. END DO
  382. GOTO 999
  383.  
  384.  
  385. *
  386. * Formulation DEFORMATIONS PLANES /AXISYMETRIQUE
  387. *
  388. ELSE IF ((IFOMOD.EQ.-1.AND.IFOUR.NE.-2).OR.
  389. & (IFOMOD.EQ.0.OR.IFOMOD.EQ.1)) THEN
  390. CONS=1.D0/((1.D0+ANU)*(1.D0-2.D0*ANU))
  391. DO 20 M=0,NCHAIN-1
  392. CALL MODFIC(TPS1,TPS2,M,WR12,WRK0,
  393. 1 NWA,EFIC,TR,E1,E2,KERRE,CMATE)
  394. SE1=SE1+E1
  395. SE2=SE2+E2
  396. FLUA=EXP(-TR*DT)
  397. IF (M.EQ.0) THEN
  398. SM0(1)=SM0(1)*FLUA
  399. 1 +CONS*EFIC*(UNANU*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
  400. SM0(2)=SM0(2)*FLUA
  401. 1 +CONS*EFIC*(UNANU*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
  402. SM0(3)=SM0(3)*FLUA
  403. 1 +CONS*EFIC*(UNANU*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
  404. SM0(4)=SM0(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
  405. SIGF(1)=SM0(1)
  406. SIGF(2)=SM0(2)
  407. SIGF(3)=SM0(3)
  408. SIGF(4)=SM0(4)
  409. ELSE IF (M.EQ.1) THEN
  410. SM1(1)=SM1(1)*FLUA
  411. 1 +CONS*EFIC*(UNANU*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
  412. SM1(2)=SM1(2)*FLUA
  413. 1 +CONS*EFIC*(UNANU*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
  414. SM1(3)=SM1(3)*FLUA
  415. 1 +CONS*EFIC*(UNANU*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
  416. SM1(4)=SM1(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
  417. SIGF(1)=SIGF(1)+SM1(1)
  418. SIGF(2)=SIGF(2)+SM1(2)
  419. SIGF(3)=SIGF(3)+SM1(3)
  420. SIGF(4)=SIGF(4)+SM1(4)
  421. ELSE IF (M.EQ.2) THEN
  422. SM2(1)=SM2(1)*FLUA
  423. 1 +CONS*EFIC*(UNANU*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
  424. SM2(2)=SM2(2)*FLUA
  425. 1 +CONS*EFIC*(UNANU*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
  426. SM2(3)=SM2(3)*FLUA
  427. 1 +CONS*EFIC*(UNANU*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
  428. SM2(4)=SM2(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
  429. SIGF(1)=SIGF(1)+SM2(1)
  430. SIGF(2)=SIGF(2)+SM2(2)
  431. SIGF(3)=SIGF(3)+SM2(3)
  432. SIGF(4)=SIGF(4)+SM2(4)
  433. ELSE IF (M.EQ.3) THEN
  434. SM3(1)=SM3(1)*FLUA
  435. 1 +CONS*EFIC*(UNANU*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
  436. SM3(2)=SM3(2)*FLUA
  437. 1 +CONS*EFIC*(UNANU*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
  438. SM3(3)=SM3(3)*FLUA
  439. 1 +CONS*EFIC*(UNANU*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
  440. SM3(4)=SM3(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
  441. SIGF(1)=SIGF(1)+SM3(1)
  442. SIGF(2)=SIGF(2)+SM3(2)
  443. SIGF(3)=SIGF(3)+SM3(3)
  444. SIGF(4)=SIGF(4)+SM3(4)
  445. ELSE IF (M.EQ.4) THEN
  446. SM4(1)=SM4(1)*FLUA
  447. 1 +CONS*EFIC*(UNANU*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
  448. SM4(2)=SM4(2)*FLUA
  449. 1 +CONS*EFIC*(UNANU*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
  450. SM4(3)=SM4(3)*FLUA
  451. 1 +CONS*EFIC*(UNANU*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
  452. SM4(4)=SM4(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
  453. SIGF(1)=SIGF(1)+SM4(1)
  454. SIGF(2)=SIGF(2)+SM4(2)
  455. SIGF(3)=SIGF(3)+SM4(3)
  456. SIGF(4)=SIGF(4)+SM4(4)
  457. ELSE IF (M.EQ.5) THEN
  458. SM5(1)=SM5(1)*FLUA
  459. 1 +CONS*EFIC*(UNANU*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
  460. SM5(2)=SM5(2)*FLUA
  461. 1 +CONS*EFIC*(UNANU*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
  462. SM5(3)=SM5(3)*FLUA
  463. 1 +CONS*EFIC*(UNANU*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
  464. SM5(4)=SM5(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
  465. SIGF(1)=SIGF(1)+SM5(1)
  466. SIGF(2)=SIGF(2)+SM5(2)
  467. SIGF(3)=SIGF(3)+SM5(3)
  468. SIGF(4)=SIGF(4)+SM5(4)
  469. ELSE IF (M.EQ.6) THEN
  470. SM6(1)=SM6(1)*FLUA
  471. 1 +CONS*EFIC*(UNANU*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
  472. SM6(2)=SM6(2)*FLUA
  473. 1 +CONS*EFIC*(UNANU*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
  474. SM6(3)=SM6(3)*FLUA
  475. 1 +CONS*EFIC*(UNANU*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
  476. SM6(4)=SM6(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
  477. SIGF(1)=SIGF(1)+SM6(1)
  478. SIGF(2)=SIGF(2)+SM6(2)
  479. SIGF(3)=SIGF(3)+SM6(3)
  480. SIGF(4)=SIGF(4)+SM6(4)
  481. ELSE IF (M.EQ.7) THEN
  482. SM7(1)=SM7(1)*FLUA
  483. 1 +CONS*EFIC*(UNANU*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
  484. SM7(2)=SM7(2)*FLUA
  485. 1 +CONS*EFIC*(UNANU*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
  486. SM7(3)=SM7(3)*FLUA
  487. 1 +CONS*EFIC*(UNANU*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
  488. SM7(4)=SM7(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
  489. SIGF(1)=SIGF(1)+SM7(1)
  490. SIGF(2)=SIGF(2)+SM7(2)
  491. SIGF(3)=SIGF(3)+SM7(3)
  492. SIGF(4)=SIGF(4)+SM7(4)
  493. ELSE IF (M.EQ.8) THEN
  494. SM8(1)=SM8(1)*FLUA
  495. 1 +CONS*EFIC*(UNANU*DEPST(1)+ANU*(DEPST(2)+DEPST(3)))
  496. SM8(2)=SM8(2)*FLUA
  497. 1 +CONS*EFIC*(UNANU*DEPST(2)+ANU*(DEPST(1)+DEPST(3)))
  498. SM8(3)=SM8(3)*FLUA
  499. 1 +CONS*EFIC*(UNANU*DEPST(3)+ANU*(DEPST(1)+DEPST(2)))
  500. SM8(4)=SM8(4)*FLUA+CONS*EFIC*(1.D0-2.D0*ANU)*DEPST(4)
  501. SIGF(1)=SIGF(1)+SM8(1)
  502. SIGF(2)=SIGF(2)+SM8(2)
  503. SIGF(3)=SIGF(3)+SM8(3)
  504. SIGF(4)=SIGF(4)+SM8(4)
  505. END IF
  506. 20 CONTINUE
  507.  
  508. DEFP(1)=DEPST(1)-((SIGF(1)-ANU*(SIGF(2)+SIGF(3)))/SE2
  509. 1 -(SIG0(1)-ANU*(SIG0(2)+SIG0(3)))/SE1)
  510. DEFP(2)=DEPST(2)-((SIGF(2)-ANU*(SIGF(1)+SIGF(3)))/SE2
  511. 1 -(SIG0(2)-ANU*(SIG0(1)+SIG0(3)))/SE1)
  512. DEFP(3)=DEPST(3)-((SIGF(3)-ANU*(SIGF(2)+SIGF(1)))/SE2
  513. 1 -(SIG0(3)-ANU*(SIG0(2)+SIG0(1)))/SE1)
  514. DEFP(4)=DEPST(4)-(1+ANU)*(SIGF(4)/SE2-SIG0(4)/SE1)
  515. DO I=1,NSTRS
  516. EPINF(I)=EPIN0(I)+DEFP(I)
  517. END DO
  518. GOTO 999
  519.  
  520. *
  521. * Formulation CONTRAINTES PLANES
  522. *
  523. ELSE IF (IFOMOD.EQ.-1.AND.IFOUR.EQ.-2) THEN
  524. * CONS=1.D0/(UNANU*ANU)
  525. CONS=1.D0/(1.D0-(ANU*ANU))
  526. DO 30 M=0,NCHAIN-1
  527. CALL MODFIC(TPS1,TPS2,M,WR12,WRK0,
  528. 1 NWA,EFIC,TR,E1,E2,KERRE,CMATE)
  529. SE1=SE1+E1
  530. SE2=SE2+E2
  531. FLUA=EXP(-TR*DT)
  532. IF (M.EQ.0) THEN
  533. SM0(1)=SM0(1)*FLUA
  534. 1 +CONS*EFIC*(DEPST(1)+ANU*DEPST(2))
  535. SM0(2)=SM0(2)*FLUA
  536. 1 +CONS*EFIC*(DEPST(2)+ANU*DEPST(1))
  537. SM0(3)=0.D0
  538. SM0(4)=SM0(4)*FLUA+CONS*EFIC*(UNANU)/2.D0*DEPST(4)
  539. SIGF(1)=SM0(1)
  540. SIGF(2)=SM0(2)
  541. SIGF(3)=SM0(3)
  542. SIGF(4)=SM0(4)
  543. ELSE IF (M.EQ.1) THEN
  544. SM1(1)=SM1(1)*FLUA
  545. 1 +CONS*EFIC*(DEPST(1)+ANU*DEPST(2))
  546. SM1(2)=SM1(2)*FLUA
  547. 1 +CONS*EFIC*(DEPST(2)+ANU*DEPST(1))
  548. SM1(3)=0.D0
  549. SM1(4)=SM1(4)*FLUA+CONS*EFIC*(UNANU)/2.D0*DEPST(4)
  550. SIGF(1)=SIGF(1)+SM1(1)
  551. SIGF(2)=SIGF(2)+SM1(2)
  552. SIGF(3)=SIGF(3)+SM1(3)
  553. SIGF(4)=SIGF(4)+SM1(4)
  554. ELSE IF (M.EQ.2) THEN
  555. SM2(1)=SM2(1)*FLUA
  556. 1 +CONS*EFIC*(DEPST(1)+ANU*DEPST(2))
  557. SM2(2)=SM2(2)*FLUA
  558. 1 +CONS*EFIC*(DEPST(2)+ANU*DEPST(1))
  559. SM2(3)=0.D0
  560. SM2(4)=SM2(4)*FLUA+CONS*EFIC*(UNANU)/2.D0*DEPST(4)
  561. SIGF(1)=SIGF(1)+SM2(1)
  562. SIGF(2)=SIGF(2)+SM2(2)
  563. SIGF(3)=SIGF(3)+SM2(3)
  564. SIGF(4)=SIGF(4)+SM2(4)
  565. ELSE IF (M.EQ.3) THEN
  566. SM3(1)=SM3(1)*FLUA
  567. 1 +CONS*EFIC*(DEPST(1)+ANU*DEPST(2))
  568. SM3(2)=SM3(2)*FLUA
  569. 1 +CONS*EFIC*(DEPST(2)+ANU*DEPST(1))
  570. SM3(3)=0.D0
  571. SM3(4)=SM3(4)*FLUA+CONS*EFIC*(UNANU)/2.D0*DEPST(4)
  572. SIGF(1)=SIGF(1)+SM3(1)
  573. SIGF(2)=SIGF(2)+SM3(2)
  574. SIGF(3)=SIGF(3)+SM3(3)
  575. SIGF(4)=SIGF(4)+SM3(4)
  576. ELSE IF (M.EQ.4) THEN
  577. SM4(1)=SM4(1)*FLUA
  578. 1 +CONS*EFIC*(DEPST(1)+ANU*DEPST(2))
  579. SM4(2)=SM4(2)*FLUA
  580. 1 +CONS*EFIC*(DEPST(2)+ANU*DEPST(1))
  581. SM4(3)=0.D0
  582. SM4(4)=SM4(4)*FLUA+CONS*EFIC*(UNANU)/2.D0*DEPST(4)
  583. SIGF(1)=SIGF(1)+SM4(1)
  584. SIGF(2)=SIGF(2)+SM4(2)
  585. SIGF(3)=SIGF(3)+SM4(3)
  586. SIGF(4)=SIGF(4)+SM4(4)
  587. ELSE IF (M.EQ.5) THEN
  588. SM5(1)=SM5(1)*FLUA
  589. 1 +CONS*EFIC*(DEPST(1)+ANU*DEPST(2))
  590. SM5(2)=SM5(2)*FLUA
  591. 1 +CONS*EFIC*(DEPST(2)+ANU*DEPST(1))
  592. SM5(3)=0.D0
  593. SM5(4)=SM5(4)*FLUA+CONS*EFIC*(UNANU)/2.D0*DEPST(4)
  594. SIGF(1)=SIGF(1)+SM5(1)
  595. SIGF(2)=SIGF(2)+SM5(2)
  596. SIGF(3)=SIGF(3)+SM5(3)
  597. SIGF(4)=SIGF(4)+SM5(4)
  598. ELSE IF (M.EQ.6) THEN
  599. SM6(1)=SM6(1)*FLUA
  600. 1 +CONS*EFIC*(DEPST(1)+ANU*DEPST(2))
  601. SM6(2)=SM6(2)*FLUA
  602. 1 +CONS*EFIC*(DEPST(2)+ANU*DEPST(1))
  603. SM6(3)=0.D0
  604. SM6(4)=SM6(4)*FLUA+CONS*EFIC*(UNANU)/2.D0*DEPST(4)
  605. SIGF(1)=SIGF(1)+SM6(1)
  606. SIGF(2)=SIGF(2)+SM6(2)
  607. SIGF(3)=SIGF(3)+SM6(3)
  608. SIGF(4)=SIGF(4)+SM6(4)
  609. ELSE IF (M.EQ.7) THEN
  610. SM7(1)=SM7(1)*FLUA
  611. 1 +CONS*EFIC*(DEPST(1)+ANU*DEPST(2))
  612. SM7(2)=SM7(2)*FLUA
  613. 1 +CONS*EFIC*(DEPST(2)+ANU*DEPST(1))
  614. SM7(3)=0.D0
  615. SM7(4)=SM7(4)*FLUA+CONS*EFIC*(UNANU)/2.D0*DEPST(4)
  616. SIGF(1)=SIGF(1)+SM7(1)
  617. SIGF(2)=SIGF(2)+SM7(2)
  618. SIGF(3)=SIGF(3)+SM7(3)
  619. SIGF(4)=SIGF(4)+SM7(4)
  620. ELSE IF (M.EQ.8) THEN
  621. SM8(1)=SM8(1)*FLUA
  622. 1 +CONS*EFIC*(DEPST(1)+ANU*DEPST(2))
  623. SM8(2)=SM8(2)*FLUA
  624. 1 +CONS*EFIC*(DEPST(2)+ANU*DEPST(1))
  625. SM8(3)=0.D0
  626. SM8(4)=SM8(4)*FLUA+CONS*EFIC*(UNANU)/2.D0*DEPST(4)
  627. SIGF(1)=SIGF(1)+SM8(1)
  628. SIGF(2)=SIGF(2)+SM8(2)
  629. SIGF(3)=SIGF(3)+SM8(3)
  630. SIGF(4)=SIGF(4)+SM8(4)
  631. END IF
  632. 30 CONTINUE
  633.  
  634. DEFP(1)=DEPST(1)-((SIGF(1)-ANU*(SIGF(2)+SIGF(3)))/SE2
  635. 1 -(SIG0(1)-ANU*(SIG0(2)+SIG0(3)))/SE1)
  636. DEFP(2)=DEPST(2)-((SIGF(2)-ANU*(SIGF(1)+SIGF(3)))/SE2
  637. 1 -(SIG0(2)-ANU*(SIG0(1)+SIG0(3)))/SE1)
  638. DEFP(3)=DEPST(3)-((SIGF(3)-ANU*(SIGF(2)+SIGF(1)))/SE2
  639. 1 -(SIG0(3)-ANU*(SIG0(2)+SIG0(1)))/SE1)
  640. DEFP(4)=DEPST(4)-(1+ANU)*(SIGF(4)/SE2-SIG0(4)/SE1)
  641. DO I=1,NSTRS
  642. EPINF(I)=EPIN0(I)+DEFP(I)
  643. END DO
  644. GOTO 999
  645.  
  646. ENDIF
  647. GOTO 999
  648.  
  649.  
  650. 999 RETURN
  651. END
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.  
  665.  
  666.  
  667.  
  668.  

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