Télécharger tcoq2c.eso

Retour à la liste

Numérotation des lignes :

tcoq2c
  1. C TCOQ2C SOURCE BP208322 15/06/22 21:23:16 8543
  2.  
  3. ************************************************************************
  4. *
  5. * T C O Q 2 C
  6. * -----------
  7. *
  8. * FONCTION:
  9. * ---------
  10. * TRAITEMENT DU CAS DES ELEMENTS-FINIS SEGMENT COQUE AXISYMETRIQUE
  11. * A INTEGRATION-SEMI ANALYTIQUE (INTEGRATION ANALYTIQUE DANS L'
  12. * EPAISSEUR )POUR UN MAILLAGE ELEMENTAIRE
  13. *
  14. *
  15. * PARAMETRES: (E)=ENTREE (S)=SORTIE (+ = CONTENU DANS UN COMMUN)
  16. * -----------
  17. *
  18. * NEF (E) NUMERO DE L'ELEMENT-FINI DANS NOMTP (VOIR CCHAMP)
  19. * IMAIL (E) NUMERO DU MAILLAGE ELEMENTAIRE CONSIDERE,DANS
  20. * L'OBJET MODELE
  21. * IPMODE (E) POINTEUR SUR UN SEGMENT IMODEL
  22. * IPCHEM (E) POINTEUR SUR LE CHAMELEM DE CARACTERISTIQUE
  23. * IPRIGI (E/S) POINTEUR SUR L'OBJET RESULTAT,DE TYPE RIGIDITE
  24. *
  25. * VARIABLES:
  26. * ----------
  27. * NBNN NOMBRE DE NOEUDS DANS L'ELEMENT CONSIDERE
  28. * NEF NUMERO DE L'ELEMENT FINI DANS NOMTP (VOIR CCHAMP)
  29. * NBELEM NOMBRE D'ELEMENTS DANS LE MAILLAGE ELEMENTAIRE
  30. * NBPGAU NOMBRE DE POINTS DE GAUSS DANS L'ELEMENT-FINI
  31. * NDIM NOMBRE DE LIGNES DE LA MATRICE GRADIENT
  32. * CEL(2*NBNN,2*NBNN) MATRICE DE CONDUCTIVITE ELEMENTAIRE
  33. * XE(3,NBNN) COORDONNEES DE L'ELEMENT DANS LE REPERE GLOBAL
  34. * SHP(NBNN) TABLEAU DE TRAVAIL
  35. * GRAD(NBNN) MATRICE GRADIENT DES FONCTIONS DE FORME MONODIMENSIONNE
  36. * VALMAT(4) TABLEAU DE TRAVAIL
  37. ************************************************************************
  38. *
  39. SUBROUTINE TCOQ2C (NEF,IPMAIL,IPINTE,IMATE,IVAMAT,NVAMAT,
  40. & IPMATR,NLIGR)
  41.  
  42. IMPLICIT INTEGER(I-N)
  43. IMPLICIT REAL*8(A-H,O-Z)
  44.  
  45.  
  46. -INC PPARAM
  47. -INC CCOPTIO
  48. -INC CCREEL
  49. -INC CCHAMP
  50.  
  51. -INC SMCHAML
  52. -INC SMCOORD
  53. -INC SMELEME
  54. -INC SMINTE
  55. -INC SMRIGID
  56.  
  57. SEGMENT,MMAT1
  58. REAL*8 VALMAT(NMATR)
  59. REAL*8 XE(3,NBNN),SHP(NBNN),GRAD(NBNN)
  60. REAL*8 CEL1(NBNN,NBNN),CEL2(NBNN,NBNN)
  61. ENDSEGMENT
  62. *
  63. SEGMENT MPTVAL
  64. INTEGER IPOS(NS) ,NSOF(NS)
  65. INTEGER IVAL(NCOSOU)
  66. CHARACTER*16 TYVAL(NCOSOU)
  67. ENDSEGMENT
  68. *
  69. C= Quelques constantes (dont 2.Pi)
  70. PARAMETER (UNDE=0.5D0,UN=1.D0)
  71. PARAMETER (X2Pi=6.283185307179586476925286766559D0)
  72.  
  73. * ELEMENT PUREMENT AXISYMETRIQUE
  74. IF (IFOMOD.NE.0) THEN
  75. CALL ERREUR (19)
  76. RETURN
  77. ENDIF
  78. *
  79. * MAILLAGE ELEMENTAIRE
  80. MELEME = IPMAIL
  81. c* SEGACT,MELEME
  82. NBNN = NUM(/1)
  83. NBELEM = NUM(/2)
  84. *
  85. * CARACTERISTIQUES D'INTEGRATION DE L'ELEMENT COQ2 LIE A NOTRE MAILLAGE
  86. MINTE = IPINTE
  87. c* SEGACT,MINTE
  88. NBPGAU = POIGAU(/1)
  89. *
  90. XMATRI = IPMATR
  91. C* SEGACT,XMATRI*MOD
  92.  
  93. * SEGMENTS MELVAL correspondant aux composantes de la conductivite et
  94. * de l'epaisseur des elements (epaisseur toujours placee a la fin !)
  95. MPTVAL = IVAMAT
  96. C* SEGACT,MPTVAL
  97. * Verification de la constance de l'epaisseur :
  98. * IPMELV = IVAL(NVAMAT)
  99. * CALL QUELCH(IPMELV,ICONS)
  100. * IF (ICONS.NE.0) THEN
  101. * CALL ERREUR(566)
  102. * RETURN
  103. * ENDIF
  104.  
  105. NMATR = NVAMAT
  106. NDIM = IDIM
  107. SEGINI,MMAT1
  108.  
  109. * BOUCLE SUR LES ELEMENTS DU MAILLAGE ELEMENTAIRE
  110. *
  111. DO 10 iel = 1, NBELEM
  112. *
  113. *- Recherche des COORDONNEES DES NOEUDS DE L'ELEMENT IEL (REPERE GLOBAL)
  114. *
  115. CALL DOXE(XCOOR,IDIM,NBNN,NUM,iel,XE)
  116. *
  117. *- Calcul de la "longueur" de l'element
  118. D = (XE(1,2)-XE(1,1))**2+(XE(2,2)-XE(2,1))**2
  119. * LA DISTANCE ENTRE LES DEUX NOEUDS DE L'ELEMENT EST NULLE
  120. IF (D.LE.XPETIT) THEN
  121. INTERR(1) = iel
  122. CALL ERREUR(255)
  123. GOTO 999
  124. ENDIF
  125. D = SQRT(D)
  126. *
  127. * MATRICE DE GRADIENT (constante sur l'element)
  128. *
  129. r_z = UN / D
  130. GRAD(1) = -r_z
  131. GRAD(2) = r_z
  132. *
  133. * "Partie" du JACOBIEN independante du point d'integration
  134. *
  135. DJAC1 = X2Pi * UNDE * D
  136. *
  137. * Quelques caracteristiques geometriques constantes
  138. RO = (XE(1,1) + XE(1,2)) * UNDE
  139. DR = XE(1,2) - XE(1,1)
  140. *
  141. * Epaisseur moyenne de la coque
  142. EPAI = XZERO
  143. *
  144. * MISE A ZERO DES TABLEAUX CEL1 ET CEL2
  145. *
  146. CALL ZERO(CEL1,NBNN,NBNN)
  147. CALL ZERO(CEL2,NBNN,NBNN)
  148. *
  149. * BOUCLE SUR LES POINTS DE GAUSS
  150. *
  151. DO 20 igau = 1, NBPGAU
  152. *
  153. * CALCUL DE LA MATRICE GRADIENT DES FONCTIONS DE FORME ET
  154. * DU JACOBIAN,EN UN POINT DE GAUSS
  155. *
  156. * MATRICE DE FONCTION DE FORME
  157. *
  158. r_z = UNDE*QSIGAU(igau)
  159. SHP(1) = UNDE - r_z
  160. SHP(2) = UNDE + r_z
  161. *
  162. * CALCUL DU RAYON DE LA COQUE
  163. *
  164. RR = RO + DR * r_z
  165. * L'AXE EST CONFONDU AVEC L'UN DES COTES DE L'ELEMENT ?
  166. IF (ABS(RR/D).LE.1.D-03) THEN
  167. INTERR(1)=IEL
  168. CALL ERREUR (256)
  169. GOTO 999
  170. ENDIF
  171. DJAC = DJAC1 * POIGAU(igau) * RR
  172. *
  173. * ON CHERCHE LES VALEURS DES COMPOSANTES DE LA CONDUCTIVITE
  174. * ET L'EPAISSEUR DE LA COQUE
  175. *
  176. DO i = 1, NMATR
  177. c* IF (IVAL(i).NE.0) THEN
  178. MELVAL = IVAL(i)
  179. ibmn = MIN(iel ,VELCHE(/2))
  180. igmn = MIN(igau,VELCHE(/1))
  181. VALMAT(i) = VELCHE(igmn,ibmn)
  182. c* ELSE
  183. c* VALMAT(i)=0.
  184. c* ENDIF
  185. ENDDO
  186.  
  187. EP = VALMAT(NMATR)
  188. * L'ELEMENT (IEL) AU POINT DE GAUSS (igau) DE TYPE (NOMTP(NEF)) A
  189. * UNE EPAISSEUR NULLE
  190. IF (EP.LE.XPETIT) THEN
  191. INTERR(1) = iel
  192. INTERR(2) = igau
  193. MOTERR(1:4) = NOMTP(NEF)
  194. CALL ERREUR(355)
  195. GOTO 999
  196. ENDIF
  197. EPAI = EPAI + EP
  198. *
  199. * MATERIAU ISOTROPE
  200. *
  201. IF (IMATE.EQ.1) THEN
  202. *
  203. XK1 = VALMAT(1) * DJAC
  204. XK2 = XK1
  205. *
  206. ELSE IF (IMATE.EQ.2) THEN
  207. *
  208. COSA = VALMAT(4)
  209. IF (COSA.EQ.XZERO) THEN
  210. XK1 = VALMAT(2) * DJAC
  211. XK2 = VALMAT(1) * DJAC
  212. ELSE
  213. XK1 = VALMAT(1) * DJAC
  214. XK2 = VALMAT(2) * DJAC
  215. ENDIF
  216.  
  217. ENDIF
  218. *
  219. * ON AJOUTE LE PRODUIT XK1*DJAC*TRANSPOSEE(GRAD)*GRAD
  220. * POUR LE POINT DE GAUSS CONSIDERE A LA MATRICE CEL1
  221. *
  222. CALL NTNST(GRAD,XK1,NBNN,1,CEL1)
  223. *
  224. * ON AJOUTE LE PRODUIT XK2*DJAC*TRANSPOSEE(SHP)*SHP
  225. * POUR LE POINT DE GAUSS CONSIDERE A LA MATRICE CEL2
  226. *
  227. CALL NTNST(SHP,XK2,NBNN,1,CEL2)
  228. *
  229. 20 CONTINUE
  230. *
  231. * REMPLISSAGE DE XMATRI
  232. * EN SUPPOSANT UNE EPAISSEUR MOYENNE (CONSTANTE) !
  233. *
  234. EPAI = EPAI / NBPGAU
  235. CALL MCONDT(CEL1,CEL2,NBNN,EPAI,RE(1,1,iel))
  236.  
  237. 10 CONTINUE
  238. *
  239. 999 CONTINUE
  240. SEGSUP,MMAT1
  241. *
  242. RETURN
  243. END
  244.  
  245.  
  246.  
  247.  

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