Télécharger defini.eso

Retour à la liste

Numérotation des lignes :

  1. C DEFINI SOURCE BP208322 15/06/22 21:17:03 8543
  2. SUBROUTINE DEFINI(MELE,NCARR,NSTRS,NMATT,CMATE,MATE,
  3. . ISTEP,INPLAS,NPINT,IPOTAB,IVADEF,
  4. . IPMAIL,IVAMAT,
  5. . ITHHER,NUMAT,NUCAR,LOGVIS,
  6. . LUNI1,LUNI2,LW,KERRE)
  7. *
  8. *******************************************
  9. * ENTREES
  10. *******************************************
  11. *
  12. * MELE : numéro élément fini
  13. * NCARR : nombre de composantes de caratéristiques géométriques
  14. * NSTRS : nombre de composantes de contrainte
  15. * NMATT : nombre de composantes de propriétés matériau
  16. * CMATE : nom du matériau
  17. * MATE : numero du materiau
  18. * ISTEP : indicateur d'action pour calcul nonlocal
  19. * =0 dans le cas d'un calcul local (normal)
  20. * =1 ou 2 dans le cas d'un calcul nonlocal
  21. * =1 pour calcul des fonctions seuil uniquement
  22. * =2 pour calcul des variables dissipatives a partir
  23. * des fonctions seuil moyennees prealablement par nloc
  24. * INPLAS : numéro de matériau inélastique
  25. * NPINT : nombre de points d'intégration
  26. * IPOTAB : pointeur sur segment table
  27. * IVADEF : pointeur sur un segment mptval de deformations
  28. * IPMAIL : pointeur du maillage
  29. * IVAMAT : pointeur sur un segment mptval de materiau
  30. * ITHHER : =0 si pas de chargement thermique
  31. * =1 si chargement thermique mais materiau constant
  32. * =2 si chargement thermique et mat. dependant de la temperature
  33. * NUMAT : nombre de composantes du melval de imat
  34. * NUCAR : nombre de composantes du melval de icar
  35. *
  36. *******************************************
  37. * SORTIES
  38. *******************************************
  39. *
  40. * LOGVIS : booléen pour les modèles visqueux et endommageables
  41. * de Lemaitre
  42. * LUNI1 : booléens pour le modèle ACIER_UNI
  43. * LUNI2 : ( INPLAS.EQ.40)
  44. * NUCAR : nombre de composantes du melval de icar ( entrée modifiée)
  45. * Les sorties sont passées par des communs (NECOU,IECOU,XECOU)
  46. *
  47. ******************************************
  48. *
  49. IMPLICIT INTEGER(I-N)
  50. IMPLICIT REAL*8(A-H,O-Z)
  51. *
  52. -INC CCOPTIO
  53. -INC SMCHAML
  54. -INC SMELEME
  55. -INC SMCOORD
  56. -INC SMMODEL
  57. -INC SMINTE
  58. -INC CCHAMP
  59. *
  60. SEGMENT MPTVAL
  61. INTEGER IPOS(NS) ,NSOF(NS)
  62. INTEGER IVAL(NCOSOU)
  63. CHARACTER*16 TYVAL(NCOSOU)
  64. ENDSEGMENT
  65. *
  66. * Commun NECOU utilisé dans ECOINC
  67. *
  68. COMMON/NECOU/NCOURB,IPLAST,IT,IMAPLA,ISOTRO,
  69. . ITYP,IFOURB,IFLUAG,
  70. . ICINE,ITHER,IFLUPL,ICYCL,IBI,
  71. . JFLUAG,KFLUAG,LFLUAG,
  72. . IRELAX,JNTRIN,MFLUAG,JSOUFL,JGRDEF
  73. *
  74. * Commun IECOU: sert de fourre-tout pour les initialisations
  75. * d'entiers
  76. *
  77. COMMON/IECOU/NYOG,NYNU,NYALFA,NYSMAX,NYN,NYM,NYKK,
  78. . NYALF1,NYBET1,NYR,NYA,NYRHO,NSIGY,NNKX,NYKX,IND,
  79. . NSOM,NINV,NINCMA,NCOMP,JELEM,LEGAUS,INAT,NCXMAT,
  80. . LTRAC,MFR,IELE,NHRM,NBNN,NBELEM,ICARA,
  81. . LW2,NDEF,NSTRSS,MFR1,NBGMAT,NELMAT,MSOUPA,
  82. . NUMAT1,LENDO,NBBB,NNVARI,KERR1,MELEME,
  83. . icou45,icou46,icou47,icou48,icou49,icou50,
  84. . Icow51,icou52,icou53,icou54,icou55,icou56
  85. . icou57,icou58
  86. *
  87. * Commun XECOU: sert de fourre-tout pour les initialisations
  88. * de réels
  89. *
  90. COMMON/XECOU/DTOPTI,TSOM,TCAR,DTT,DT,TREFA,TEMP0
  91. LOGICAL LUNI1,LUNI2
  92. LOGICAL LOGVIS,LOGIN,LOGRE
  93. CHARACTER*72 CHARRE
  94. CHARACTER*8 CMATE
  95. *
  96. *
  97. *
  98. * LOGVIS est vrai pour les matériaux visqueux, endommageables de
  99. * Lemaitre et Coulomb (inplas = 34 )
  100. *
  101. * ---> Viscoplastique et Fluage
  102. *
  103. LOGVIS=.FALSE.
  104. *
  105. IF ( INPLAS .EQ. 17 .OR.
  106. 2 ( INPLAS .GE. 19 .AND. INPLAS .LE. 25) .OR.
  107. 4 INPLAS .EQ. 61 .OR. INPLAS .EQ. 63 .OR.
  108. 4 INPLAS .EQ. 65 .OR. INPLAS .EQ. 53 .OR.
  109. 1 INPLAS .EQ. 29 .OR. INPLAS .EQ. 76 .OR.
  110. 2 INPLAS .EQ. 44 .OR. INPLAS .EQ. 45 .OR.
  111. 2 INPLAS .EQ. 70 .OR. INPLAS .EQ. 74 .OR.
  112. 9 INPLAS .EQ. 77 .OR. INPLAS .EQ. 82 .OR.
  113. 9 INPLAS .EQ. 84 .OR. INPLAS .EQ. 85 .OR.
  114. 9 INPLAS .EQ. 86 .OR. INPLAS .EQ. 94 .OR.
  115. 9 INPLAS .EQ. 95 .OR. INPLAS .EQ.100 .OR.
  116. 9 INPLAS .EQ. 101 .OR. INPLAS .EQ.102 .OR.
  117. 9 INPLAS .EQ. 141 .OR. INPLAS .EQ.143
  118. 9 ) THEN
  119.  
  120. LOGVIS=.TRUE.
  121. ENDIF
  122. *
  123. * ---> PLastique endommageable de Lemaitre
  124. *
  125. IF (INPLAS.EQ.26) LOGVIS=.TRUE.
  126. *
  127. * ---> Plastique Coulomb
  128. *
  129. IF (INPLAS.EQ.34) LOGVIS=.TRUE.
  130. * ---> Modele VISCOHINTE
  131.  
  132. IF (INPLAS.EQ.90) LOGVIS=.TRUE.
  133. *
  134. *
  135. * INITIALISATIONS
  136. *
  137. NYOG=0
  138. NYNU=0
  139. NYALFA=0
  140. NYSMAX=0
  141. NYN=0
  142. NYM=0
  143. NYKK=0
  144. NYALF1=0
  145. NYBET1=0
  146. NYR=0
  147. NYA=0
  148. NYRHO=0
  149. NSIGY=0
  150. NNKX=0
  151. NYKX=0
  152. IND=0
  153. *
  154. KERR1=0
  155. *
  156. TEMP0=0.D0
  157. *
  158. MFR =NUMMFR(MELE)
  159. IELE=NUMGEO(MELE)
  160. NHRM=NIFOUR
  161. MELEME=IPMAIL
  162. NBNN=NUM(/1)
  163. NBELEM=NUM(/2)
  164. ICARA=NCARR
  165. IF(MFR.EQ.7.OR.MFR.EQ.13)ICARA=NCARR+IDIM-1
  166. LW=200
  167. LW2=150
  168. NDEF=NSTRS
  169. NSTRSS=NSTRS
  170. IF(MFR.EQ.33) NSTRSS=NSTRS-1
  171. *
  172. LUNI1=.FALSE.
  173. LUNI2=.FALSE.
  174. *
  175. NCXMAT=NMATT
  176. IF(INPLAS.EQ.3)THEN
  177. NCXMAT=NMATT+7
  178. END IF
  179. LTRAC=260
  180. IF (INPLAS.EQ.51) LENDO=260
  181. *
  182. *
  183. * le cas LUNI1 = VRAI correspond au materiau ACIER_UNI
  184. *
  185. IF(INPLAS.EQ.40)THEN
  186. IF (MFR.EQ.1.AND.IFOUR.LE.0)LUNI1=.TRUE.
  187. IF ((MFR.EQ.3.OR.MFR.EQ.9).AND.IFOUR.EQ.2)LUNI2=.TRUE.
  188. ENDIF
  189. C
  190. MPTVAL=IVAMAT
  191. NBGMAT = 0
  192. NELMAT = 0
  193. DO 1001 IM=1,NMATT
  194. IF(IVAL(IM).NE.0)THEN
  195. MELVAL=IVAL(IM)
  196.  
  197. * am 11/4/97 pourquoi ne pas tester la taille des ielche a 0 ?
  198.  
  199. IF(CMATE.EQ.'SECTION')THEN
  200. NBGMAT=MAX(NBGMAT,IELCHE(/1))
  201. NELMAT=MAX(NELMAT,IELCHE(/2))
  202. ELSE
  203. NBGMAT=MAX(NBGMAT,VELCHE(/1))
  204. NELMAT=MAX(NELMAT,VELCHE(/2))
  205. ENDIF
  206. ENDIF
  207. 1001 CONTINUE
  208. c
  209. *
  210. * test sur istep
  211. *
  212. IF (ISTEP .GT. 2 .OR. ISTEP .LT. 0) THEN
  213. KERRE=54
  214. END IF
  215. *
  216. * test sur inplas pour recuperer eventuellement d'autres infos
  217. *
  218. * modeles de viscoplasticite on recupere le pas de temps dt en indice 'dt'
  219. *
  220. * on recupere le nombre max de sous pas en indice 'maxisouspas'
  221. *
  222. * et on met ind = 1
  223. *
  224. IF ( INPLAS .EQ. 17 .OR. INPLAS .EQ. 19 .OR.
  225. 1 INPLAS .EQ. 20 .OR. INPLAS .EQ. 61 .OR.
  226. 1 INPLAS .EQ. 21 .OR. INPLAS .EQ. 65 .OR.
  227. 2 INPLAS .EQ. 22 .OR. INPLAS .EQ. 23 .OR.
  228. 3 INPLAS .EQ. 24 .OR. INPLAS .EQ. 70 .OR.
  229. 6 INPLAS .EQ. 25 .OR. INPLAS .EQ. 29 .OR.
  230. 8 INPLAS .EQ. 43 .OR. INPLAS .EQ. 44 .OR.
  231. 8 INPLAS .EQ. 45 .OR. INPLAS .EQ. 53 .OR.
  232. 7 INPLAS .EQ. 63 .OR. INPLAS .EQ. 66 .OR.
  233. 9 INPLAS .EQ. 74 .OR. INPLAS .EQ. 76 .OR.
  234. 9 INPLAS .EQ. 84 .OR. INPLAS .EQ. 85 .OR.
  235. 9 INPLAS .EQ. 86 .OR. INPLAS .EQ. 90 .OR.
  236. 9 INPLAS .EQ. 77 .OR. INPLAS .EQ. 82 .OR.
  237. & INPLAS .EQ. 94 .OR. INPLAS .EQ. 95 .OR.
  238. & INPLAS .EQ. 100 .OR. INPLAS .EQ. 101 .OR.
  239. & INPLAS .EQ. 102 .OR. INPLAS .EQ. 141) THEN
  240. *
  241. IF(IPOTAB.EQ.0.OR.IVADEF.EQ.0) THEN
  242. CALL ERREUR(641)
  243. KERRE=999
  244. RETURN
  245. ENDIF
  246. IF (INPLAS.NE.43) THEN
  247. IF (ITHHER.EQ.1.OR.ITHHER.EQ.2) THEN
  248. CALL ACCTAB(IPOTAB,'MOT ',IVALIN,XVALIN,
  249. & 'TALPHA_REFERENCE',LOGIN,IOBIN,
  250. & 'FLOTTANT',IVALRE,TREFA,CHARRE,LOGRE,IOBRE)
  251. IF(IERR.NE.0)THEN
  252. KERRE=999
  253. RETURN
  254. ENDIF
  255. ENDIF
  256. ENDIF
  257. IND = 1
  258. CALL ACCTAB(IPOTAB,'MOT ',IVALIN,XVALIN,'DT',LOGIN,IOBIN,
  259. & 'FLOTTANT',IVALRE,DT,CHARRE,LOGRE,IOBRE)
  260. IF(IERR.NE.0)THEN
  261. KERRE=999
  262. RETURN
  263. END IF
  264. CALL ACCTAB(IPOTAB,'MOT ',IVALIN,XVALIN,'MAXISOUSPAS',
  265. & LOGIN,IOBIN,'ENTIER ',MSOUPA,XVALRE,CHARRE,LOGRE,IOBRE)
  266. IF(IERR.NE.0) THEN
  267. KERRE=999
  268. RETURN
  269. END IF
  270. *
  271. CALL ACCTAB(IPOTAB,'MOT ',IVALIN,XVALIN,'TEMPS0',LOGIN,
  272. & IOBIN,'FLOTTANT',IVALRE,TEMP0,CHARRE,LOGRE,IOBRE)
  273. IF(IERR.NE.0)THEN
  274. KERRE=999
  275. RETURN
  276. END IF
  277. ENDIF
  278. *
  279. * ---> PLastique endommageable de Lemaitre
  280. *
  281. IF ( INPLAS .EQ. 26 ) THEN
  282. *
  283. IF(IPOTAB.EQ.0.OR.IVADEF.EQ.0) THEN
  284. CALL ERREUR(641)
  285. KERRE=999
  286. RETURN
  287. ENDIF
  288. IF (ITHHER.EQ.1.OR.ITHHER.EQ.2) THEN
  289. CALL ACCTAB(IPOTAB,'MOT ',IVALIN,XVALIN,
  290. & 'TALPHA_REFERENCE',LOGIN,IOBIN,
  291. & 'FLOTTANT',IVALRE,TREFA,CHARRE,LOGRE,IOBRE)
  292. IF(IERR.NE.0)THEN
  293. KERRE=999
  294. RETURN
  295. ENDIF
  296. ENDIF
  297. ENDIF
  298.  
  299. IF(MFR.EQ.7.OR.MFR.EQ.13.OR.LUNI1)THEN
  300. NBBB=NBNN
  301. ENDIF
  302. *
  303. DTOPTI = 1.D6*DT
  304. TSOM = 0.D0
  305. NSOM = 0
  306. NINV = 0
  307. NINCMA = 0
  308. TCAR = 0.D0
  309. NCOMP = 0
  310. DTT=DT
  311. *
  312. c
  313. c mise a 0 des variables du common necou si besoin
  314.  
  315. c les bonnes valeurs sont attribuees selon les modeles
  316. c initialisations selon les cas
  317. c
  318. IF(INPLAS.NE.2)THEN
  319. *
  320. IF(NPINT.NE.0.AND.MELE.EQ.28) THEN
  321. IFOURB=-2
  322. MFR1=1
  323. IF(INPLAS.EQ.66) MFR1=MFR
  324. ELSE
  325. MFR1=MFR
  326. IFOURB=IFOUR
  327. ENDIF
  328. *
  329. * cas des coques minces
  330. * en materiau unidirectionnel plastique
  331. * on met IFOURB a -2
  332. *
  333. IF(MATE.EQ.4.AND.INPLAS.NE.0.AND.MFR.EQ.3) THEN
  334. IFOURB=-2
  335. ENDIF
  336. *
  337. NCOURB=0
  338. IPLAST=0
  339. IMAPLA=1
  340. IT=1
  341. ISOTRO=0
  342. ITYP=0
  343. *
  344. * correspondance ( mfr,ifour) et ityp faite dans ecoinc
  345. *
  346. IFLUAG=0
  347. ICINE=0
  348. ITHER=0
  349. IFLUPL=0
  350. ICYCL=0
  351. IBI=0
  352. JFLUAG=0
  353. JELEM =0
  354. LFLUAG=0
  355. IRELAX=0
  356. JNTRIN=0
  357. MFLUAG=0
  358. LEGAUS=0
  359. JGRDEF=0
  360. ENDIF
  361. *
  362. IF(MFR.EQ.15) NUCAR=NUCAR*2
  363. NUMAT1=NUMAT
  364. *
  365. IF(INPLAS.EQ.26)THEN
  366. NNVARI=2
  367. NUMAT=NUMAT+4
  368. ENDIF
  369. IF (INPLAS.EQ.26.OR.INPLAS.EQ.29) THEN
  370. INAT=INPLAS
  371. ELSE
  372. INAT=0
  373. ENDIF
  374. *
  375. RETURN
  376. END
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403.  
  404.  
  405.  
  406.  

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