Télécharger cddis.eso

Retour à la liste

Numérotation des lignes :

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

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