Télécharger ddis.eso

Retour à la liste

Numérotation des lignes :

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

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