Télécharger ddis.eso

Retour à la liste

Numérotation des lignes :

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

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