Télécharger cfluo3d.eso

Retour à la liste

Numérotation des lignes :

cfluo3d
  1. C CFLUO3D 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 cfluo3d(WRK52,WRK53,WRK54,MWRKXE,WR14,
  5. # nbnb,idimb,teta1b,teta2b,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----- nombre de noeuds max et table locale des coordonnees ------------
  154. -INC HNBRNEU
  155. c rappel du contenu de HNBRNEU
  156. C tableau local des coordonnees des noeuds de lEF
  157. C integer NBNMAX3D
  158. C nbr de noeuds maxi par element
  159. C parameter (NBNMAX3D=20)
  160. C tableau des coordonnees des noeuds
  161. C real*8 XE3D(3,NBNMAX3D)
  162. c-----------------------------------------------------------------------
  163.  
  164. c-------------- Parametres pour le non locale --------------------------
  165. -INC HNBRHEL
  166. c NB_HELM: Nombre de variable d etat principales
  167. c NB_PARA_PAR_HELM: Nombre de parametres par variable d etat
  168. c NB_VARI_PAR_HELM: Nombre de variable internes par variables d etat
  169. c NB_PARA_HELM: nombre de parametre total resultant
  170. c NB_VARI_HELM: nombre de variables internes totales resultantes
  171. c INLVIA3D(NB_HELM):copie du pointeur sur les numeros des vari traitee par helmholtz
  172. c NBVIA3D: recuperation du nombre de Helmholtz actives
  173. c declaration des tableaux pour helmholtz
  174. -INC HDECHEL
  175.  
  176.  
  177. c----------------Parametres pour les renforts --------------------------
  178. c-INC HNBRREN
  179. c NB_RENF
  180. c NB_PARA_PAR_RENF
  181. c NB_PARA_RENF
  182. c NB_VARI_PAR_RENF
  183. c NB_VARI_RENF
  184.  
  185. c------------- Nombre de parametres pour le modele de fibre ------------
  186. c-INC HNBRF3D
  187. c pas de fibre pour l instant dans FLUISO3D
  188.  
  189. c-----------------------------------------------------------------------
  190.  
  191.  
  192. c-- transfert des coordonnees des noeuds -------------------------------
  193.  
  194. c recuperation de la dimension hors plan en cas de calcul 2D
  195. c boucle sur les noeuds
  196. if(nbnb.le.NBNMAX3D) then
  197. NBNB3D=nbnb
  198. if(idimb.le.3) then
  199. idimb3d=idimb
  200. else
  201. print*,'pb table de coord des noeuds ds cfluo3d'
  202. kerre=1
  203. return
  204. end if
  205. else
  206. print*,'Element avec + de noeuds que capacite declaree dans'
  207. print*,'HNBRNEU.INC'
  208. kerre=1
  209. return
  210. end if
  211.  
  212. c chargement des coordonnees des noeuds
  213. do insb=1,NBNB3D
  214. do j=1,idimb3d
  215. c print*,'xe(',j,insb,')=',xe(j,insb)
  216. XE3D(j,insb)=xe(j,insb)
  217. end do
  218. if (idimb.lt.3) then
  219. do j=idimb+1,3
  220. XE3D(j,insb)=0.d0
  221. end do
  222. end if
  223. end do
  224.  
  225. c on double les neouds si le probleme est 2D
  226. if ((ifourb.eq.0).or.(ifourb.eq.-1)) then
  227. if(mfr.ne.33) then
  228. c position de la dimension en non poreux
  229. dimension3=XMAT3D(16)
  230. else
  231. c position en poreux
  232. print*,'dans cfluo3d ajouter dimension3'
  233. kerre=1
  234. return
  235. end if
  236. NBNB3D=2*nbnb
  237. do insb=nbnb+1,NBNB3D
  238. do j=1,2
  239. c print*,'xe(',j,insb,')=',xe(j,insb)
  240. XE3D(j,insb)=XE3D(j,(insb-nbnb))
  241. end do
  242. XE3D(3,insb)=dimension3
  243. end do
  244. end if
  245.  
  246.  
  247. c------------- test du nombre de variables de Helmholtz ----------------
  248.  
  249. c transfert dans un tableau de fluendo3d dimensionne au max des
  250. c facultative helmholtz de IDMATR (actuellement 10)
  251.  
  252. if(NBVIA.GT.NB_HELM) then
  253. print*,'Pb de dimensionnement avec les variables de Helmholtz'
  254. print*,'dans cflui3d:',NBVIA,' > ',NB_HELM
  255. print*,'Verifier NB_HELM et nbr de non locales'
  256. print*,'declarees nombre_helmholtz.h (NBRHEL.INC)'
  257. else
  258. c transfert vers les variables locales
  259. if (NBVIA.gt.0) then
  260. NBVIA3D=NBVIA
  261. do i=1,NB_HELM
  262. if(i.le.NBVIA3D) then
  263. INLVIA3D(i)=INLVIA(i)
  264. else
  265. INLVIA3D(i)=0
  266. end if
  267. end do
  268. else
  269. NBVIA3D=NBVIA
  270. do i=1,NB_HELM
  271. INLVIA3D(i)=0
  272. end do
  273. end if
  274. end if
  275. c------------ fin de recuperation des numeros des variables Helmholtz --
  276.  
  277.  
  278. c------------- appel au modele ----------------------------------------
  279.  
  280. call FLUO3D(XMAT,NMAT,SIG0,SIGF,DEPST,NSTRSb,VAR0,VARF,
  281. # NVARIb,TETA1b,TETA2b,DTb,KERRE,MFR,IFOURB,ISTEP,EPST0,
  282. # EPSTF,TREFB,NBVIA3d,INLVIA3d,NBNMAX3D,NBNB3D,IDIMB3D,XE3D)
  283.  
  284. return
  285. end
  286.  
  287. c***********************************************************************
  288.  
  289.  
  290.  
  291.  
  292.  

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