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
  • MFR1=1
  • IF(INPLAS.EQ.66) MFR1=MFR
  • ELSE
  • MFR1=MFR
  • IFOURB=IFOUR
  • ENDIF
  • *
  • * cas des coques minces
  • * en materiau unidirectionnel plastique
  • * on met IFOURB a -2
  • *
  • IF(MATE.EQ.4.AND.INPLAS.NE.0.AND.MFR.EQ.3) THEN
  • IFOURB=-2
  • ENDIF
  • *
  • NCOURB=0
  • IPLAST=0
  • IMAPLA=1
  • IT=1
  • ISOTRO=0
  • ITYP=0
  • *
  • * correspondance ( mfr,ifour) et ityp faite dans ecoinc
  • *
  • IFLUAG=0
  • ICINE=0
  • ITHER=0
  • IFLUPL=0
  • ICYCL=0
  • IBI=0
  • JFLUAG=0
  • JELEM =0
  • LFLUAG=0
  • IRELAX=0
  • JNTRIN=0
  • MFLUAG=0
  • LEGAUS=0
  • JGRDEF=0
  • ENDIF
  • *
  • IF(MFR.EQ.15) NUCAR=NUCAR*2
  • NUMAT1=NUMAT
  • *
  • IF(INPLAS.EQ.26)THEN
  • NNVARI=2
  • NUMAT=NUMAT+4
  • ENDIF
  • IF (INPLAS.EQ.26.OR.INPLAS.EQ.29) THEN
  • INAT=INPLAS
  • ELSE
  • INAT=0
  • ENDIF
  • *
  • RETURN
  • END
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  • © Cast3M 2003 - Tous droits réservés.
    Mentions légales