Télécharger cddis.eso

Retour à la liste

Numérotation des lignes :

  1. C CDDIS SOURCE PV 17/12/08 21:15:31 9660
  2. SUBROUTINE CDDIS(WRK52,WRK53,WRK54,NSTRS1,MFR1,IFOU,IB,
  3. 1 IGAU,NBPGAU,NBGMAT,NELMAT,INDLEG,IPWRKG,WRKGL)
  4. C DDIS SOURCE AM1 95/03/17 21:19:04 1569
  5. C SUBROUTINE DDIS : L'INITIALISATION ET L'APPEL DES LOI DE COMPORTEMENT
  6. C=========================================================================
  7. c SUBROUTINE DDIS(NSTRS,CMATE,N2EL,N2PTEL,WTRAV,MFR,IFOU,IB,
  8. c 1 IGAU,EPAIST,MELE,NPINT,NBPGAU,NBGMAT,NELMAT,SECT,
  9. c 2 LHOOK,CRIGI,NMATT,INDLEG,IPWRKG,WRKGL,WRK0,WRK1,KERRE)
  10. C
  11. IMPLICIT INTEGER(I-N)
  12. IMPLICIT REAL*8(A-H,O-Z)
  13. C
  14.  
  15. -INC PPARAM
  16. -INC CCOPTIO
  17. -INC SMCOORD
  18. -INC DECHE
  19. C
  20. ***********************************************************************
  21. * INITIALISATION ET APPEL DES LOIS DE COMPORTEMENT *
  22. ***********************************************************************
  23. *
  24. * ENTREES :
  25. * WRK0 SEGMENT DE TRAVAIL CONTENANT LES CARACTERISTIQUES
  26. * MATERIAUX
  27. * WRK1 SEGMENT DE TRAVAIL CONTENANT LES EFFORTS, LES DEPLACEMENTS
  28. * ET LA MATRICE DE HOOK
  29. * NMATT NOMBRE DE COMPOSANTES DE PROPRIETES DE MATERIAU
  30. * INDLEG CODAGE DES, TYPES DE LOI DE COMPORTEMENT RETENUS
  31. * WRKGL SEGMENT CONTENANT LES LOIS DE COMPORTEMENT DE LA SECTION
  32. * IPWRKG SEGMENT DE POINTEUR SUR LES LOIS CONTENUES DANS WRKGL
  33. * KERRE INDICATEUR D'ERREUR
  34. * WTRAV SEGMENT DE TRAVAIL CONTENANT LES TABLEAUX UTILISES POUR
  35. * LE CALCUL DE LA MATRICE DE HOOKE ELASTIQUE (SS-PROGRAMME CALSIG)
  36. *
  37. * N2EL = NBRE D ELEMENTS DANS SEGMENT DE HOOKE
  38. * N2PTEL= NBRE DE POINTS DANS SEGMENT DE HOOKE
  39. * MFR1 = NUMERO DE LA FORMULATION
  40. * IFOU = OPTION DE CALCUL
  41. * IB = NUMERO DE L ELEMENT COURANT
  42. * IGAU = NUMERO DU POINT COURANT
  43. * EPAIST= EPAISSEUR
  44. * NBPGAU= NBRE DE POINTS DE GAUSS
  45. * MELE = NUMERO DE L ELEMENT FINI
  46. * NPINT = NBRE DE POINTS D INTEGRATION
  47. * NBGMAT= NBRE DE POINTS DANS SEGMENT DE CARACTERISTIQUES
  48. * NELMAT= NBRE D ELEMENTS DANS SEGMENT DE CARACTERISTIQUES
  49. * SECT = SECTION
  50. * LHOOK = TAILLE DE LA MATRICE DE HOOKE
  51. *
  52. * SORTIES :
  53. * WRK1 SEGMENT DE TRAVAIL CONTENANT SOLLICITATIONS CORRIGEES
  54. * AU COURS DU PAS DE TEMPS CONSIDERE
  55. * KERRE INDICATEUR D'ERREUR
  56. *
  57. ***********************************************************************
  58. *
  59. * ATTENTION :
  60. * (ELEF1,ELDEP1) ET (ELEF2,ELDEP2) DEFINISSENT LE DOMAINE DE
  61. * COMPORTEMENT ELASTIQUE LINEAIRE PUR DE L'ELEMENT
  62. * CES COUPLES DE VALEURS DOIVENT DONC ETRE COHERENTS AVEC LA
  63. * MATRICE DE RIGIDITE DE L'ELEMENT (INERTIE ET MODULE D'YOUNG)
  64. *
  65. * CES DEUX COUPLES DE VALEURS SONT A DECLARER DANS LES OPTIONS A
  66. * 5 OU 7 POINTS (4 OU 6 POUR LA COMPRESSION)
  67. *
  68. * LES COUPLES (YEF1,YDEP1) ET (YEF2,YDEP2) TENANT COMPTE DE
  69. * L'ENDOMMAGEMENT SONT A RENTRER DANS L'OPTION 6 OU 7 POINTS
  70. *
  71. **********************************************************************
  72. C
  73. DIMENSION ICOMP(3),DD(5),IDP(3),CRIGI(12)
  74. C
  75. SEGMENT WRKGL
  76. REAL*8 TLOICO(NBLOI)
  77. ENDSEGMENT
  78. C
  79. SEGMENT IPWRKG
  80. POINTEUR IPOL(3).WRKGL
  81. ENDSEGMENT
  82. C
  83. C
  84. C INITIALISATIONS
  85. C
  86. JJ=0
  87. DO 40 II = 1,3
  88. IDP(II) = 0
  89. 40 ICOMP(II) = 0
  90. DO 41 II = 1,5
  91. 41 DD(II) = 0.0
  92. XLUNG = SQRT((XCOOR(1)-XCOOR(5))**2 + (XCOOR(2)-XCOOR(6))**2 +
  93. 1 (XCOOR(3)-XCOOR(7))**2)
  94. C
  95. C RECUPERATION DES COURBES ET DECODAGE DE INDLEG
  96. C
  97. DO 55 II = 1,2
  98. IF(INDLEG.GE.100)THEN
  99. ICOMP(3) = ICOMP(3) + 1
  100. INDLEG = INDLEG - 100
  101. END IF
  102. 55 CONTINUE
  103. DO 56 II = 1,2
  104. IF(INDLEG.GE.10)THEN
  105. ICOMP(2) = ICOMP(2) + 1
  106. INDLEG = INDLEG - 10
  107. END IF
  108. 56 CONTINUE
  109. IF(INDLEG.GE.1) ICOMP(1) = 1
  110. C
  111. C CALCUL DE L'INCREMENT DE CONTRAINTES
  112. C
  113. CALL CALSIG(DEPST,DDAUX,NSTRS1,CMATE,VALMAT,VALCAR,
  114. 1 N2EL,N2PTEL,MFR1,IFOU,IB,IGAU,EPAIST,NBPGAU,
  115. 2 MELE,NPINT,NBGMAT,NELMAT,SECT,LHOOK,TXR,XLOC,
  116. 3 XGLOB,D1HOOK,ROTHOO,DDHOMU,CRIGI,DSIGT,IRTD)
  117. *
  118. IF(IRTD.NE.1) THEN
  119. KERRE=69
  120. GOTO 998
  121. ENDIF
  122. *
  123. C
  124. C
  125. C RECUPERATION DES EFFORTS PRECEDANTS ET DES INCREMENTS
  126. C
  127. DO 57 II = 1,6
  128. 57 SIGF(II) = SIG0(II) + DSIGT(II)
  129. C
  130. C
  131. C COMPRESSION
  132. C
  133. C RECUPERATION DE LA LOI DE COMPORTEMENT ET VARIABLES INT.
  134. C
  135. IF (ICOMP(1).EQ.0)THEN
  136. GO TO 100
  137. ELSE
  138. JJ=JJ+1
  139. NBLOI = IPOL(JJ).TLOICO(/1)
  140. *
  141. IF (NBLOI.EQ .12) THEN
  142. YEFC2=(-1.*TLOICO(1))
  143. YDEPC2=(-1.*TLOICO(2))
  144. ELEFC2=(-1.* TLOICO(3))
  145. ELDEPC2=(-1.*TLOICO(4))
  146. ELEFC1=(-1.*TLOICO(7))
  147. ELDEPC1=(-1.*TLOICO(8))
  148. YEFC1=(-1.*TLOICO(9))
  149. YDEPC1=(-1.*TLOICO(10))
  150. UEFC1 =(-1.*TLOICO(11))
  151. UDEPC1 =(-1.*TLOICO(12))
  152. ELSE
  153. YEFC2=(-1.*TLOICO(1))
  154. YDEPC2=(-1.*TLOICO(2))
  155. ELEFC2=(-1.*TLOICO(1))
  156. ELDEPC2=(-1.*TLOICO(2))
  157. ELEFC1=(-1.*TLOICO(5))
  158. ELDEPC1=(-1.*TLOICO(6))
  159. YEFC1=(-1.*TLOICO(5))
  160. YDEPC1=(-1.*TLOICO(6))
  161. UEFC1=(-1.*TLOICO(7))
  162. UDEPC1=(-1.*TLOICO(8))
  163. ENDIF
  164. *
  165. IFLAGC = INT(VAR0(2))
  166. RRC = VAR0(3)
  167. EFMXC = VAR0(4)
  168. DEPMXC = VAR0(5)
  169. EFMNC = VAR0(6)
  170. DEPMNC = VAR0(7)
  171. DEPC = VAR0(8)
  172. XINT = VAR0(9)
  173. PLASC = VAR0(10)
  174. *
  175. RR1 = (ELEFC1 - ELEFC2)/(ELDEPC1 - ELDEPC2)
  176. EFC = SIG0(1)
  177. VAREFC = DSIGT(1)
  178. VARDPC = VAREFC / RR1
  179.  
  180. C
  181. C APPEL DE LA LOI DE COMPORTEMENT
  182. C
  183. VARDP0 = VARDPC
  184. IF((ABS(VARDP0)).GE.1.0E-9)THEN
  185. CALL DCMP(IFLAGC,IDP(1),ELEFC1,ELDEPC1,ELEFC2,ELDEPC2,
  186. 1 YEFC1,YDEPC1,YEFC2,YDEPC2,UEFC1,UDEPC1,
  187. 2 EFC,VARDPC,DEPC,DEPEC,DEPMXC,EFMXC,
  188. 3 DEPMNC,EFMNC,XINT,RRC)
  189. VARF(2) = IFLAGC
  190. VARF(3) = RRC
  191. VARF(4) = EFMXC
  192. VARF(5) = DEPMXC
  193. VARF(6) = EFMNC
  194. VARF(7) = DEPMNC
  195. VARF(8) = DEPC
  196. VARF(9) = XINT
  197. SIGF(1) = EFC
  198. DEPE = EFC / RR1
  199. VARDEP = DEPC - DEPE
  200. DD(1) = VARDEP - PLASC
  201. DEFP(1) = DD(1)
  202. VARF(10) = VARDEP
  203. ELSE
  204. DEFP(1) = DEFP(1)
  205. DO 51 II = 2,10
  206. 51 VARF(II) = VAR0(II)
  207. END IF
  208. END IF
  209. C
  210. C
  211. C FLEXION
  212. C
  213. C RECUPERATION DE LA LOI DE COMPORTEMENT ET VARIABLES INT.
  214. C
  215. 100 IF (ICOMP(2).EQ.0)THEN
  216. GO TO 200
  217. ELSE
  218. JJ=JJ+1
  219. NBLOI = IPOL(JJ).TLOICO(/1)
  220. *
  221. IF (NBLOI.EQ .14) THEN
  222. UEFF1 = (-1.*TLOICO(1))
  223. UDEPF1 = (-1.*TLOICO(2))
  224. YEFF1 = (-1.*TLOICO(3))
  225. YDEPF1 = (-1.*TLOICO(4))
  226. ELEFF1 = (-1.*TLOICO(5))
  227. ELDEPF1 = (-1.*TLOICO(6))
  228. ELEFF2 = (-1.*TLOICO(9))
  229. ELDEPF2 = (-1.*TLOICO(10))
  230. YEFF2 = (-1.*TLOICO(11))
  231. YDEPF2 = (-1.*TLOICO(12))
  232. UEFF2 = (-1.*TLOICO(13))
  233. UDEPF2 = (-1.*TLOICO(14))
  234. ELSE
  235. UEFF1 = (-1.*TLOICO(1))
  236. UDEPF1 = (-1.*TLOICO(2))
  237. YEFF1 = (-1.*TLOICO(3))
  238. YDEPF1 = (-1.*TLOICO(4))
  239. ELEFF1 = (-1.*TLOICO(3))
  240. ELDEPF1 = (-1.*TLOICO(4))
  241. ELEFF2 = (-1.*TLOICO(7))
  242. ELDEPF2 = (-1.*TLOICO(8))
  243. YEFF2 = (-1.*TLOICO(7))
  244. YDEPF2 = (-1.*TLOICO(8))
  245. UEFF2 = (-1.*TLOICO(9))
  246. UDEPF2 = (-1.*TLOICO(10))
  247. ENDIF
  248. *
  249. IFLAGF = INT(VAR0(11))
  250. RRF = VAR0(12)
  251. EFMXF = VAR0(13)
  252. DEPMXF = VAR0(14)
  253. EFMNF = VAR0(15)
  254. DEPMNF = VAR0(16)
  255. X0F = VAR0(17)
  256. DEPF = VAR0(18)
  257. PLASF = VAR0(19)
  258. *
  259. RR2 = (ELEFF1 - ELEFF2)/(ELDEPF1 - ELDEPF2)
  260. M2 = ICOMP(2) + 4
  261. EFF = SIG0(M2)
  262. VAREFF = DSIGT(M2)
  263. VARDPF = VAREFF / RR2
  264. C
  265. C APPEL DE LA LOI DE COMPORTEMENT
  266. C
  267. VARDP0 = VARDPF
  268. IF(ABS(VARDP0).GT.1.0E-9)THEN
  269. CALL DTAK(IFLAGF,IDP(2),ELEFF1,ELDEPF1,ELEFF2,ELDEPF2,
  270. 1 YEFF1,YDEPF1,YEFF2,YDEPF2,UEFF1,UDEPF1,
  271. 2 UEFF2,UDEPF2,EFF,VARDPF,DEPF,DEPEF,
  272. 3 DEPMXF,DEPMNF,EFMXF,EFMNF,X0F,RRF)
  273. VARF(11) = IFLAGF
  274. VARF(12) = RRF
  275. VARF(13) = EFMXF
  276. VARF(14) = DEPMXF
  277. VARF(15) = EFMNF
  278. VARF(16) = DEPMNF
  279. VARF(17) = X0F
  280. VARF(18) = DEPF
  281. SIGF(M2) = EFF
  282. DEPE = EFF / RR2
  283. VARDEP = DEPF - DEPE
  284. IF(M2.EQ.6)THEN
  285. DD(2) = VARDEP - PLASF
  286. DD(5) = (VARDEP - PLASF) / XLUNG
  287. ELSE
  288. DD(3) = -1.0 * (VARDEP - PLASF)
  289. DD(4) = (VARDEP - PLASF) / XLUNG
  290. END IF
  291. VARF(19) = VARDEP
  292. ELSE
  293. DO 52 II = 11,19
  294. 52 VARF(II) = VAR0(II)
  295. END IF
  296. END IF
  297. C
  298. C
  299. C CISAILLEMENT
  300. C
  301. C RECUPERATION DE LA LOI DE COMPORTEMENT ET VARIABLES INT.
  302. C
  303. 200 IF(ICOMP(3).EQ.0)THEN
  304. GO TO 300
  305. ELSE
  306. JJ= JJ+1
  307. NBLOI = IPOL(JJ).TLOICO(/1)
  308. *
  309. IF (NBLOI.EQ.14) THEN
  310. UEFT1 = (-1 * TLOICO(1))
  311. UDEPT1 = (-1 * TLOICO(2))
  312. YEFT1 = (-1 * TLOICO(3))
  313. YDEPT1 = (-1 * TLOICO(4))
  314. ELEFT1 = (-1 * TLOICO(5))
  315. ELDEPT1 = (-1 * TLOICO(6))
  316. ELEFT2 = (-1 * TLOICO(9))
  317. ELDEPT2 = (-1 * TLOICO(10))
  318. YEFT2 = (-1 * TLOICO(11))
  319. YDEPT2 = (-1 * TLOICO(12))
  320. UEFT2 = (-1 * TLOICO(13))
  321. UDEPT2 = (-1 * TLOICO(14))
  322. ELSE
  323. UEFT1 = (-1 * TLOICO(1))
  324. UDEPT1 = (-1 * TLOICO(2))
  325. YEFT1 = (-1 * TLOICO(3))
  326. YDEPT1 = (-1 * TLOICO(4))
  327. ELEFT1 = (-1 * TLOICO(3))
  328. ELDEPT1 = (-1 * TLOICO(4))
  329. ELEFT2 = (-1 * TLOICO(7))
  330. ELDEPT2 = (-1 * TLOICO(8))
  331. YEFT2 = (-1 * TLOICO(7))
  332. YDEPT2 = (-1 * TLOICO(8))
  333. UEFT2 = (-1 * TLOICO(9))
  334. UDEPT2 = (-1 * TLOICO(10))
  335. ENDIF
  336. *
  337. IFLAGS = INT(VAR0(20))
  338. RRS = VAR0(21)
  339. EFMXS = VAR0(22)
  340. DEPMXS = VAR0(23)
  341. EFMNS = VAR0(24)
  342. DEPMNS = VAR0(25)
  343. X01S = VAR0(26)
  344. X02S = VAR0(27)
  345. FINS = VAR0(28)
  346. EFLIMS = VAR0(29)
  347. DEPS = VAR0(30)
  348. PLASS = VAR0(31)
  349. *
  350. RR3 = (ELEFT1 - ELEFT2)/(ELDEPT1 - ELDEPT2)
  351. M3 = ICOMP(3) + 1
  352. EFS = SIG0(M3)
  353. VAREFS = DSIGT(M3)
  354. VARDPS =VAREFS / RR3
  355. C
  356. C APPEL DES LOIS DE COMPORTEMENT
  357. C
  358. VARDP0 = VARDPS
  359. C WRITE (6,*) 'RR entree=',RRS
  360. C WRITE (6,*) 'EF entree=',EFS
  361. C WRITE (6,*) 'DEP entree=',DEPS
  362. C WRITE (6,*) 'VARDEP entree=', VARDPS
  363. C WRITE (6,*) 'IFLAG entree=' , IFLAGS
  364. IF(ABS(VARDP0).GT.1.E-9)THEN
  365. CALL DTAI(IFLAGS,IDP(3),ELEFT1,ELDEPT1,ELEFT2,ELDEPT2,
  366. 1 YEFT1,YDEPT1,YEFT2,YDEPT2,UEFT1,UDEPT1,
  367. 2 UEFT2,UDEPT2,EFS,VARDPS,DEPS,EFLIMS,
  368. 3 DEPMXS,DEPMNS,EFMXS,EFMNS,X01S,X02S,FINS,RRS)
  369. VARF(20) = IFLAGS
  370. VARF(21) = RRS
  371. VARF(22) = EFMXS
  372. VARF(23) = DEPMXS
  373. VARF(24) = EFMNS
  374. VARF(25) = DEPMNS
  375. VARF(26) = X01S
  376. VARF(27) = X02S
  377. VARF(28) = FINS
  378. VARF(29) = EFLIMS
  379. VARF(30) = DEPS
  380. SIGF(M3) = EFS
  381. C WRITE (6,*) 'RR sortie=',RRS
  382. C WRITE (6,*) 'EF sortie=',EFS
  383. C WRITE (6,*) 'DEP sortie=',DEPS
  384. C WRITE (6,*) 'VARDEP sortie=', VARDPS
  385. C WRITE (6,*) 'IFLAG sortie=' , IFLAGS
  386. DEPE = EFS / RR3
  387. VARDEP = DEPS - DEPE
  388. C WRITE (6,*) 'VARDEP PLAST sortie=' , VARDEP
  389. IF(M3.EQ.2)THEN
  390. DD(2) = DD(2) + VARDEP - PLASS
  391. DD(5) = DD(5) + (VARDEP - PLASS) / XLUNG
  392. ELSE
  393. DD(3) = DD(3) + VARDEP - PLASS
  394. DD(4) = DD(4) + (VARDEP - PLASS) / XLUNG
  395. END IF
  396. VARF(31) = VARDEP
  397. ELSE
  398. DO 53 II = 20,31
  399. 53 VARF(II) = VAR0(II)
  400. END IF
  401. END IF
  402. C
  403. C MISE A JOUR DES VARIABLES INTERNES
  404. C
  405. 300 DEFP(2) = DEFP(2) + DD(2)
  406. DEFP(3) = DEFP(3) + DD(3)
  407. DEFP(5) = DEFP(5) + DD(4)
  408. DEFP(6) = DEFP(6) + DD(5)
  409. VARF(1) = VAR0(1) + SQRT(DD(1)**2 + DD(2)**2 + DD(3)**2)
  410. C
  411. C MISE A JOUR DE L'INDICE D'ERREUR
  412. C
  413. IF(IDP(1).NE.0) KERRE = -1
  414. IF(IDP(2).NE.0) KERRE = KERRE - 2
  415. IF(IDP(3).NE.0) KERRE = KERRE - 4
  416. C
  417. 998 RETURN
  418. END
  419.  
  420.  
  421.  
  422.  
  423.  
  424.  
  425.  
  426.  
  427.  
  428.  

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