Télécharger cflui3d.eso

Retour à la liste

Numérotation des lignes :

cflui3d
  1. C CFLUI3D SOURCE FD218221 24/02/07 21:15:04 11834
  2. C CFLU3D SOURCE PV090527 23/02/07 11:58:34 11592
  3. c A.Sellier nov 2023
  4. SUBROUTINE cflui3d(WRK52,WRK53,WRK54,MWRKXE,WR14,
  5. # nbnb,idimb,teta13d,teta23d,nvarib,nstrsb,ifourb,dtb,trefb)
  6.  
  7. C WRK52,53,54 segments déclarés dans le common DECHE
  8.  
  9. C XMAT(NCOMAT) = COMPOSANTES DE MATERIAU
  10. C IVAL(NCOMAT) = INDICE DES COMPOSANTES DE MATERIAU
  11. C NCOMAT = NOMBRE DE COMPOSANTES DE MATERIAU
  12. C XCAR(ICARA) = CARACTERISTIQUES
  13. C MFR = NUMERO DE LA FORMULATION DE L'ELEMENT FINI
  14. C = 1 MASSIF
  15. C = 3 COQUE MINCE ( COQ2 , COQ3 ET DKT )
  16. C = 5 COQUE EPAISSE ( COQ6 , COQ8 )
  17. C = 7 POUTRE
  18. C = 9 COQUE MINCE AVEC CISAILLEMENT TRANSVERSE ( COQ4 ET DST )
  19. C = 11 LIQUIDE
  20. C = 13 TUYAU
  21. C = 15 LINESPRING
  22. C = 17 TUYAU FISSURE
  23. C = 19 RACCORD MASSIF
  24. C = 21 RACCORD COQUE
  25. C = 23 SURFACE LIBRE
  26. C = 25 MEMBRANE
  27. C = 27 UNIAXIALE
  28. C = 29 THERMIQUE
  29. C = 31 INCOMPRESSIBLES
  30. C = 33 POREUX
  31. C = 35 JOINT
  32. C = 37 HOMOGENEISE
  33. C = 39 TUYO
  34. C = 41 TUYAU ACOUSTIQUE PURE
  35. C = 43 RACCORD TUYAU FLUIDE
  36. c* DDAUX = MATRICE DE HOOKE ELASTIQUE
  37. c* NSTRS = NBRE DE COMPOSANTES DES DEFORMATIONS
  38. c* CMATE = NOM DU MATERIAU
  39. c* VALMAT= TABLEAU DE CARACTERISTIQUES DU MATERIAU
  40. c* VALCAR= TABLEAU DE CARACTERISTIQUES GEOMETRIQUES
  41. c* N2EL = NBRE D ELEMENTS DANS SEGMENT DE HOOKE
  42. c* N2PTEL= NBRE DE POINTS DANS SEGMENT DE HOOKE
  43. c* MFR = NUMERO DE LA FORMULATION
  44. c* IFOU = type de formulation
  45. c* IB = NUMERO DE L ELEMENT COURANT
  46. c* IGAU = NUMERO DU POINT COURANT
  47. c* EPAIST= EPAISSEUR
  48. c* NBPGAU= NBRE DE POINTS DE GAUSS
  49. c* MELE = NUMERO DE L ELEMENT FINI
  50. c* NPINT = NBRE DE POINTS D INTEGRATION
  51. c* NBGMAT= NBRE DE POINTS DANS SEGMENT DE CARACTERISTIQUES
  52. c* NELMAT= NBRE D ELEMENTS DANS SEGMENT DE CARACTERISTIQUES
  53. c* SECT = SECTION
  54. c* LHOOK = TAILLE DE LA MATRICE DE HOOKE
  55. c* TXR,XLOC,XGLOB,D1HOOK,ROTHOO,DDHOMU,CRIGI = TABLEAUX UTILISES
  56. c* POUR LE CALCUL DE LA MATRICE DE HOOKE
  57. c* matrice de Hoocke DDHOOK(LHOOK,LHOOK)
  58. C-----------------------------------------------------------------------
  59. C VARIABLES PASSEES PAR LES COMMONS COPTIO , ECOU ET NECOU
  60. C
  61. C IFOUR INDICE DU TYPE DE PROBLEME
  62. C -3 DEFORMATIONS PLANES GENERALISEES
  63. C -2 CONTRAINTES PLANES
  64. C -1 DEFORMATIONS PLANES
  65. C 0 AXISYMETRIQUE
  66. C 1 SERIE DE FOURIER
  67. C 2 TRIDIMENSIONNEL
  68. C ITYP TYPE DE FORMULATION MECANIQUE
  69. C --------------- ATTENTION ---------------
  70. C IL EST ACTIF APRES L APPEL DE VISAVI
  71. C -----------------------------------------
  72. C ITYP=1 CAS DES ELEMENTS MASSIFS
  73. C ITYP=2 CAS DES COQUES
  74. C ITYP=3 CAS DES MEMBRANES
  75. C ITYP=4 CAS DES CABLES ET DES BARRES
  76. C ITYP=5 CAS QUELCONQUE
  77. C ITYP=6 CAS DES CONTRAINTES PLANES
  78. C ITYP=7 CAS DES COQUES A NU=0. OU CONTRAINTES PLANES
  79. C ITYP=8 CAS DES MEMBRANES A NU=0. OU CONTRAINTES PLANES
  80. C ITYP=9 CAS DES COQUES EPAISSES
  81. C ITYP=10 CAS DES JOINTS
  82. C ITYP=11 CAS DES POUTRES
  83. C ITYP=12 CAS DES TUYAUX
  84. C ITYP=13 CAS DES COQUES AVEC CISAILLEMENT TRANSVERSE
  85. C
  86. C ISTEP flag utilise pour separer les etapes dans un calcul non local
  87. C ISTEP=0 -----> calcul local
  88. C ISTEP=1 -----> calcul non local etape 1 on calcule les seuils
  89. C ISTEP=2 -----> calcul non local etape 2 on continue le calcul
  90. C a partir des seuils moyennes
  91. C ISTEP=3 ----->sous iteration de Helmholtz
  92. C ISTEP est défini par DEFINI.ESO
  93. C
  94. C EPIN0 déformations inélastiques initiales
  95. C EPINF déformations inélastiques finales
  96. C epst0 déformation totale initiale
  97. C EPSTF déformation totale finale
  98. C
  99. C-----------------------------------------------------------------------
  100. C SORTIES
  101. C SIGF(NSTRS) = CONTRAINTES FINALES
  102. C VARF(NVARI) = VARIABLES INTERNES FINALES
  103. C DEFP = DEFORMATIONS PLASTIQUES
  104. C KERRE = 0 TOUT OK
  105. C-----------------------------------------------------------------------
  106.  
  107.  
  108. IMPLICIT INTEGER(I-N)
  109. IMPLICIT REAL*8(A-H,O-Z)
  110. c ajout sellier 2022
  111. -INC PPARAM
  112. c fin ajout sellier 2022
  113. -INC CCOPTIO
  114. -INC DECHE
  115. *
  116. SEGMENT IECOU
  117. * COMMON/IECOU/NYOG,NYNU,NYALFA,NYSMAX,NYN,NYM,NYKK,
  118. INTEGER icow1,icow2,icow3,icow4,icow5,icow6,icow7,
  119. C INTEGER NYOG, NYNU, NYALFA,NYSMAX,NYN, NYM, NYKK,
  120. 1 icow8,icow9,icow10,icow11,icow12,icow13,icow14,icow15,icow16,
  121. C . NYALF1,NYBET1,NYR, NYA, NYRHO,NSIGY, NNKX, NYKX, IND,
  122. 2 icow17,icow18,icow19,icow20,icow21,icow22,icow23,icow24,
  123. C . NSOM, NINV, NINCMA,NCOMP, JELEM, LEGAUS,INAT, NCXMAT,
  124. 3 icow25,icow26,icow27,icow28,icow29,icow30,ICARA,
  125. C . LTRAC, MFR, IELE, NHRM, NBNN, NBELEM,ICARA,
  126. 4 icow32,icow33,NSTRS1,MFR1,icow36,icow37,icow38,
  127. C . LW2, NDEF, NSTRSS,MFR1, NBGMAT,NELMAT,MSOUPA,
  128. 5 icow39,icow40,icow41,icow42,icow43,icow44
  129. C . NUMAT1,LENDO, NBBB, NNVARI,KERR1, MELEME
  130. INTEGER icow45,icow46,icow47,icow48,icow49,icow50,
  131. . icow51,icow52,icow53,icow54,icow55,icow56
  132. . icow57,icow58
  133. ENDSEGMENT
  134. SEGMENT XECOU
  135. * COMMON/XECOU/DTOPTI,TSOM,TCAR,DTT,DT,TREFA,TEMP00
  136. REAL*8 xcow1, xcow2,xcow3,xcow4,DT,xcow6, xcow7
  137. C REAL*8 DTOPTI,TSOM, TCAR, DTT, DT,TREFA,TEMP00
  138. ENDSEGMENT
  139.  
  140. c segment de coordonnees des noeuds de l element
  141. integer nbnb,insb,idimb
  142. SEGMENT MWRKXE
  143. REAL*8 XE(3,nbnb)
  144. ENDSEGMENT
  145.  
  146. *
  147. * sellier/millard segment pour les Helmholtz 04 04 2020
  148. integer NBVIA
  149. SEGMENT WR14
  150. INTEGER INLVIA(NBVIA)
  151. ENDSEGMENT
  152.  
  153. c-----------------------------------------------------------------------
  154. c nombre de noeuds max et table locale des coordonnees des
  155. c noeuds de l element fini
  156. -INC HNBRNEU
  157. c --rappel du contenu de HNBRNEU ---------------------------------
  158. C c ******* tableau local des coordonnees des noeuds de lEF ********
  159. C integer NBNMAX3D
  160. C c nbr de noeuds maxi par element
  161. C parameter (NBNMAX3D=20)
  162. C c tableau des coordonnees des noeuds
  163. C real*8 XE3D(3,NBNMAX3D)
  164. c ----------------------------------------------------------------
  165. c ******************************************************************
  166.  
  167. c ******** taille du pseudo vecteur des contraintes ***************
  168. c tjrs 6 en raison de son utilisation dans as3d
  169. integer nstrs3d
  170. parameter (nstrs3d=6)
  171. real*8 sig03d(nstrs3d),sigf3d(nstrs3d)
  172. real*8 epst03d(nstrs3d),epstf3d(nstrs3d)
  173. real*8 depst3d(nstrs3d)
  174. real*8 dtb,tref3d,alpha
  175.  
  176. c variable logique : elasticite initialement isotrope
  177. logical iso1
  178.  
  179. c nombre de parametres de tailles suivant la formulation
  180. integer ifou11,ntail3d
  181.  
  182. c dimension de l espace de travail
  183. integer idimb3d
  184. c temperatures debut et fin de pas , moyenne, pas de temps, volume rgi
  185. real*8 teta13d,teta23d,temp3d,dt3d
  186. c variables de transfert de donnees ( a declarer suivant idvar4 et idvisc)
  187. integer ierr1,mfr11
  188. c variable pour passer le numero de l etape non locale
  189. integer istep3d,nvarib,nstrsb,ifourb
  190.  
  191. c-----------------------------------------------------------------------
  192.  
  193. c ******************************************************************
  194. c * dimension des tableaux parametres materiau *
  195. c ******************************************************************
  196.  
  197. c *****nombre de renforts et de parametres par renfort**************
  198. c NB_RENF
  199. c NB_PARA_PAR_RENF
  200. c NB_PARA_RENF
  201. c NB_VARI_PAR_RENF
  202. c NB_VARI_RENF
  203. c-INC HNBRREN
  204. c adapte pour mc3d
  205. parameter(NB_RENF=0)
  206. parameter(NB_PARA_PAR_RENF=0)
  207. parameter(NB_PARA_RENF=0)
  208. parameter(NB_VARI_PAR_RENF=0)
  209. parameter(NB_VARI_RENF=0)
  210. c ******************************************************************
  211.  
  212. c ********Nombre de parametres pour variables non locales***********
  213. c NB_HELM: Nombre de variable d etat principales
  214. c NB_PARA_PAR_HELM: Nombre de parametres par variable d etat
  215. c NB_VARI_PAR_HELM: Nombre de variable internes par variables d etat
  216. c NB_PARA_HELM: nombre de parametre total resultant
  217. c NB_VARI_HELM: nombre de variables internes totales resultantes
  218. c INLVIA3D(NB_HELM):copie du pointeur sur les numeros des vari traitee par helmholtz
  219. c NBVIA3D: recuperation du nombre de Helmholtz actives
  220. -INC HNBRHEL
  221. C c ------- Rappel du contenur de HNBRHEL ----------------------------
  222. C c Declaration commune pour les varibales de Helmholtz
  223. C c Nombre de variable détat principales
  224. C integer NB_HELM
  225. C c Nombre de parametres par variable d etat
  226. C integer NB_PARA_PAR_HELM
  227. C c Nombre de variable internes par avriables d etat
  228. C integer NB_VARI_PAR_HELM
  229. C c nombre de variables non locales ISO et UNI
  230. C parameter (NB_HELM=8)
  231. C c nombre de parametre par variable iso et par variable uni
  232. C parameter (NB_PARA_PAR_HELM=17)
  233. C c nombre de vari par vari ISO (cf idvar4) (99 maxi)
  234. C parameter (NB_VARI_PAR_HELM=10)
  235. C c calcul du nombre maximum de variables de helmholtz
  236. C integer NB_PARA_HELM,NB_VARI_HELM
  237. C c nombre total de parametres non locaux (cf idmatr.eso)
  238. C parameter (NB_PARA_HELM=NB_HELM*NB_PARA_PAR_HELM)
  239. C c nombre de vari pour le non local
  240. C parameter (NB_VARI_HELM=NB_HELM*NB_VARI_PAR_HELM)
  241. C c tableau des numeros des variables internes non locales actives par Helmholtz
  242. C integer INLVIA3D(NB_HELM)
  243. C c nombre de Helmholtz actives
  244. C integer NBVIA3D
  245. c ------------------------------------------------------------------
  246. c ******************************************************************
  247.  
  248. c parametres commun aux modele mecaniques elastiques isotropes
  249. integer NBELAS3D,NB_DECAL,NMAT3D
  250. c en isotrope le nombre de parametre de base est 4 = YOUN NU ALP RHO
  251. parameter (NBELAS3D=4)
  252. c decalage entre les parametres obligatoires (le modele)
  253. c et les parametres facultatifs (les parametres pour Helmholtz)
  254. parameter (NB_DECAL=3)
  255. c nombre de parametre ajoute par idmatr en fin de tableau des facultative
  256. parameter (NB_FIN=0)
  257.  
  258. c Nombre de parametres partie non lineaire de la loi de comportement
  259. c NB_PARA_FLUENDO3D
  260. c NB_VARI_FLUENDO3D
  261. c NB_PARA_SUPP_FLUENDO3D
  262. c NB_VARI_SUPP_FLUENDO3D
  263. c-INC HNBRF3D
  264. c adapte pour mc3d apartir de idvis pour les parametres et idvar4 pour les vari
  265. c pas de fibre pour l instant dans mc3d
  266. parameter(NB_PARA_SUPP_FLUENDO3D=0)
  267. parameter(NB_VARI_SUPP_FLUENDO3D=0)
  268. parameter(NB_PARA_FIBRE_U=0)
  269. c ---cf affichage dans idvisc au lancement du modele mc3d ----------
  270. parameter(NB_PARA_FLUENDO3D=52)
  271. c ---cf affichage dans idvar4 au lancement du modele mc3d ----------
  272. parameter(NB_VARI_FLUENDO3D=137)
  273.  
  274. c ***calcul des zones memoires pour les types de modeles ***********
  275. integer NMAT0,NMAT1,NMAT2,NMAT3,NMAT4
  276. c nombre de parametres propre au modele sans les renforts ni le non local
  277. parameter (NMAT0=NBELAS3D)
  278. parameter (NMAT1=NMAT0+NB_PARA_FLUENDO3D)
  279. parameter (NMAT2=NMAT1+NB_PARA_SUPP_FLUENDO3D)
  280. parameter (NMAT3=NMAT2+NB_PARA_RENF+NB_DECAL)
  281. parameter (NMAT3D=NMAT3+NB_PARA_HELM+NB_FIN)
  282.  
  283. c ******************************************************************
  284. c dimension maxi du tableau des parametres y compris non local
  285. real*8 XMAT3D(NMAT3D)
  286. c ******************************************************************
  287. c
  288.  
  289. c ******************************************************************
  290. c * dimension des tableaux variables internes *
  291. c ******************************************************************
  292.  
  293. c **** nombre de variables internes loi de comportement non lineaire
  294.  
  295.  
  296. c nbr de variables pour la loi de comportement non lineaire
  297. integer NVAR0,NVAR1,NVAR2,NVAR3,NVARI3D
  298. parameter (NVAR0=0)
  299. parameter (NVAR1=NVAR0+NB_VARI_FLUENDO3D)
  300. parameter (NVAR2=NVAR1+NB_VARI_SUPP_FLUENDO3D)
  301. parameter (NVAR3=NVAR2+NB_VARI_RENF)
  302. parameter (NVARI3D=NVAR3+NB_VARI_HELM)
  303. c ******************************************************************
  304.  
  305. c **** nombre total de variables internes **************************
  306. c tableau local des variables internes
  307. real*8 VAR03D(NVARI3D),VARF3D(NVARI3D)
  308. c ******************************************************************
  309.  
  310. c-----------------------------------------------------------------------
  311.  
  312. c***********************************************************************
  313. c remarque : parametres elastiques en formulation poreux massif (mfr=33)
  314. c cas isotrope
  315. c en debut de xmat :
  316. c 'YOUN' : module d'Young
  317. c 'NU ' : coefficient de poisson
  318. c 'RHO ' : masse volumique (a la fin en non poreux)
  319. c 'ALPH' : coefficient de dilatation thermique
  320. c à la fin de xmat :
  321. c 'MOB ' : module de Biot
  322. c 'COB ' : coefficient de Biot
  323. c 'PERM' : perméabilité intrinsèque
  324. c 'VISC' : viscosité dynamique du fluide
  325. c 'ALPM' : coefficient de couplage pression - température
  326. c attention L ORDRE N EST PAS LE MEME SI LE MATERIAU EST ORTHOTROPE
  327. c cf deche.inc pour recuperer les noms exacts des variables
  328. c transfert des variables dans les tableaux du modele
  329. c***********************************************************************
  330.  
  331.  
  332. c*****debut du transfert des donnees vers les modeles (sellier 2022)****
  333.  
  334. c ** on verifie si on a du non local via Helmholtz ****************
  335. c le decalage est RHO ALPH VISQ avant les parmetres non locaux si
  336. c il y a des non locales, alors qu'il est de 1 si on est en local
  337. if(WR14.EQ.0) then
  338. NBVIA = 0
  339. else
  340. NBVIA=INLVIA(/1)
  341. c print*,'NBVIA = ',NBVIA
  342. c do i=1,NBVIA
  343. c print*, 'I' ,i, 'INLVIA ' ,INLVIA(i)
  344. c end do
  345. endif
  346.  
  347. c suivant la formulation
  348. if(mfr.ne.33) then
  349. c ****** formulation non poreux **********************************
  350. c print*,'ds cflui3d istep=',istep
  351. if(istep.eq.0) then
  352. c ***** formulation locale***********************************
  353. if ((NMAT3D-NB_PARA_HELM).ne.nmatt) then
  354. print*,'pb dimension de xmat cflui3d local'
  355. print*,'NBELAS3D',NBELAS3D
  356. print*,'NMAT0',NMAT0
  357. print*,'NB_PARA_FLUENDO3D',NB_PARA_FLUENDO3D
  358. print*,'NMAT1',NMAT1
  359. print*,'NB_PARA_SUPP_FLUENDO3D',NB_PARA_SUPP_FLUENDO3D
  360. print*,'NMAT2',NMAT2
  361. print*,'NB_DECAL',NB_DECAL
  362. print*,'NB_PARA_RENF',NB_PARA_RENF
  363. print*,'NMAT3',NMAT3
  364. print*,'NB_PARA_HELM',NB_PARA_HELM
  365. print*,'NB_FIN',NB_FIN
  366. print*,'NMAT3D-NB_PARA_HELM',NMAT3D-NB_PARA_HELM
  367. print*,'NMATT',NMATT
  368. do i=1,nmatt
  369. print*,'xmat(',i,')=',xmat(i)
  370. enddo
  371. read*
  372. kerre=1
  373. return
  374. else
  375. do i=1,(NMAT3D-NB_PARA_HELM)
  376. XMAT3D(i)=xmat(i)
  377. enddo
  378. c on met a zero les Helmholtz
  379. do i=(NMAT3D-NB_PARA_HELM+1), nmatt
  380. XMAT3D(i)=0.
  381. enddo
  382. end if
  383. else
  384. c **** formulation non locale *******************************
  385. c ces parametres facultatifs sont definies dans IDMATR
  386. if(NMAT3D.ne.nmatt) then
  387. print*,'pb dimension de xmat cflui3d local'
  388. print*,'NBELAS3D',NBELAS3D
  389. print*,'NMAT0',NMAT0
  390. print*,'NB_PARA_FLUENDO3D',NB_PARA_FLUENDO3D
  391. print*,'NMAT1',NMAT1
  392. print*,'NB_PARA_SUPP_FLUENDO3D',NB_PARA_SUPP_FLUENDO3D
  393. print*,'NMAT2',NMAT2
  394. print*,'NB_DECAL',NB_DECAL
  395. print*,'NB_PARA_RENF',NB_PARA_RENF
  396. print*,'NMAT3',NMAT3
  397. print*,'NB_PARA_HELM',NB_PARA_HELM
  398. print*,'NB_FIN',NB_FIN
  399. print*,'NMAT3D',NMAT3D
  400. print*,'NMATT',NMATT
  401. do i=1,nmatt
  402. print*,'xmat(',i,')=',xmat(i)
  403. enddo
  404. read*
  405. kerre=1
  406. return
  407. else
  408. do i=1,nmatt
  409. XMAT3D(i)=xmat(i)
  410. enddo
  411. end if
  412. end if
  413. else
  414. c *****formulation poreux ****************************************
  415. print*,'on est en poreux dans cflui3d'
  416. print*,'Pb affectation des caracteristiques dans cas3d'
  417. do i=1,nmatt
  418. print*,'xmat(',i,')=',xmat(i)
  419. end do
  420. print*,'voir idmatr et deche.inc pour parametres en poreux'
  421. kerre=1
  422. return
  423. end if
  424.  
  425. c********** recuperation des variables internes debut de pas ***********
  426. if(NVARI3D.ne.nvarib) then
  427. print*,'Pb dimension de var0 dans cas3d'
  428. print*,'Verifier dimension table des variables internes'
  429. print*,'et CMPATBLTCR avec idvar4 et as3d'
  430. read*
  431. kerre=1
  432. return
  433. end if
  434. c transfert vers le tableau de fluendo3d
  435. do i=1,NVARI3D
  436. VAR03D(i)=var0(i)
  437. end do
  438.  
  439. c*********** recuperation des contraintes totales debut de pas *********
  440. if(mfr.ne.33) then
  441. c on est pas en poreux
  442. if(nstrsb.lt.nstrs3d) then
  443. do i=1,nstrsb
  444. sig03d(i)=sig0(i)
  445. sigf3d(i)=sigf(i)
  446. c ATTENTION les depst 3-6 doivent etre des gamas
  447. depst3d(i)=depst(i)
  448. epst03d(i)=epst0(i)
  449. epstf3d(i)=epstf(i)
  450. end do
  451. do i=nstrsb+1,nstrs3d
  452. sig03d(i)=0.d0
  453. sigf3d(i)=0.d0
  454. c ATTENTION les depst 3-6 doivent etre des gamas
  455. depst3d(i)=0.d0
  456. epst03d(i)=0.d0
  457. epstf3d(i)=0.d0
  458. end do
  459. else
  460. do i=1,nstrs3d
  461. sig03d(i)=sig0(i)
  462. sigf3d(i)=sigf(i)
  463. c ATTENTION les depst 3-6 doivent etre des gamas
  464. depst3d(i)=depst(i)
  465. epst03d(i)=epst0(i)
  466. epstf3d(i)=epstf(i)
  467. end do
  468. end if
  469. else
  470. print*,'on est en poreux'
  471. print*,'Pb affectation des contraintes dans cflui3d'
  472. print*,'a terminer'
  473. do i=1,nstrsb
  474. print*,'sig(',i,')=',sig0(i)
  475. end do
  476. kerre=1
  477. return
  478. end if
  479.  
  480.  
  481. c************** autres parametres a renseigner ***********************
  482.  
  483. c initialisation indicateur d erreur
  484. ierr1=0
  485. c indicateur isostropie elastique et de resistance
  486. iso1=.true.
  487. c numero de la formulation (33 pour poreux)
  488. mfr11=mfr
  489. c type de formulation
  490. ifour11=ifourb
  491. c pas de temps
  492. dt3d=dtb
  493. c numero pour le traitement non local eventuel
  494. istep3d=istep
  495.  
  496. c************* recuperation des coordonnees de noeuds ******************
  497. c boucle sur les noeuds
  498. if(nbnb.le.NBNMAX3D) then
  499. NBNB3D=nbnb
  500. if(idimb.le.3) then
  501. idimb3d=idimb
  502. else
  503. print*,'pb table de coord des neouds ds cflui3d'
  504. kerre=1
  505. return
  506. end if
  507. else
  508. print*,'Element avec + de noeuds que capacite de cflui3d'
  509. kerre=1
  510. return
  511. end if
  512. c chargement des coordonnees des noeuds
  513. do insb=1,NBNB3D
  514. do j=1,idimb3d
  515. c print*,'xe(',j,insb,')=',xe(j,insb)
  516. XE3D(j,insb)=xe(j,insb)
  517. end do
  518. if (idimb.lt.3) then
  519. do j=idimb+1,3
  520. XE3D(j,insb)=0.d0
  521. end do
  522. end if
  523. end do
  524. c on double les neouds si le probleme est 2D
  525. if ((ifourb.eq.0).or.(ifourb.eq.-1)) then
  526. c on double les noeuds avec dimension 3 recuperee ds xmat(1er param perso pour mc3d)
  527. dimension3=XMAT3D(NBELAS3D+1)
  528. NBNB3D=2*nbnb
  529. do insb=nbnb+1,NBNB3D
  530. do j=1,2
  531. c print*,'xe(',j,insb,')=',xe(j,insb)
  532. XE3D(j,insb)=XE3D(j,(insb-nbnb))
  533. end do
  534. XE3D(3,insb)=dimension3
  535. end do
  536. end if
  537.  
  538. c ****** recuperation de la temperature de reference **************
  539. tref3d=trefb
  540. c print*,'verif temperature de reference fluendo3d',trefb
  541.  
  542. c * intialisation des variables de sortie a leur valeur initiale *
  543. c en cas de 1ere etape non locale
  544. if(istep.eq.1) then
  545. do i=1,nvari3d
  546. varf3d(i)=var03d(i)
  547. end do
  548. else
  549. do i=1,nvari3d
  550. varf3d(i)=0.d0
  551. end do
  552. endif
  553. c****************** fin du transferts des donnees **********************
  554.  
  555. c*************recuperation des numeros des variables Helmholtz *********
  556.  
  557. c transfert dans un tableau de fluendo3d dimensionne au max des
  558. c facultative helmholtz de IDMATR (actuellement 10)
  559. if(NBVIA.GT.NB_HELM) then
  560. print*,'Pb de dimensionnement avec les variables de Helmholtz'
  561. print*,'dans cflui3d:',NBVIA,' > ',NB_HELM
  562. print*,'Verifier NB_HELM et nbr de non locales'
  563. print*,'declarees nombre_helmholtz.h (NBRHEL.INC)'
  564. else
  565. c transfert vers les variables locales
  566. if (NBVIA.gt.0) then
  567. NBVIA3D=NBVIA
  568. do i=1,NB_HELM
  569. if(i.le.NBVIA3D) then
  570. INLVIA3D(i)=INLVIA(i)
  571. else
  572. INLVIA3D(i)=0
  573. end if
  574. end do
  575. else
  576. NBVIA3D=NBVIA
  577. do i=1,NB_HELM
  578. INLVIA3D(i)=0
  579. end do
  580. end if
  581. end if
  582. c************* fin de recuperation des numeros des variables Helmholtz *
  583.  
  584. c************* appel au modele fluendo3d*******************************
  585.  
  586. call flui3d(XMAT3D,NMAT3D,sig03d,sigf3d,depst3d,nstrs3d,
  587. #VAR03D,VARF3D,NVARI3D,teta13d,teta23d,dt3d,ierr1,iso1,mfr11,
  588. #ifour11,istep3d,epst03d,epstf3d,tref3d,NBELAS3D,NB_PARA_FLUENDO3D,
  589. #NB_PARA_SUPP_FLUENDO3D,NB_VARI_FLUENDO3D,NB_VARI_SUPP_FLUENDO3D,
  590. #NB_DECAL,NBNMAX3D,NBNB3D,IDIMB3D,XE3D,NBVIA3D,INLVIA3D,
  591. #NMAT0,NMAT1,NMAT2,NMAT3,NVAR0,NVAR1,NVAR2,NVAR3,NB_PARA_FIBRE_U)
  592.  
  593.  
  594. c************ re-affectation des tableaux de variables internes ********
  595. do i=1,nvarib
  596. varf(i)=VARF3D(i)
  597. * print*,'cas3d f(',i,')=',varf(i),' i',var0(i)
  598. end do
  599. c read*
  600. c ecriture des contraintes totales fin de pas
  601. do i=1,nstrsb
  602. sigf(i)=sigf3d(i)
  603. end do
  604.  
  605. c***********************************************************************
  606. c traitement de l erreur d ecoulement
  607. if(ierr1.eq.0)then
  608. kerre=0
  609. else
  610. kerre=1
  611. end if
  612. return
  613. end
  614.  
  615. c***********************************************************************
  616.  
  617.  
  618.  
  619.  
  620.  

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