Télécharger ddis.eso

Retour à la liste

Numérotation des lignes :

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

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