Télécharger caljtr.eso

Retour à la liste

Numérotation des lignes :

  1. C CALJTR SOURCE CHAT 05/01/12 21:46:59 5004
  2. SUBROUTINE CALJTR(GR,XYZ,NES,ND,NP,NPG,AJ)
  3. C************************************************************************
  4. C
  5. C CALCUL DE L'INVERSE DU JACOBIEN TRANSPOSE QUI SERVIRA A CALCULER
  6. C t -1
  7. C û = (J ) u
  8. C
  9. C CE SP TRAITE LES ELEMENTS VOLUMIQUES, SURFACIQUES et FILAIRES
  10. C DANS LES CAS 2D ET 3D
  11. C
  12. C CALCUL TANGENTES ET NORMALES POUR LES ELEMENTS SURFACIQUES et
  13. C FILAIRES : AJ=|tx ty| |tx ty tz|
  14. C |nx ny| ou |ux uy uz|
  15. C |nx ny nz|
  16. C
  17. C
  18. C ND DIMENSION ESPACE
  19. C NES DIMENSION ESPACE ELEMENT DE REFERENCE
  20. C NP NOMBRE DE NOEUDS DE L'ELEMENT
  21. C NPG NOMBRE DE POINTS D'INTEGRATION
  22. C
  23. C XYZ COORDONNEES
  24. C GR GRADIENT DANS L'ELEMENT DE REFERENCE
  25. C
  26. C************************************************************************
  27. IMPLICIT INTEGER(I-N)
  28. IMPLICIT REAL*8 (A-H,O-Z)
  29. C
  30. REAL*8 GR(NES,NP,NPG),XYZ(ND,NP),AJ(ND,ND,NPG)
  31. C
  32. C
  33. C
  34. C write(6,*)' Debut CALJTR nes,nd,np,npg=',nes,nd,np,npg
  35. IF(NES.EQ.1.AND.ND.EQ.2)THEN
  36. C
  37. DO 110 L=1,NPG
  38. AJX=0.D0
  39. AJY=0.D0
  40. DO 111 I=1,NP
  41. AJX=AJX+GR(1,I,L)*XYZ(1,I)
  42. AJY=AJY+GR(1,I,L)*XYZ(2,I)
  43. 111 CONTINUE
  44. AJN=(AJX*AJX+AJY*AJY)**0.5D0
  45. AJ(1,1,L)=AJX/AJN
  46. AJ(2,1,L)=AJY/AJN
  47. AJ(1,2,L)=-AJY/AJN
  48. AJ(2,2,L)=AJX/AJN
  49. 110 CONTINUE
  50. C
  51. ELSEIF(NES.EQ.2.AND.ND.EQ.3)THEN
  52.  
  53. AIRE=0.D0
  54. DO 210 L=1,NPG
  55. AJX=0.D0
  56. AJY=0.D0
  57. AJZ=0.D0
  58. BJX=0.D0
  59. BJY=0.D0
  60. BJZ=0.D0
  61. DO 211 I=1,NP
  62. AJX=AJX+GR(1,I,L)*XYZ(1,I)
  63. AJY=AJY+GR(1,I,L)*XYZ(2,I)
  64. AJZ=AJZ+GR(1,I,L)*XYZ(3,I)
  65. BJX=BJX+GR(2,I,L)*XYZ(1,I)
  66. BJY=BJY+GR(2,I,L)*XYZ(2,I)
  67. BJZ=BJZ+GR(2,I,L)*XYZ(3,I)
  68. 211 CONTINUE
  69.  
  70. XB=AJY*BJZ-AJZ*BJY
  71. YB=AJZ*BJX-AJX*BJZ
  72. ZB=AJX*BJY-AJY*BJX
  73.  
  74. AJN=(XB*XB+YB*YB+ZB*ZB)**0.5D0
  75.  
  76. AJ(1,1,L)=AJX/AJN
  77. AJ(2,1,L)=AJY/AJN
  78. AJ(3,1,L)=AJZ/AJN
  79. AJ(1,2,L)=BJX/AJN
  80. AJ(2,2,L)=BJY/AJN
  81. AJ(3,2,L)=BJZ/AJN
  82. AJ(1,3,L)=XB/AJN
  83. AJ(2,3,L)=YB/AJN
  84. AJ(3,3,L)=ZB/AJN
  85. 210 CONTINUE
  86. C
  87. ELSE
  88. C
  89. DO 10 L=1,NPG
  90. DO 10 M=1,ND
  91. DO 10 N=1,ND
  92. AJT=0.D0
  93. DO 11 I=1,NP
  94. AJT=AJT+GR(M,I,L)*XYZ(N,I)
  95. 11 CONTINUE
  96. C AJ(N,M,L)=AJT
  97. C Jacobien Transposé
  98. AJ(M,N,L)=AJT
  99. 10 CONTINUE
  100. ENDIF
  101. C
  102. IF(ND.EQ.1)THEN
  103.  
  104. DO 31 L=1,NPG
  105. VINT=AJ(1,1,L)
  106. AJ(1,1,L)=1.D0/VINT
  107. 31 CONTINUE
  108.  
  109. ELSEIF(ND.EQ.2)THEN
  110.  
  111. DO 32 L=1,NPG
  112. VINT=AJ(1,1,L)*AJ(2,2,L)-AJ(1,2,L)*AJ(2,1,L)
  113. RVINT=1.D0/VINT
  114. D11=AJ(2,2,L)
  115. D12=AJ(1,2,L)
  116. D21=AJ(2,1,L)
  117. D22=AJ(1,1,L)
  118. AJ(1,1,L)= RVINT*D11
  119. AJ(1,2,L)=-RVINT*D12
  120. AJ(2,1,L)=-RVINT*D21
  121. AJ(2,2,L)= RVINT*D22
  122. 32 CONTINUE
  123.  
  124. ELSEIF(ND.EQ.3)THEN
  125.  
  126. DO 33 L=1,NPG
  127. D11=AJ(2,2,L)*AJ(3,3,L)-AJ(3,2,L)*AJ(2,3,L)
  128. D12=AJ(1,2,L)*AJ(3,3,L)-AJ(3,2,L)*AJ(1,3,L)
  129. D13=AJ(1,2,L)*AJ(2,3,L)-AJ(2,2,L)*AJ(1,3,L)
  130. D21=AJ(2,1,L)*AJ(3,3,L)-AJ(3,1,L)*AJ(2,3,L)
  131. D22=AJ(1,1,L)*AJ(3,3,L)-AJ(3,1,L)*AJ(1,3,L)
  132. D23=AJ(1,1,L)*AJ(2,3,L)-AJ(2,1,L)*AJ(1,3,L)
  133. D31=AJ(2,1,L)*AJ(3,2,L)-AJ(3,1,L)*AJ(2,2,L)
  134. D32=AJ(1,1,L)*AJ(3,2,L)-AJ(3,1,L)*AJ(1,2,L)
  135. D33=AJ(1,1,L)*AJ(2,2,L)-AJ(2,1,L)*AJ(1,2,L)
  136. VINT=AJ(1,1,L)*D11-AJ(1,2,L)*D21+AJ(1,3,L)*D31
  137. RVINT=1.D0/VINT
  138. AJ(1,1,L)= RVINT*D11
  139. AJ(1,2,L)=-RVINT*D12
  140. AJ(1,3,L)= RVINT*D13
  141. AJ(2,1,L)=-RVINT*D21
  142. AJ(2,2,L)= RVINT*D22
  143. AJ(2,3,L)=-RVINT*D23
  144. AJ(3,1,L)= RVINT*D31
  145. AJ(3,2,L)=-RVINT*D32
  146. AJ(3,3,L)= RVINT*D33
  147. 33 CONTINUE
  148.  
  149. ENDIF
  150. C
  151. RETURN
  152. 1002 FORMAT(10(1X,1PE11.4))
  153. 1001 FORMAT(20(1X,I5))
  154. END
  155.  
  156.  
  157.  
  158.  
  159.  

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