Télécharger cfluo3d.eso

Retour à la liste

Numérotation des lignes :

cfluo3d
  1. C CFLUO3D SOURCE OF166741 25/11/04 21:15:19 12349
  2.  
  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. IMPLICIT INTEGER(I-N)
  108. IMPLICIT REAL*8(A-H,O-Z)
  109. c ajout sellier 2022
  110. -INC PPARAM
  111. c fin ajout sellier 2022
  112. -INC CCOPTIO
  113. -INC DECHE
  114.  
  115. c segment de coordonnees des noeuds de l element
  116. integer nbnb,insb,idimb
  117.  
  118. SEGMENT MWRKXE
  119. REAL*8 XE(3,nbnb)
  120. ENDSEGMENT
  121.  
  122. * sellier/millard segment pour les Helmholtz 04 04 2020
  123. integer NBVIA
  124. SEGMENT WR14
  125. INTEGER INLVIA(NBVIA)
  126. ENDSEGMENT
  127.  
  128. c----- nombre de noeuds max et table locale des coordonnees ------------
  129. -INC HNBRNEU
  130. c rappel du contenu de HNBRNEU
  131. C tableau local des coordonnees des noeuds de lEF
  132. C integer NBNMAX3D
  133. C nbr de noeuds maxi par element
  134. C parameter (NBNMAX3D=20)
  135. C tableau des coordonnees des noeuds
  136. C real*8 XE3D(3,NBNMAX3D)
  137. c-----------------------------------------------------------------------
  138.  
  139. c-------------- Parametres pour le non locale --------------------------
  140. -INC HNBRHEL
  141. c NB_HELM: Nombre de variable d etat principales
  142. c NB_PARA_PAR_HELM: Nombre de parametres par variable d etat
  143. c NB_VARI_PAR_HELM: Nombre de variable internes par variables d etat
  144. c NB_PARA_HELM: nombre de parametre total resultant
  145. c NB_VARI_HELM: nombre de variables internes totales resultantes
  146. c INLVIA3D(NB_HELM):copie du pointeur sur les numeros des vari traitee par helmholtz
  147. c NBVIA3D: recuperation du nombre de Helmholtz actives
  148. c declaration des tableaux pour helmholtz
  149. -INC HDECHEL
  150.  
  151. c----------------Parametres pour les renforts --------------------------
  152. c-INC HNBRREN
  153. c NB_RENF
  154. c NB_PARA_PAR_RENF
  155. c NB_PARA_RENF
  156. c NB_VARI_PAR_RENF
  157. c NB_VARI_RENF
  158.  
  159. c------------- Nombre de parametres pour le modele de fibre ------------
  160. c-INC HNBRF3D
  161. c pas de fibre pour l instant dans FLUISO3D
  162.  
  163. c-----------------------------------------------------------------------
  164.  
  165. c-- transfert des coordonnees des noeuds -------------------------------
  166.  
  167. c recuperation de la dimension hors plan en cas de calcul 2D
  168. c boucle sur les noeuds
  169. if(nbnb.le.NBNMAX3D) then
  170. NBNB3D=nbnb
  171. if(idimb.le.3) then
  172. idimb3d=idimb
  173. else
  174. print*,'pb table de coord des noeuds ds cfluo3d'
  175. kerre=1
  176. return
  177. end if
  178. else
  179. print*,'Element avec + de noeuds que capacite declaree dans'
  180. print*,'HNBRNEU.INC'
  181. kerre=1
  182. return
  183. end if
  184.  
  185. c chargement des coordonnees des noeuds
  186. do insb=1,NBNB3D
  187. do j=1,idimb3d
  188. c print*,'xe(',j,insb,')=',xe(j,insb)
  189. XE3D(j,insb)=xe(j,insb)
  190. end do
  191. if (idimb.lt.3) then
  192. do j=idimb+1,3
  193. XE3D(j,insb)=0.d0
  194. end do
  195. end if
  196. end do
  197.  
  198. c on double les neouds si le probleme est 2D
  199. if ((ifourb.eq.0).or.(ifourb.eq.-1)) then
  200. if(mfr.ne.33) then
  201. c position de la dimension en non poreux
  202. dimension3=XMAT3D(16)
  203. else
  204. c position en poreux
  205. print*,'dans cfluo3d ajouter dimension3'
  206. kerre=1
  207. return
  208. end if
  209. NBNB3D=2*nbnb
  210. do insb=nbnb+1,NBNB3D
  211. do j=1,2
  212. c print*,'xe(',j,insb,')=',xe(j,insb)
  213. XE3D(j,insb)=XE3D(j,(insb-nbnb))
  214. end do
  215. XE3D(3,insb)=dimension3
  216. end do
  217. end if
  218.  
  219. c------------- test du nombre de variables de Helmholtz ----------------
  220.  
  221. c transfert dans un tableau de fluendo3d dimensionne au max des
  222. c facultative helmholtz de IDMATR (actuellement 10)
  223.  
  224. if(NBVIA.GT.NB_HELM) then
  225. print*,'Pb de dimensionnement avec les variables de Helmholtz'
  226. print*,'dans cflui3d:',NBVIA,' > ',NB_HELM
  227. print*,'Verifier NB_HELM et nbr de non locales'
  228. print*,'declarees nombre_helmholtz.h (NBRHEL.INC)'
  229. else
  230. c transfert vers les variables locales
  231. if (NBVIA.gt.0) then
  232. NBVIA3D=NBVIA
  233. do i=1,NB_HELM
  234. if(i.le.NBVIA3D) then
  235. INLVIA3D(i)=INLVIA(i)
  236. else
  237. INLVIA3D(i)=0
  238. end if
  239. end do
  240. else
  241. NBVIA3D=NBVIA
  242. do i=1,NB_HELM
  243. INLVIA3D(i)=0
  244. end do
  245. end if
  246. end if
  247. c------------ fin de recuperation des numeros des variables Helmholtz --
  248.  
  249. c------------- appel au modele ----------------------------------------
  250.  
  251. call FLUO3D(XMAT,NMAT,SIG0,SIGF,DEPST,NSTRSb,VAR0,VARF,
  252. # NVARIb,TETA1b,TETA2b,DTb,KERRE,MFR,IFOURB,ISTEP,EPST0,
  253. # EPSTF,TREFB,NBVIA3d,INLVIA3d,NBNMAX3D,NBNB3D,IDIMB3D,XE3D)
  254.  
  255. return
  256. end
  257.  
  258. c***********************************************************************
  259.  
  260.  

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