Télécharger ccoinc.eso

Retour à la liste

Numérotation des lignes :

ccoinc
  1. C CCOINC SOURCE FANDEUR 22/05/02 21:15:03 11359
  2. SUBROUTINE CCOINC(wrk52,wrk53,wrk54,wrk2,wrk3,
  3. & IB,IGAU,NBPGAU,ecou,necou,iecou)
  4. C ECOINC SOURCE AM 00/10/05 21:18:26 3966
  5. c SUBROUTINE ECOINC(SIG0,DEPST,DDAUX,CMATE,VALMAT,VALCAR,N2EL,
  6. c . N2PTEL,var0,bid,bid,XMAT,PRECIS,WORK2,WORK,TRAC,
  7. c . SIGF,varf,DEFP,KERRE,MFR1,IB,IGAU,NSTRS1,EPAIST,MELE,NPINT,
  8. c . NBPGAU,NBGMAT,NELMAT,SECT,LHOOK,TXR,XLOC,XGLOB,D1HOOK,
  9. c . ROTHOO,DDHOMU,CRIGI,DSIGT,INPLAS)
  10. IMPLICIT INTEGER(I-N)
  11. IMPLICIT REAL*8(A-H,O-Z)
  12. C---------------------------------------------------------------------
  13. C ECOULEMENT PLASTIQUE POUR UN POINT
  14. C D 'APRES INCA
  15. C---------------------------------------------------------------------
  16. C
  17. C EN ENTREE :
  18. C
  19. C SIG0 CONTRAINTES AU DEBUT DU PAS
  20. C DEPST INCREMENT DE DEFORMATIONS TOTALES
  21. C ( THERMIQUE ENLEVEE )
  22. C var0 VARIABLES INTERNES DEDUT DU PAS
  23. C bid VARIABLES EXTERNES DEBUT DU PAS
  24. C VAREXF VARIABLES EXTERNES FIN DU PAS
  25. C XMAT COEFFICIENTS DU MATERIAU
  26. C PRECIS PRECISION POUR ITERATIONS INTERNES
  27. C WORK DES CARACTERISTIQUES
  28. C TRAC COURBE DE TRACTION
  29. C MFR1 INDICE DE FORMULATION
  30. C NSTRS1 NOMBRE DE CONTRAINTES CA2000
  31. C INPLAS NUMERO DU MODELE DE PLASTICITE
  32. * DDAUX = MATRICE DE HOOKE ELASTIQUE
  33. * CMATE = NOM DU MATERIAU
  34. * VALMAT= TABLEAU DE CARACTERISTIQUES DU MATERIAU
  35. * VALCAR= TABLEAU DE CARACTERISTIQUES GEOMETRIQUES
  36. * N2EL = NBRE D ELEMENTS DANS SEGMENT DE HOOKE
  37. * N2PTEL= NBRE DE POINTS DANS SEGMENT DE HOOKE
  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. * TXR,XLOC,XGLOB,D1HOOK,ROTHOO,DDHOMU,CRIGI = TABLEAUX UTILISES
  50. * UTILISES POUR LE CALCUL DE LA MATRICE DE HOOKE
  51. C
  52. C EN SORTIE :
  53. C
  54. C SIGF CONTRAINTES A LA FIN DU PAS
  55. C varf VARIABLES INTERNES FIN DU PAS
  56. C DEFP INCR. DE DEFORMATIONS PLASTIQUES
  57. C KERRE CODE D'ERREUR
  58. C = 0 SI TOUT OK
  59. C = 99 SI FORMULATION NON DISPONIBLE
  60. C EN PLASTICITE
  61. C = 1 SI DEPS EST NEGATIF
  62. C = 2 SI NOMBRE MAX D'ITERATIONS INTERNES DEPASSE
  63. C EN FLUAGE
  64. C = 3 DIMINUER LE PAS ( FLUAGE RUNGE )
  65. C = 4 DEPS EST NEGATIF
  66. C = 5 PAS DE CONVERGENCE INTERNE ( ANCIEN NSTOP=0 )
  67. C = 6 MATRICE SINGULIERE DANS CHAFLU
  68. C EN PLUS
  69. C = 7 PROBLEME DANS LES CARACT DU TUYAU
  70. C = 49 PB DANS LES ITER. INTERNES DRUCKER-PRAGER
  71. C = 51 PB DANS LES ITER. INTERNES DRUCKER-PRAGER
  72. C = 52 PB DANS LES ITER. INTERNES DRUCKER-PRAGER
  73. C = 53 PB DANS LES ITER. INTERNES DRUCKER-PRAGER
  74. C = 75 PB AVEC LA COURBE DE TRACTION
  75. C
  76. C-----------------------------------------------------------------------
  77. C VARIABLES PASSEES PAR LES COMMON ECOU ET NECOU
  78. C
  79. C IFOUR INDICE DU TYPE DE PROBLEME
  80. C -2 CONTRAINTES PLANES
  81. C -1 DEFORMATIONS PLANES
  82. C 0
  83. C N SERIE DE FOURIER
  84. C IMAPLA INDICE DE MATERIAU PLASTIQUE
  85. C 0 MATERIAU ELASTIQUE
  86. C 4 MODELE DE CHABOCHE
  87. C 5 MODELE DE DRUCKER-PRAGER
  88. C 7 MODELE DE ROUSSELIER
  89. C ITYP TYPE DE FORMULATION MECANIQUE
  90. C ITYP=1 CAS DES ELEMENTS MASSIFS
  91. C ITYP=2 CAS DES COQUES
  92. C ITYP=3 CAS DES MEMBRANES
  93. C ITYP=4 CAS DES CABLES ET DES BARRES
  94. C ITYP=5 CAS QUELCONQUE
  95. C ITYP=6 CAS DES CONTRAINTES PLANES
  96. C ITYP=7 CAS DES COQUES A NU=0. OU CONTRAINTES PLANES
  97. C ITYP=8 CAS DES MEMBRANES A NU=0. OU CONTRAINTES PLANES C ITYP=9 CAS DES COQUES EPAISSES
  98. C ITYP=10 CAS DES JOINTS
  99. C ITYP=11 CAS DES POUTRES
  100. C ITYP=12 CAS DES TUYAUX
  101. C ITYP=13 CAS DES COQUES AVEC CISAILLEMENT TRANSVERSE
  102. C IBI 1 SI ERREUR DANS TRACTI , 0 SINON
  103. C IPLAST 1 SI ON A PLASTIFIE , 0 SINON
  104. C ICINE = 1 ECROUISSAGE CINEMATIQUE ( CHABOCHE COMPRIS )
  105. C JFLUAG = 1 ON FLUE AVEC SIGMA
  106. C JFLUAG = 2 ON FLUE AVEC (SIG-X)
  107. C LFLUAG = 0 ON ECROUIT EN CAS DE FLUAGE
  108. C LFLUAG = 1 ON N'ECROUIT PAS EN CAS DE FLUAGE
  109. C JNTRIN = 0 LE TEMPS INTRINSEQUE EST LE TEMPS REEL
  110. C JNTRIN = 1 ON EVOLUE LE TEMPS INTRINSEQUE EN PLASTICITE ET FLUAGE
  111. C JNTRIN = 2 ON N'EVOLUE LE TEMPS INTRINSEQUE QU'EN FLUAGE
  112. C JNTRIN = 3 ON EST EN PLASTICITE ISOCHRONE
  113. C
  114. C TETI = TEMPERATURE AU DEBUT DU PAS
  115. C TET = TEMPERATURE A LA FIN DU PAS
  116. C-----------------------------------------------------------------------
  117.  
  118. -INC PPARAM
  119. -INC CCOPTIO
  120. -INC DECHE
  121. * Commun ECOU: sert de fourre-tout pour les tableaux
  122. *
  123. SEGMENT ECOU
  124. *** COMMON/ECOU/TEST,ALFAH,
  125. REAL*8 TEST, ALFAH,
  126. 1 HPAS,TEMPS,COVNMS(6),VECPRO(9),VALPRO(6),
  127. 2 CVNMSD(12),STOT(6),SIGEL(6),DSIGP(6),SIGT(6),W1(6),W2(6),
  128. 1 DALPHA(6),EPSPLA(6),E(12),XINV(3),
  129. 2 SIPLAD(6),DSIGP0(6),TET,TETI
  130. ENDSEGMENT
  131.  
  132. C COMMON/ECOU/TEST,ALFAH,
  133. C 1 HPAS,TEMPS,COVNMS(6),VECPRO(9),VALPRO(6),
  134. C 2 CVNMSD(12),STOT(6),SIGEL(6),DSIGP(6),SIGT(6),W1(6),W2(6),
  135. C 1 DALPHA(6),EPSPLA(6),E(12),XINV(3),
  136. C 2 SIPLAD(6),DSIGP0(6),TET,TETI
  137. C
  138. SEGMENT IECOU
  139. * COMMON/IECOU/NYOG,NYNU,NYALFA,NYSMAX,NYN,NYM,NYKK,
  140. INTEGER icow1,icow2,icow3,icow4,icow5,icow6,icow7,
  141. C INTEGER NYOG, NYNU, NYALFA,NYSMAX,NYN, NYM, NYKK,
  142. 1 icow8,icow9,icow10,icow11,icow12,icow13,icow14,icow15,icow16,
  143. C . NYALF1,NYBET1,NYR, NYA, NYRHO,NSIGY, NNKX, NYKX, IND,
  144. 2 icow17,icow18,icow19,icow20,icow21,icow22,icow23,icow24,
  145. C . NSOM, NINV, NINCMA,NCOMP, JELEM, LEGAUS,INAT, NCXMAT,
  146. 3 icow25,icow26,icow27,icow28,icow29,icow30,icow31,
  147. C . LTRAC, MFR, IELE, NHRM, NBNN, NBELEM,ICARA,
  148. 4 icow32,icow33,NSTRS1,MFR1,NBGMAT,NELMAT,icow38,
  149. C . LW2, NDEF, NSTRSS,MFR1, NBGMAT,NELMAT,MSOUPA,
  150. 5 icow39,icow40,icow41,icow42,icow43,icow44
  151. C . NUMAT1,LENDO, NBBB, NNVARI,KERR1, MELEME
  152. INTEGER icow45,icow46,icow47,icow48,icow49,icow50,
  153. . icow51,icow52,icow53,icow54,icow55,icow56
  154. . icow57,icow58
  155. ENDSEGMENT
  156.  
  157. *
  158. * Commun NECOU utilisé dans ECOINC
  159. *
  160. SEGMENT NECOU
  161. * COMMON/NECOU/NCOURB,IPLAST,IT,IMAPLA,ISOTRO,
  162. INTEGER NCOURB,IPLAST,IT,IMAPLA,ISOTRO,
  163. . ITYP,IFOURB,IFLUAG,
  164. . ICINE,ITHER,IFLUPL,ICYCL,IBI,
  165. . JFLUAG,LEGAUS,LFLUAG,
  166. . IRELAX,JNTRIN,MFLUAG,JELEM,JGRDEF
  167. ENDSEGMENT
  168.  
  169.  
  170. C COMMON/NECOU/NCOURB,IPLAST,IT,IMAPLA,ISOTRO,
  171. C . ITYP,IFOURB,IFLUAG,
  172. C . ICINE,ITHER,IFLUPL,ICYCL,IBI,
  173. C . JFLUAG,LEGAUS,LFLUAG,
  174. C . IRELAX,JNTRIN,MFLUAG,JELEM,JGRDEF
  175. C
  176. *
  177. SEGMENT WRK2
  178. REAL*8 TRAC(LTRAC)
  179. ENDSEGMENT
  180. *
  181. SEGMENT WRK3
  182. REAL*8 WORK(LW),WORK2(LW2)
  183. ENDSEGMENT
  184.  
  185. REAL*8 DDOT
  186. EXTERNAL DDOT
  187. *
  188. DIMENSION SIGMA(6),DSIGMA(6),SPHER(6),AUXIL(6),COEF(40)
  189. DIMENSION DIV(7),SIGFIN(6),DEFPLA(6)
  190. DIMENSION TABID(6),TABID2(6)
  191. REAL*8 CRIGI(12)
  192. REAL*8 EI(1)
  193. C ZZZZZZZZZZZZZZZZZZZZZZZ
  194. C DIMENSIONS A REVOIR
  195. C ZZZZZZZZZZZZZZZZZZZZZ
  196. DIMENSION DHOOK(1),SIG(130),EPS(130)
  197. DIMENSION ORMAT(1),ANORM(1)
  198. DIMENSION DSIGZE(6),DETFNO(1),NNNAA(13)
  199. DATA ITMAX/15/
  200. DATA PI4,R33,R22/0.785398164D0,1.732050808D0,1.414213562D0/
  201. DATA A,B,C,D/.577350269D0,.7071067814D0,.4082482904D0,
  202. . -0.8164965808D0/
  203. DATA A1/1.D0/
  204. DATA A2/.5D0/
  205. DATA A3/3.D0/
  206. DATA COEF/0.D0,1.5D0,1.5D0,3.D0,3.D0,3.D0,0.5D0,1.5D0,3.D0,0.5D0,
  207. . 1.5D0,3.D0,0.D0,0.D0,1.D0,0.D0,0.D0,0.D0,1.D0,
  208. . 1.D0,1.D0,2.D0,2.D0,2.D0,0.5D0,1.5D0,0.D0,3.D0,
  209. . 1.D0,0.D0,0.D0,1.D0,1.D0,1.D0,0.5D0,1.5D0,0.D0,3.D0,3.D0,3.D0/
  210. DATA XRF/0.0001D0/
  211. DATA NNNAA/6,6,3,3,6,4,6,1,6,3,6,6,6/
  212. C-----------------------------------------------------------------------
  213. C CONVENTION DE REMPLISSAGE DES MEMOIRES
  214. C-----------------------------------------------------------------------
  215. C
  216. C XMAT(1) MODULE D'YOUNG
  217. C XMAT(2) COEFFICIENT DE POISSON
  218. C
  219. C TRAC(1 A 2*NCOURB) COURBE DE TRACTION
  220. C WORK( " +1) ALFAH POUR COQUES PLASTICITE GLOBALE
  221. C WORK( " +..) DONNEES POUR CRITERE POUTRES GLOBALES
  222. C
  223. C MODELE ISOTROPE
  224. C var0(1) EPS*
  225. C
  226. C MODELE CINEMATIQUE LINEAIRE
  227. C var0(1) EPS*
  228. C var0(2) A var0(1+IBOU) DEPLACEMENT DE LA SPHERE
  229. C
  230. C MODELE CHABOCHE
  231. C XMAT(5) .... COEFFICIENTS A,C,...
  232. C var0(1) EPS*
  233. C var0(2) A var0(1+IBOU) DEPLACEMENT DE LA SPHERE 1
  234. C var0(2+IBOU) A var0(1+2*IBOU) " " " " 2
  235. C ICENT2 = 1 SI ON A 2 CENTRES
  236. C
  237. C MODELE DRUCKER-PRAGER
  238. C XMAT(5) .... XMAT(13) = LES CONSTANTES DU MODELE
  239. C var0(1) EPS*
  240. C
  241. C MODELE ROUSSELIER
  242. C
  243. C MODELE DE CYCLAGE
  244. C
  245. C MODELE A TEMPS INTRINSEQUE ( FLUAGE ET PLASTICITE ISOCHRONE )
  246. C var0(.) TIMEXI TEMPS INTRINSEQUE DE DEBUT DE PAS
  247. C
  248. C--------------------------------------------------------------------
  249. C REMPLISSAGE
  250. C-----------------------------------------------------------------------
  251. YUNG=XMAT(1)
  252. XNU =XMAT(2)
  253. C
  254. CZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
  255. C REMPLISSAGE A ACTUALISER SELON LES MODELES
  256. CZZZZZZZZZZZZZZZZZZZZZZZZZZZ
  257. CZZZZZZZZZZZZZZZZZZZZZZ
  258. C VARIABLES A RECUPERER
  259. CZZZZZZZZZZZZZZZZZZZZZZ
  260. C ORMAT MATERIAU ORTHOTROPE DANS XMAT
  261. C ANORM A VOIR DANS XMAT OU DANS VARIN
  262. C EPENT DANS VARIN
  263. C VECPRO,VALPRO DANS XMAT
  264. C COVNMS,CVNMSD DANS XMAT ( SELON LES CAS )
  265. C
  266. C IT DANS VAREXT
  267. C EPSFLU DANS VARINT
  268. C SIG,EPS DANS XMAT
  269. C DETFNO DANS VARIN ????
  270. C DSIGZE DANS VARIN ( POUR FLUAGE RELAX )
  271. C SIPLAD DANS VARIN ( POUR FLUAGE RELAX ) ...
  272. C ... ( CE SONT LES DEFORMATIONS OU CONTRAINTES (A VOIR) PLASTIQUES
  273. C AU DEBUT DU PAS )
  274. C TEMPS , HPAS DANS VAREXT
  275. C TET,TETI DANS VAREXT
  276. C
  277. EPSM1=var0(1)
  278. TIMEXI=var0(1)
  279. DPSM1=var0(1)
  280. DPSM2=var0(1)
  281. EPENT=var0(1)
  282. EPSFLU=var0(1)
  283. DETFNO(1)=var0(1)
  284. DSIGZE(1)=var0(1)
  285. TEMPS0=bid(1)
  286. IT=nint(bid(3))
  287. TEMPS=bid(1)
  288. TETI=bid(2)
  289. TET =bid(2)
  290. DO I=1,NCOURB
  291. SIG(I)=TRAC(2*I-1)
  292. EPS(I)=TRAC(2*I)
  293. ENDDO
  294. ORMAT(1)=XMAT(1)
  295. DHOOK(1)=XMAT(1)
  296. C----------------------------------------------------------------------
  297. C INITIALISATIONS
  298. C----------------------------------------------------------------------
  299. KERRE=0
  300. JA=1
  301. JC=1
  302. IA=1
  303. C
  304. C PETIT TEST SUR NU POUR CERTAINS CAS
  305. C
  306. IF(MFR1.EQ.3.AND.IFOURB.EQ.-2.AND.XNU.NE.0.D0) THEN
  307. KERRE=38
  308. RETURN
  309. ENDIF
  310. CZZZZZZZZZZZZZ
  311. C PROVISOIRE
  312. CZZZZZZZZZZZZ
  313. ANORM(1)=XMAT(5)
  314. ICENT2=0
  315. IF(INPLAS.EQ.12.OR.INPLAS.EQ.13) ICENT2=1
  316. IF(INPLAS.EQ.7) NUMCHA=1
  317. IF(INPLAS.EQ.11) NUMCHA=2
  318. IF(INPLAS.EQ.12) NUMCHA=3
  319. IF(INPLAS.EQ.13) NUMCHA=4
  320. C
  321. TEST=0.5D00*PRECIS
  322. HPAS=TEMPS-TEMPS0
  323. MCOD=1
  324.  
  325.  
  326. C cas particulier pour elastique non-lineaire equiplas
  327.  
  328. if(INPLAS.EQ.87) THEN
  329. EPST=0.D0
  330. SIG0(1)=0.D0
  331. DEPST(1)=DEPST(1) + VAR0(2)
  332. EPSM1 =0.D0
  333. ENDIF
  334. *
  335. * CALCUL DE DSIGT
  336. *
  337. CALL CALSIG(DEPST,DDAUX,NSTRS1,CMATE,VALMAT,VALCAR,
  338. 1 N2EL,N2PTEL,MFR1,IFOURB,IB,IGAU,EPAIST,
  339. 2 NBPGAU,MELE,NPINT,NBGMAT,NELMAT,SECT,LHOOK,TXR,
  340. 3 XLOC,XGLOB,D1HOOK,ROTHOO,DDHOMU,CRIGI,DSIGT,IRTD)
  341. *
  342. IF(IRTD.NE.1) THEN
  343. KERRE=69
  344. GOTO 1000
  345. ENDIF
  346. *
  347. * TRAITEMENT DES COQ2 ET MASSIF 2D EN CAS DE MATERIAU
  348. * UNIDIRECTIONNEL
  349. *
  350. * LES VARIABLES INTERNES SONT DANS LE REPERE UNIDIRECTIONNEL
  351. * ON SE LIMITE AU CAS AXISYMETRIQUE ?
  352. *
  353. IF (CMATE.EQ.'UNIDIREC'.AND.INPLAS.NE.0) THEN
  354. IF(MELE.EQ.44.OR.(MFR1.EQ.1.AND.IFOURB.LE.0)) THEN
  355. APHI=0.D0
  356. *
  357. * CAS MASSIF : ON AJOUTE L'ANGLE DU REPERE
  358. * DE L'ELEMENT AVEC LE REPERE GLOBAL
  359. *
  360. IF(MFR1.EQ.1) APHI=ATAN2(TXR(2,1),TXR(1,1))
  361. DO 1996 I=1,NSTRS1
  362. TABID(I)=SIG0(I)
  363. TABID2(I)=DSIGT(I)
  364. 1996 CONTINUE
  365. ANG = ATAN2(XMAT(4),XMAT(3)) + APHI
  366. CALL CHREP2(TABID,SIG0,ANG,NSTRS1,MFR1,1,KERRE)
  367. CALL CHREP2(TABID2,DSIGT,ANG,NSTRS1,MFR1,1,KERRE)
  368. IF(KERRE.NE.0) RETURN
  369. ELSEIF(MFR1.EQ.1.AND.IFOURB.EQ.2) THEN
  370. DO 996 I=1,NSTRS1
  371. TABID(I)=SIG0(I)
  372. TABID2(I)=DSIGT(I)
  373. 996 CONTINUE
  374. CALL CHREP3(TABID,SIG0,XMAT,TXR,NSTRS1,1,1,KERRE)
  375. CALL CHREP3(TABID2,DSIGT,XMAT,TXR,NSTRS1,1,1,KERRE)
  376.  
  377. ENDIF
  378. ENDIF
  379. *
  380. CALL VISAVI(SIG0,DSIGT,var0,SIGMA,DSIGMA,SPHER,AUXIL,
  381. . SIGF,DEFP,varf,SIGFIN,DEFPLA,
  382. . DSIGZE,ICENT2,MCOD,IBOU,MFR1,NSTRS1,WORK,CMATE,ecou,necou)
  383. IF(ITYP.EQ.0) THEN
  384. KERRE=99
  385. RETURN
  386. ENDIF
  387. C-----------------------------------------------------------------------
  388. EI(1)=YUNG
  389. UNSYG=1.D00/YUNG
  390. U5SNU=1.5D00/(1.D00+XNU)
  391. U5DMU=U5SNU*YUNG
  392. SREF=YUNG*XRF
  393. IPLAST=0
  394. LCGDF=36
  395. LPLUS=6
  396. ITER=1
  397. LAPOIN=0
  398. C
  399. C CAS DES COQUES EN GLOBAL - ON RECUPERE LE ALFAH
  400. C
  401. ALFAH=1.D0
  402. IF(ITYP.EQ.2) ALFAH=WORK(2)**2
  403. IF(ITYP.EQ.7) ALFAH=WORK(2)**2
  404. UNALF=0.D0
  405. IF(ALFAH.GE.1.D-12) UNALF=1.D0/ALFAH
  406. C
  407. C CAS DES BARRES ET DES CABLES
  408. C
  409. IF(ITYP.EQ.4) THEN
  410. DIV(1)=1.D0
  411. DIV(2)=1.D0
  412. DIV(3)=1.D0/WORK(1)
  413. ENDIF
  414.  
  415. C
  416. C CAS DES POUTRES
  417. C
  418. IF(ITYP.NE.11) GO TO 841
  419. DIV(1)=1.D0/WORK(4)
  420. DIV(2)=1.D0
  421. DIV(3)=1.D0
  422. DIV(4)=WORK(10)/WORK(1)
  423. DIV(5)=WORK(11)/WORK(2)
  424. DIV(6)=WORK(12)/WORK(3)
  425. IF(DIV(4).EQ.0.D0) DIV(4)=1.D-10/SQRT(WORK(1)*WORK(4))
  426. IF(DIV(5).EQ.0.D0) DIV(5)=1.D-10/SQRT(WORK(2)*WORK(4))
  427. IF(DIV(6).EQ.0.D0) DIV(6)=1.D-10/SQRT(WORK(3)*WORK(4))
  428. GO TO 761
  429. 841 CONTINUE
  430. C
  431. C CAS DES TUYAUX
  432. C
  433. IF(ITYP.NE.12) GO TO 842
  434. EPAIS=WORK(1)
  435. REXT=WORK(2)
  436. RMOY=REXT-EPAIS*0.5D0
  437. RACO=WORK(3)
  438. GAM=1.D0
  439. XK=1.D0
  440. IF(RACO.EQ.0.D0) GO TO 765
  441. XLAM=RMOY*RMOY/EPAIS/RACO
  442. XK=1.65D0*XLAM
  443. IF(XK.LT.1.D0) XK=1.D0
  444. GAM=0.8888888888888889D0*(XLAM)**0.6666666666666667D0
  445. IF(GAM.LT.1.D0) GAM=1.D0
  446. 765 CONTINUE
  447. C
  448. C NB 23/09/98
  449. C VALEURS PAR DEFAUT POUR LES CFFX CFMX CFMY
  450. C CFMZ CFPR ( COEFFICIENTS POUR CALCULER LES
  451. C CONTRAINTES DE MEMBRANE, TORSION, FLEXIONS
  452. C DANS LE PLAN, HORS PLAN ET CIRCONFERENTIELLE
  453. C DUE A LA PRESSION )
  454. C POUR L'INSTANT PAS DE CONTRAINTE CIRCONFERENTIELLE
  455. C DUE A LA PRESSION ON N'UTILISE DONC PAS DIV(7)
  456. C
  457. C
  458. DIV(1)=1.D0
  459. DIV(2)=1.D0
  460. DIV(3)=1.D0
  461. DIV(4)=R33
  462. DIV(5)=PI4*GAM
  463. DIV(6)=DIV(5)
  464. DIV(7)=R22*0.5D0
  465. IF(IDIM.EQ.2) THEN
  466. PRES1=WORK(6)
  467. CISA1=WORK(7)
  468. IXCAR1=12
  469. IDEB1=8
  470. ELSE IF(IDIM.EQ.3) THEN
  471. PRES1=WORK(7)
  472. CISA1=WORK(8)
  473. IXCAR1=13
  474. IDEB1=9
  475. ENDIF
  476. C
  477. JDIV1=2
  478. DO IBA=IDEB1,IXCAR1
  479. JDIV1=JDIV1+1
  480. VCAR1=WORK(IBA)
  481. IF (VCAR1.NE.-1.D0) DIV(JDIV1)=WORK(IBA)
  482. ENDDO
  483. C
  484. C NB 23/09/98
  485. C TRANSFERT DE CFFX DANS DIV(1) ET REMISE A
  486. C 1.D0 DE DIV(3)
  487. C
  488. DIV(1) = DIV(3)
  489. DIV(3)=1.D0
  490. C
  491. VX=WORK(4)
  492. VY=WORK(5)
  493. VZ=WORK(6)
  494. CALL TUYCAR(WORK,CISA1,VX,VY,VZ,KERRE,2)
  495. IF (KERRE.NE.0) THEN
  496. KERRE=7
  497. RETURN
  498. ENDIF
  499. C
  500. C NB 23/09/98
  501. C DIVISION DE DIV(5) ET DIV(6) PAR XK
  502. C CAR TUYCAR SORT LES INERTIES MODIFIEES
  503. C POUR LE CALCUL DES DEFORMATIONS PAR EPSIG
  504. C
  505. DIV(5)=DIV(5)/XK
  506. DIV(6)=DIV(6)/XK
  507. C
  508. DIV(1)=DIV(1)/WORK(4)
  509. DIV(4)=DIV(4)*RMOY/WORK(1)
  510. DIV(5)=DIV(5)*RMOY/WORK(2)
  511. DIV(6)=DIV(6)*RMOY/WORK(3)
  512. 761 CONTINUE
  513. E(1)=YUNG
  514. E(2)=0.D0
  515. E(3)=0.D0
  516. E(4)=YUNG*1.5D0/(1.D0+XNU)
  517. E(5)=YUNG
  518. E(6)=YUNG
  519. 842 CONTINUE
  520. C
  521. IF(ICINE.EQ.0.OR.JFLUAG.EQ.1) GO TO 204
  522. C
  523. C ON EST EN CINEMATIQUE ( PLASTIQUE OU FLUAGE )
  524. C DANS CE CAS ON FLUE AVEC SIGMA-ALPHA QUE L'ON CALCULE
  525. C
  526. DO IBA=1,IBOU
  527. SIGMA(IBA)=SIGMA(IBA)-SPHER(IBA)
  528. ENDDO
  529. 204 CONTINUE
  530. C
  531. IF(JNTRIN.EQ.0) GO TO 830
  532. TIMEXF=TIMEXI
  533. GO TO 831
  534. 830 TIMEXI=TEMPS-HPAS
  535. TIMEXF=TEMPS
  536. 831 CONTINUE
  537. IF(ITYP.NE.11.AND.ITYP.NE.12.AND.ITYP.NE.4) GO TO 844
  538. DO IBA=1,IBOU
  539. SIGMA(IBA)=SIGMA(IBA)*DIV(IBA)
  540. IF(ICINE.EQ.0) GO TO 845
  541. IF(JFLUAG.EQ.1.AND.LFLUAG.EQ.1) GO TO 845
  542. SPHER(IBA)=SPHER(IBA)*DIV(IBA)
  543. 845 CONTINUE
  544. DSIGMA(IBA)=DSIGMA(IBA)*DIV(IBA)
  545. ENDDO
  546. 844 CONTINUE
  547. DO IBA=1,IBOU
  548. STOT(IBA)=SIGMA(IBA)+DSIGMA(IBA)
  549. ENDDO
  550. C----------------------------------------------------------------------
  551. C CALCUL DE LA LIMITE ELASTIQUE
  552. C----------------------------------------------------------------------
  553. IF(LFLUAG.EQ.1) GO TO 261
  554. IF(IMAPLA.NE.4) GO TO 262
  555. BPSTAR=EPSM1
  556. ICOD=1
  557. CALL CHALIM(BPSTAR,SELAS,XMAT,TET,ICOD,
  558. . BID,BID,BID,BID,BID1,BID2,BI3,BI4,BI5,BI6,IBID,IBID,NUMCHA)
  559. GO TO 261
  560. 262 IF(IMAPLA.NE.5) GO TO 263
  561. * REMPLACEMENT XMAT(7) PAR XMAT(12) AM 8/3/90
  562. * TEST SELON EPSM1 AM 28/1/91
  563. IF(EPSM1.EQ.0.D0) THEN
  564. SELAS = XMAT(12)
  565. ELSE
  566. SELAS = XMAT(7) + EPSM1 * XMAT(13)
  567. *
  568. * AM 24/5/93 TEST SUR SELAS
  569. *
  570. IF( SELAS.LT.0.D0) THEN
  571. SELAS = 0.D0
  572. ENDIF
  573. *
  574. ENDIF
  575. GO TO 261
  576. 263 CONTINUE
  577. EPSTAR=EPSM1
  578. IF(ICINE.EQ.1) EPSTAR=0.D0
  579. CALL TRACTI(SELAS,EPSTAR,SIG,EPS,NCOURB,2,IBI)
  580. IF(IBI.EQ.1) THEN
  581. KERRE=75
  582. GOTO 1000
  583. ENDIF
  584. *
  585. 261 CONTINUE
  586. CZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
  587. C A VOIR CE QU'IL Y A DANS ANORM
  588. CZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
  589. IF(IMAPLA.EQ.7) COVNMS(1)=ANORM(2*JC-1)
  590. IF(IMAPLA.EQ.7.AND.IT.EQ.1) ANORM(2*JC)=1.D-20
  591. *
  592. * SI MATERIAU DRUCKER PRAGER ON CHERCHE LE CRITERE
  593. * AVEC LEQUEL ON DOIT FAIRE LA PROJECTION ET LE CRITERE
  594. IXMAT=5
  595. IF(IMAPLA.EQ.5.AND.EPSM1.EQ.0.D0) IXMAT=10
  596. CALL CKRIT(IMAPLA,STOT,ITYP,XMAT(IXMAT),ALFAH,COVNMS,XINV,SSTAR)
  597. SJ1=XINV(1)
  598. SJ2=XINV(2)
  599. IF(IMAPLA.EQ.0) GO TO 3
  600. IF(JFLUAG.NE.0) GO TO 4
  601. C---------------------------------------------------------------------
  602. C A T'ON DEPASSE LA LIMITE ELASTIQUE
  603. C---------------------------------------------------------------------
  604. PETI=1.1D00*TEST*SSTAR
  605. CALL EPSPRE(SSTAR,SELAS,PETI,ITRY)
  606. IF(ITRY.EQ.0.AND.SSTAR.GT.SELAS) GO TO 4
  607. C----------------------------------------------------------------------
  608. C ON N'A PAS PLASTIFIE
  609. C----------------------------------------------------------------------
  610. 3 CONTINUE
  611. IF(ITYP.EQ.11.OR.ITYP.EQ.12.OR.ITYP.EQ.4) THEN
  612. DO IBA=1,IBOU
  613. IF(ICINE.NE.0) SPHER(IBA)=SPHER(IBA)/DIV(IBA)
  614. STOT(IBA)=STOT(IBA)/DIV(IBA)
  615. ENDDO
  616. ENDIF
  617. DO IBA=1,IBOU
  618. SIGFIN(IBA)=STOT(IBA)
  619. DEFPLA(IBA)=0.D0
  620. DSIGMA(IBA)=0.D0
  621. ENDDO
  622. IF(INPLAS.EQ.87) THEN
  623. VARF(2)=DEPST(1)
  624. ENDIF
  625. STARF=SSTAR
  626. EPST=EPSM1
  627. GO TO 31
  628. C----------------------------------------------------------------------
  629. C ON A PLASTIFIE
  630. C----------------------------------------------------------------------
  631. 4 CONTINUE
  632. IPLAST=1
  633. PENTE=0.D0
  634. SLOPE=0.D0
  635. DO IBA=1,IBOU
  636. W1(IBA)=SIGMA(IBA)
  637. ENDDO
  638. CALL CKRIT(IMAPLA,W1,ITYP,XMAT(5),ALFAH,COVNMS,XINV,S0)
  639. EPSTAR=EPSM1
  640. C
  641. C EN FLUAGE SI ON LA VITESSE DE FLUAGE NE DEPEND QUE
  642. C DU EPSILON EQUIVALENT DE FLUAGE CUMULE ON VA LE LIRE DANS EPSFLU
  643. C
  644. IF(JFLUAG.NE.0.AND.IFLUPL.EQ.1) EPSTAR=EPSFLU
  645. EPSIN=EPSTAR
  646. SEL=0.D0
  647. SPLA=1.D0
  648. IF(JFLUAG.EQ.0) THEN
  649. CALL SIGELP(SIGMA,DSIGMA,SIGEL,DSIGP,STOT,PETI,
  650. . ITYP,SEL,SPLA,IBOU,S0,SELAS,XMAT(5),COVNMS,ALFAH,
  651. . IMAPLA,SSTAR)
  652. CALL SHIFTD(SIGEL,DALPHA,IBOU)
  653. ELSE
  654. DO IBA=1,IBOU
  655. SIGEL(IBA)=SIGMA(IBA)+SEL*DSIGMA(IBA)
  656. DALPHA(IBA)=SIGEL(IBA)
  657. DSIGP(IBA)=SPLA*DSIGMA(IBA)
  658. ENDDO
  659. ENDIF
  660. DTIMEX=SPLA*HPAS
  661. IF(JNTRIN.EQ.1.OR.JNTRIN.EQ.3) TIMEXF=TIMEXI+DTIMEX
  662. C
  663. C CALCUL DES PENTES
  664. C
  665. IF(ABS(SPLA).LT.0.95D00) IELPLA=0
  666. IF(ICYCL.NE.1) GO TO 71
  667. C
  668. C CAS DES MODELES DE CYCLAGE
  669. C
  670. CALL NORMAL(A1,A2,A3,SIGEL,W1,ALFAH,SELAS,IBOU,ITYP)
  671. CZZZZZZZZZZZZZZZZZZZZZZ
  672. C ON RECUPERE LA NORMALE DE LA DERNIERE SORTIE
  673. CZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
  674. DO IBA=1,IBOU
  675. W2(IBA)=ANORM(IBA)
  676. ENDDO
  677. C
  678. C CALCUL DU PRODUIT SCALAIRE DE LA NORMALE AU POINT OU ON SORT
  679. C AVEC LA DERNIERE NORMALE OU ON EST SORTI
  680. C
  681. X=DDOT(IBOU,W1,1,W2,1)
  682. C ON STOCKE LA NORMALE
  683. DO IBA=1,IBOU
  684. ANORM(IBA)=W1(IBA)
  685. ENDDO
  686. CZZZZZZZZZZZZZZZZZZZZZZZ
  687. C IL FAUDRA LA STOCKER DANS varf AU LIEU DE ANORM
  688. CZZZZZZZZZZZZZZZZZZZZZZZZZ
  689. C
  690. C CALCUL DU EPSI AVEC QUOI CALCULER LA PENTE
  691. C
  692. EPSEN=0.5D00*(X+1.D00)*EPENT
  693. EPSIN=EPSEN
  694. 71 CONTINUE
  695. IF(JFLUAG.EQ.0) GO TO 40
  696. IF(IMAPLA.EQ.4) GO TO 5
  697. C
  698. C INITIALISATIONS POUR LE FLUAGE
  699. C QUEL EST LE EPSILON CUMULE DE FLUAGE
  700. C
  701. SLOPE=0.D0
  702. PENTE=0.D0
  703. IF(ICINE.EQ.0) GO TO 5
  704. IF(JFLUAG.EQ.2) GO TO 40
  705. C
  706. C CAS CINE + FLUAGE : CALCUL DE LA PENTE A LA COURBE DE TRACTION
  707. C
  708. IF(ICINE.EQ.2) EPSIN=EPS(NCOURB)
  709. CALL TRACTI(PENTE,EPSIN,SIG,EPS,NCOURB,1,IBI)
  710. IF(IBI.EQ.1) THEN
  711. KERRE=75
  712. GOTO 1000
  713. ENDIF
  714. *
  715. GO TO 5
  716. 40 CONTINUE
  717. IF(IMAPLA.EQ.5.OR.IMAPLA.EQ.4) GO TO 5
  718. C
  719. C CALCUL DE LA PENTE DE LA COURBE DE TRACTION AU POINT X-EPSTAR
  720. C
  721. SLOPE=0.D0
  722. CALL TRACTI(PENTE,EPSIN,SIG,EPS,NCOURB,1,IBI)
  723. IF(IBI.EQ.1) THEN
  724. KERRE=75
  725. GOTO 1000
  726. ENDIF
  727. *
  728. IF(ICINE.EQ.0) GO TO 5
  729. 6 CONTINUE
  730. SLOPE=PENTE
  731. PENTE=0.
  732. PANTIN=SLOPE
  733. IF(ICINE.EQ.1) GO TO 5
  734. EPSIN=EPS(NCOURB)
  735. CALL TRACTI(PANTIN,EPSIN,SIG,EPS,NCOURB,1,IBI)
  736. IF(IBI.EQ.1) THEN
  737. KERRE=75
  738. GOTO 1000
  739. ENDIF
  740. *
  741. PENTE=SLOPE-PANTIN
  742. SLOPE=PANTIN
  743. 5 CONTINUE
  744. IF(IMAPLA.NE.4) GO TO 5621
  745. C+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  746. C MODELE CHABOCHE
  747. C+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  748. IF(JFLUAG.EQ.0)
  749. . CALL CHABOK(YUNG,XNU,IA,EI,
  750. . XMAT,SPHER,JA,IBOU,SI,DEPS,EPST,EPSTAR,WORK2,KERRE,SN,
  751. . AUXIL,NUMCHA,ecou,necou)
  752. IF(JFLUAG.NE.0)
  753. . CALL CHAFLU(YUNG,XNU,IA,EI,SSTAR,
  754. 1 XMAT,SPHER,IBOU,SI,DEPS,EPST,EPSTAR,WORK2,
  755. 2 AUXIL,DPSM1,DPSM2,KERRE,NUMCHA,ecou,necou)
  756. IF(KERRE.NE.0) RETURN
  757. IF(JFLUAG.NE.0.AND.IMAPLA.EQ.4) GO TO 689
  758. IF(IMAPLA.EQ.4) GO TO 570
  759. 5621 CONTINUE
  760. IF(IMAPLA.NE.5) GO TO 9997
  761. C+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  762. C MODELE DRUCKER-PRAGER - PRELIMINAIRES
  763. C+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  764. C ON EST DANS LE CAS DU MATERIAU DRUCKER-PRAGER.ON VA FAIRE UN
  765. C TEST POUR SAVOIR SI L'ON DOIT PROJETER AU SOMMET DU CONE ET
  766. C EVENTUELLEMENT FAIRE CETTE PROJECTION.
  767. C DANS CETTE VERSION,LE TEST CONSISTE A SAVOIR SI L'ETAT DE
  768. C CONTRAINTES CALCULE ELASTIQUEMENT SE TROUVE D'UN COTE OU DE
  769. C L'AUTRE D'UN PLAN ORTHOGONAL A L'AXE ET PASSANT PAR LE SOMMET
  770. C DU CONE,PUIS A SAVOIR SI L'ON EST A L'INTERIEUR OU A
  771. C L'EXTERIEUR DU CONE DES NORMALES AU CRITERE DE DRUCKER.
  772. C ON CALCULE LE I1 QUI DELIMITE LES DEUX REGIONS ET ON LE
  773. C COMPARE AVEC LE PREMIER INVARIANT DU TENSEUR CALCULE ELASTIQUEMENT
  774. C
  775. C
  776. C SNN=XMAT(7)+XMAT(13)*EPSTAR
  777. *
  778. * AM 24/5/93 TEST SUR SNN
  779. *
  780. * IF( SNN*XMAT(7).LT.0.D0) THEN
  781. * SNN=0.D0
  782. * XMAT(13)=0.D0
  783. * ENDIF
  784. *
  785. C
  786. C MILL 17/3/93
  787. C SI XMAT(5)=0. PAS DE TEST PAR RAPPORT AU SOMMET
  788. C
  789. C IF(XMAT(5).EQ.0.D0) GO TO 99970
  790. C
  791. C XI1LIM=SNN/XMAT(5)
  792. C IF(SJ1.LE.XI1LIM) GO TO 99970
  793. C
  794. C ON TESTE ENSUITE PAR RAPPORT AU CONE DES NORMALES
  795. C
  796. C TESTDR=-XMAT(9)*SJ1/(2.D0*XMAT(8))+SJ2+XI1LIM*XMAT(9)/
  797. C . (2.D0*XMAT(8)*XMAT(5))
  798. C IF(TESTDR.GT.0.D00)GO TO 99970
  799. C
  800. C ON EST MAINTENANT DANS LE CAS OU L'ON DOIT PROJETER AU SOMMET
  801. C
  802. C CALL SOMDRU(IBOU,SI,DEPS,EPST,EPSTAR,SNN,XMAT(5),YUNG,XNU,KERRE)
  803. C IF(KERRE.NE.0) RETURN
  804. C LAPOIN=1
  805. C GO TO 570
  806. 99970 CONTINUE
  807. CALL SHIFTD(DHOOK,WORK2(109),36)
  808. CALL PRJDRU(SSTAR,SELAS,PENTE,IBOU,SI,DEPS,EPST,EPSTAR,ITER,
  809. . SN,WORK2(109),WORK2,WORK2(37),WORK2(73),XMAT(5),YUNG,
  810. . XNU,LAPOIN,KERRE,ecou,necou)
  811. IF(KERRE.NE.0) RETURN
  812. GO TO 570
  813. C+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  814. C MODELE ROUSSELIER
  815. C+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  816. 9997 IF(IMAPLA.EQ.7) THEN
  817. CALL FISSUR
  818. C CALL FISSUR(YUNG,XNU,U5DMU,XMAT(5),A,B,C,ANORM,
  819. C 1 JC,SIG,EPS,SELAS,SSTAR,IBOU,JKI,PENTE,EPSTAR,EPST,ITMAX,COEF,
  820. C 1 IA,S0,SI,DEPS,SN,IMPRI)
  821. GO TO 570
  822. ENDIF
  823. C
  824. IF (IRELAX.NE.0) THEN
  825. C
  826. C MODIF DU 18/3/86 ON MET SIPLAD A 0. ( AVANT ON AVAIT DEFP )
  827. C
  828. DO IBA=1,IBOU
  829. SIPLAD(IBA)=0.D00
  830. DSIGP0(IBA)=DSIGZE(IBA)
  831. ENDDO
  832. ENDIF
  833. IF(JGRDEF.LE.1) GO TO 420
  834. C
  835. C INTEGRATION EN GRANDES DEFORMATIONS D N'EST PLUS ISOTROPE
  836. C ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
  837. C A VOIR|||||||||||||||||||||||||
  838. CALL SHIFTD(DHOOK,WORK2,36)
  839. RAI=DETFNO(1)
  840. CALL T6CDCT
  841. C CALL T6CDCT(CGDFNO((IA-1)*LCGDF+1),WORK2,4,W1,RAI)
  842. CALL PRJGDF
  843. C CALL PRJGDF(SSTAR,SELAS,PENTE,IBOU,SI,DEPS,EPST,EPSTAR,
  844. C 1 ITER,SN,TET,WORK2,WORK2(37),WORK2(73),PANTIN,TIMEXF,SIG,EPS,IA,
  845. C 1 WORK2(109))
  846. CALL SHIFTD(W1,DEFPLA,6)
  847. CZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
  848. GO TO 570
  849. 420 CONTINUE
  850. C----------------------------------------------------------------------
  851. C ECRITURE SOUS FORME DIAGONALE
  852. C DIAGONALISATION DE SIGEL ET DSIGP
  853. C----------------------------------------------------------------------
  854. NK=1
  855. CALL XYZDIA(DSIGP,SIGEL,W1,W2,A,B,C,D,ITYP,VECPRO)
  856. IF(IRELAX.NE.0)
  857. 1 CALL XYZDIA(SIPLAD,DSIGP0,W1,W2,A,B,C,D,ITYP,VECPRO)
  858. C
  859. GO TO (60,61,61,63,64,65,66,66,68,69,78,79,80),ITYP
  860. C
  861. 80 CONTINUE
  862. C CONTRAINTES PLANES AVEC TOUS LES CISAILLEMENTS
  863. C
  864. RAI=YUNG/(1.D0-XNU*XNU)
  865. E(1)=RAI*(1.D0+XNU)*0.5D0
  866. E(2)=RAI*(1.D0-XNU)*1.5D0
  867. E(3)=0.D0
  868. E(4)=E(2)
  869. E(5)=E(2)
  870. E(6)=E(2)
  871. JKI=34
  872. GO TO 615
  873. C
  874. 79 CONTINUE
  875. C TUYAUX
  876. 78 CONTINUE
  877. C POUTRES
  878. C LE REMPLISSAGE DE E EST FAIT EN AMONT
  879. C
  880. JKI=28
  881. GO TO 615
  882. 69 CONTINUE
  883. GO TO 640
  884. 68 CONTINUE
  885. GO TO 640
  886. 66 CONTINUE
  887. C COQUE OU MEMBRANE A NU =0 OU CP
  888. C
  889. RAI=YUNG
  890. E(1)=RAI
  891. IF(ICINE.NE.0) E(1)=E(1)+SLOPE
  892. E(2)=0.D00
  893. E(3)=0.D00
  894. E(4)=E(1)*ALFAH
  895. E(5)=0.D00
  896. E(6)=0.D00
  897. W1(1)=DSIGP(1)/(E(1)+PENTE)
  898. IF(ITYP.EQ.7) THEN
  899. IF(ALFAH.NE.0.D0) THEN
  900. W1(4)=DSIGP(4)/(E(4)+PENTE)
  901. ELSE
  902. W1(4)=0.D0
  903. ENDIF
  904. ENDIF
  905. JKI=18
  906. DEPS=VNMISD(W1,ITYP,ALFAH,COVNMS)
  907. GO TO 640
  908. 65 CONTINUE
  909. C CONTRAINTES PLANES
  910. C
  911. RAI=YUNG/(1.D0-XNU*XNU)
  912. E(1)=RAI*(1.D0+XNU)*0.5D0
  913. E(2)=RAI*(1.D0-XNU)*1.5D0
  914. E(3)=0.D0
  915. E(4)=E(2)
  916. E(5)=E(3)
  917. E(6)=E(3)
  918. JKI=24
  919. GO TO 615
  920. 64 CONTINUE
  921. C MATER QUELCONQUE
  922. C
  923. JKI=18
  924. NK=1
  925. DO IBA=1,6
  926. E(IBA)=VALPRO(IBA)
  927. ENDDO
  928. IF(ICINE.NE.0) THEN
  929. DO IBA=1,6
  930. E(IBA)=E(IBA)+SLOPE
  931. ENDDO
  932. ENDIF
  933. DO IBA=1,6
  934. r_z = E(IBA)+PENTE
  935. IF (r_z.NE.0.D00) THEN
  936. W1(IBA)=DSIGP(IBA)/r_z
  937. ENDIF
  938. ENDDO
  939. DEPS=VNMISD(W1,ITYP,ALFAH,CVNMSD)
  940. GO TO 640
  941. C
  942. 61 CONTINUE
  943. RAI=YUNG/(1.D0-XNU*XNU)
  944. E(1)=RAI*(1.D0+XNU)*0.5D0
  945. E(2)=RAI*(1.D0-XNU)*1.5D0
  946. E(3)=E(2)
  947. E(4)=E(1)*ALFAH
  948. E(5)=E(2)*ALFAH
  949. E(6)=E(3)*ALFAH
  950. JKI=6
  951. 615 CONTINUE
  952. IF(ICINE.NE.0) THEN
  953. DO IK=1,6
  954. E(IK)=E(IK)+SLOPE
  955. ENDDO
  956. ENDIF
  957. IBO=2
  958. IF(ITYP.EQ.3.OR.ITYP.EQ.6) IBO=1
  959. IF(ITYP.NE.11.AND.ITYP.NE.12.AND.ITYP.NE.4) W1(3)=0.D0
  960. DO I=1,IBOU
  961. IF(ITYP.EQ.6.AND.I.EQ.3) GO TO 614
  962. W1(I)=0.D0
  963. IF(PENTE+E(I).EQ.0.) GO TO 614
  964. W1(I)=DSIGP(I)/(E(I)+PENTE)
  965. 614 CONTINUE
  966. ENDDO
  967. DEPS=VNMISD(W1,ITYP,ALFAH,COVNMS)
  968. GO TO 640
  969. C
  970. 63 E(3)=U5DMU/U5SNU
  971. IF(ICINE.NE.0) E(3)=E(3)+SLOPE
  972. NK=3
  973. JKI=12
  974. E(1)=0.D0
  975. E(2)=0.D0
  976. E(4)=0.D0
  977. E(5)=0.D0
  978. E(6)=0.D0
  979. DEPS=DSIGP(3)/(E(3)+PENTE)
  980. if(imapla.eq.1) deps = abs(deps)
  981. GO TO 640
  982. C
  983. 60 CONTINUE
  984. JKI=0
  985. E(1)=0.
  986. DO I=2,6
  987. E(I)=U5DMU
  988. ENDDO
  989. IF(ICINE.NE.0) THEN
  990. DO I=1,6
  991. E(I)=E(I)+SLOPE
  992. ENDDO
  993. ENDIF
  994. EMU=PENTE+U5DMU
  995. RAI=YUNG
  996. IF(IMAPLA.EQ.5) EMU=U5DMU+3*XMAT(5)*XMAT(5)*RAI/(1.D0-2.D0*XNU)
  997. DEPS=(SSTAR-SELAS)/EMU
  998. C
  999. 640 CONTINUE
  1000. C
  1001. IF(JFLUAG.NE.0) GO TO 41
  1002. C-----------------------------------------------------------------------
  1003. C PLASTICITE - PROJECTION SUR LA SURFACE DE CHARGE
  1004. C-----------------------------------------------------------------------
  1005. CALL PROJVM(SIG,EPS,EPST,EPSTAR,DEPS,PENTE,SN,PANTIN,
  1006. 1 SELAS,ITER,SO,SSTAR,SI,NK,IBOU,COEF,JKI,KERRE,ecou,necou)
  1007. C
  1008. GO TO 57
  1009. C-----------------------------------------------------------------------
  1010. C FLUAGE
  1011. C-----------------------------------------------------------------------
  1012. 41 CONTINUE
  1013. CALL FLUAGE(ITER,EPSTAR,S0,EPST,SSTAR,SI,DPSM1,DPSM2,
  1014. . IBOU,DEPS,ICONV,TIMEXI,TIMEXF,YUNG,KERRE,ecou,necou )
  1015. IF(KERRE.EQ.0) GO TO 8693
  1016. CZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
  1017. C TESTER KERRE EN SORTIE DE FLUAGE
  1018. C ON RECUPERE AUUSI ICONV EN SORTIE
  1019. CZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
  1020. 8693 CONTINUE
  1021. 689 CONTINUE
  1022. C-----------------------------------------------------------------------
  1023. C ON STOKE LE EPS DE FLUAGE DANS EPSFLU DANS TOUS LES CAS
  1024. C-----------------------------------------------------------------------
  1025. EPSFLU=EPST
  1026. C ON CALCULE LE EPSILON INELASTIQUE CUMULE
  1027. C
  1028. EPST=EPSM1
  1029. IF(LFLUAG.EQ.1) GO TO 414
  1030. C ON ECROUIT LE RAYON DE LA SURFACE DE CHARGE
  1031. C
  1032. EPST=DEPS+EPSM1
  1033. 414 CONTINUE
  1034. IF(IMAPLA.EQ.4) GO TO 570
  1035. IF(ICINE.EQ.0) GO TO 413
  1036. IF(LFLUAG.EQ.1) GO TO 57
  1037. C CAS CINEMATIQUE
  1038. C
  1039. SLIM=SELAS
  1040. GO TO 57
  1041. 413 CONTINUE
  1042. C CAS ISOTROPE
  1043. C
  1044. IF(LFLUAG.EQ.1) GO TO 57
  1045. C ON CHERCHE LE NOUVEAU RAYON DE LA SPHERE
  1046. C
  1047. CALL TRACTI(SF,EPST,SIG,EPS,NCOURB,2,IBI)
  1048. IF(IBI.EQ.1) THEN
  1049. KERRE=75
  1050. GOTO 1000
  1051. ENDIF
  1052. *
  1053. SLIM=SF
  1054. C
  1055. 57 CONTINUE
  1056. C
  1057. C----------------------------------------------------------------------
  1058. C RETOUR AUX AXES X Y Z
  1059. C----------------------------------------------------------------------
  1060. CALL DIAXYZ(ITYP,SIGT,SIGEL,VECPRO,IBO,A,B,C,B1,B2)
  1061. IF(JFLUAG.EQ.0) GO TO 10
  1062. IF((IT.EQ.1.AND.IRELAX.EQ.0).OR.(ICONV.NE.0.AND.IRELAX.NE.0))
  1063. . CALL DIAXYZ(ITYP,DSIGP,STOT,VECPRO,IBO,A,B,C,B1,B2)
  1064. 10 CONTINUE
  1065. C-----------------------------------------------------------------------
  1066. C TRAITEMENT FINAL
  1067. C-----------------------------------------------------------------------
  1068. 570 CONTINUE
  1069. EPSM1F=EPST
  1070. IF(ICYCL.EQ.1) EPENTF=EPSEN+DEPS
  1071. IF(IMAPLA.NE.7) GO TO 9100
  1072. CZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
  1073. C VOIR SI ON A BESOIN DE SIGT
  1074. CZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
  1075. DO IBA=1,IBOU
  1076. SIGT(IBA)=SIGT(IBA)-W1(IBA)
  1077. ENDDO
  1078. 9100 CONTINUE
  1079. IF(ICINE.EQ.0) GO TO 913
  1080. IF(LFLUAG.EQ.1) GO TO 913
  1081. IF(JFLUAG.EQ.1) GO TO 94
  1082. IF(IMAPLA.EQ.4) GO TO 90
  1083. C----------------------------------------------------------------------
  1084. C CAS CINEMATIQUE - CALCUL DE DALPHA
  1085. C----------------------------------------------------------------------
  1086. Z=PANTIN*DEPS/SELAS
  1087. IF(Z.LT.0.01D00) GO TO 910
  1088. EZZ=1.D0-EXP(-Z)
  1089. Z=1.D0-EZZ/Z
  1090. EZZ=EZZ/(1.D0-Z)
  1091. Z=Z/(1.D0-Z)
  1092. DO IBA=1,IBOU
  1093. DALPHA(IBA)=DALPHA(IBA)*EZZ+Z*(SIGEL(IBA)-DALPHA(IBA))
  1094. ENDDO
  1095. GO TO 90
  1096. 910 CONTINUE
  1097. DO IBA=1,IBOU
  1098. DALPHA(IBA)=Z*0.5D0*(DALPHA(IBA)+SIGEL(IBA))
  1099. ENDDO
  1100. GO TO 90
  1101. 94 CONTINUE
  1102. IF(IMAPLA.EQ.4) GO TO 913
  1103. CALL MOVCEN(PENTE,DEPS,SELAS,JA,IBOU,DALPHA,SIGMA,SPHER,SIGEL)
  1104. 90 CONTINUE
  1105. 913 CONTINUE
  1106. C----------------------------------------------------------------------
  1107. C CAS CINEMATIQUE COORDONNEES DU NOUVEAU CENTRE DE LA SPHERE
  1108. C----------------------------------------------------------------------
  1109. IF(ICINE.EQ.0) GO TO 29
  1110. C
  1111. C MODELE CHABOC MISE A JOUR DE SPHER DANS CHABOC
  1112. C SPHER CONTIENT LA SOMME DES DEPLACEMENTS DES SPHERES
  1113. C
  1114. IF(IMAPLA.EQ.4) GO TO 29
  1115. IF(LFLUAG.EQ.1.AND.JFLUAG.NE.0) GO TO 29
  1116. DO IBA=1,IBOU
  1117. SPHER(IBA)=SPHER(IBA)+DALPHA(IBA)
  1118. ENDDO
  1119. 29 CONTINUE
  1120. C-----------------------------------------------------------------------
  1121. C CALCUL DU SIGMA FINAL ET DE LA NOUVELLE LIMITE ELASTIQUE
  1122. C-----------------------------------------------------------------------
  1123. IF(ITYP.NE.11.AND.ITYP.NE.12.AND.ITYP.NE.4) GO TO 846
  1124. DO IBA=1,IBOU
  1125. STOT(IBA)=STOT(IBA)/DIV(IBA)
  1126. IF(ICINE.EQ.0) GO TO 847
  1127. IF(LFLUAG.EQ.1.AND.JFLUAG.NE.0) GO TO 847
  1128. SPHER(IBA)=SPHER(IBA)/DIV(IBA)
  1129. DALPHA(IBA)=DALPHA(IBA)/DIV(IBA)
  1130. 847 CONTINUE
  1131. SIGEL(IBA)=SIGEL(IBA)/DIV(IBA)
  1132. ENDDO
  1133. 846 CONTINUE
  1134. DO IBA=1,IBOU
  1135. SIGFIN(IBA)=SIGEL(IBA)
  1136. ENDDO
  1137. STARF=SI
  1138. IF(JFLUAG.EQ.0) SLIMF=SN
  1139. IF(JNTRIN.NE.0) EPENTF=TIMEXF
  1140. C
  1141. IF(DEPS.LT.0.D00) KERRE=1
  1142. C CALCUL DU NOUVEAU SIGMAP
  1143. DO IBA=1,IBOU
  1144. DSIGMA(IBA)=STOT(IBA)-SIGEL(IBA)
  1145. ENDDO
  1146. IF(ICINE.EQ.0) GO TO 240
  1147. IF(JFLUAG.EQ.1) GO TO 240
  1148. IF(LFLUAG.EQ.1) GO TO 240
  1149. DO IBA=1,IBOU
  1150. DSIGMA(IBA)=DSIGMA(IBA)-DALPHA(IBA)
  1151. ENDDO
  1152. 240 CONTINUE
  1153. *
  1154. IF(ITYP.EQ.6.AND.IMAPLA.EQ.5.AND.LAPOIN.EQ.0) THEN
  1155. DO IBA=1,IBOU
  1156. DEFPLA(IBA)=EPSPLA(IBA)
  1157. ENDDO
  1158. EPST=EPSM1 + VONEPS(DEFPLA,ITYP,ALFAH,COVNMS)
  1159. GO TO 31
  1160. ENDIF
  1161. CZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
  1162. C ATTENTION LE EPSIG NE MARCHE QUE POUR CERTAINS CAS
  1163. CZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
  1164. CALL EPSIG(DSIGMA,DEFPLA,IFOURB,YUNG,XNU,ITYP,ORMAT,WORK)
  1165. IF(ITYP.EQ.6.AND.IMAPLA.NE.5) DEFPLA(3)=-DEFPLA(1)-DEFPLA(2)
  1166. 31 CONTINUE
  1167. C-----------------------------------------------------------------------
  1168. C REMPLISSAGE
  1169. C-----------------------------------------------------------------------
  1170. varf(1)=EPST
  1171. if(inplas.eq.87) THEN
  1172. DO I=1,IBOU
  1173. VARF(1+I)=DEPST(I)
  1174. ENDDO
  1175. endif
  1176. CZZZZZZZZZZZ
  1177. C PROVISOIRE
  1178. CZZZZZZZZZZZ
  1179. IF(JFLUAG.EQ.1) varf(1)=EPSFLU
  1180. IF(ICINE.EQ.0) GO TO 280
  1181. C ON CALCULE LA VRAIE CONTRAINTE EN CINEMATIQUE
  1182. DO 281 IBA=1,IBOU
  1183. IF(JFLUAG.EQ.1) GO TO 284
  1184. SIGFIN(IBA)=SIGFIN(IBA)+SPHER(IBA)
  1185. 284 IF(LFLUAG.EQ.1) GO TO 281
  1186. IF(ICENT2.NE.0) SPHER(IBA)=SPHER(IBA)-AUXIL(IBA)
  1187. 281 CONTINUE
  1188. 280 CONTINUE
  1189. *
  1190. * MISE A 0. DES COMPOSANTES NON CALCULEES SI ITYP=8
  1191. *
  1192. IF(ITYP.EQ.8.AND.IBOU.LT.NSTRS1) THEN
  1193. DO 285 IBA=2,NSTRS1
  1194. DEFPLA(IBA)=0.D0
  1195. SIGFIN(IBA)=0.D0
  1196. IF(ICENT2.NE.0) SPHER(IBA)=0.D0
  1197. 285 CONTINUE
  1198. ENDIF
  1199. *
  1200. MCOD=2
  1201. CALL VISAVI(SIG0,DSIGT,var0,SIGMA,DSIGMA,SPHER,AUXIL,
  1202. . SIGF,DEFP,varf,SIGFIN,DEFPLA,
  1203. . DSIGZE,ICENT2,MCOD,IBOU,MFR1,NSTRS1,WORK,CMATE,ecou,necou)
  1204. C
  1205. C RETRAITEMENT POUR LES COQ2 ET MASSIFS EN MATERIAU
  1206. C UNIDIRECTIONNEL
  1207. C
  1208.  
  1209. IF (CMATE.EQ.'UNIDIREC'.AND.INPLAS.NE.0) THEN
  1210. IF(MELE.EQ.44.OR.(MFR1.EQ.1.AND.IFOURB.LE.0)) THEN
  1211. DO 1997 I=1,NSTRS1
  1212. TABID(I)=SIGF(I)
  1213. TABID2(I)=DEFP(I)
  1214. 1997 CONTINUE
  1215. CALL CHREP2(TABID,SIGF,-ANG,NSTRS1,MFR1,1,KERRE)
  1216. CALL CHREP2(TABID2,DEFP,-ANG,NSTRS1,MFR1,2,KERRE)
  1217. IF(KERRE.NE.0) RETURN
  1218. ELSEIF(MFR1.EQ.1.AND.IFOURB.EQ.2) THEN
  1219. DO 997 I=1,NSTRS1
  1220. TABID(I)=SIGF(I)
  1221. TABID2(I)=DEFP(I)
  1222. 997 CONTINUE
  1223. CALL CHREP3(TABID,SIGF,XMAT,TXR,NSTRS1,1,2,KERRE)
  1224. CALL CHREP3(TABID2,DEFP,XMAT,TXR,NSTRS1,2,2,KERRE)
  1225. ENDIF
  1226. ENDIF
  1227. *
  1228. 1000 RETURN
  1229. END
  1230.  
  1231.  
  1232.  

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