Télécharger cddis.eso

Retour à la liste

Numérotation des lignes :

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

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