Télécharger tcoq2c.eso

Retour à la liste

Numérotation des lignes :

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

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