Télécharger caljtr.eso

Retour à la liste

Numérotation des lignes :

caljtr
  1. C CALJTR SOURCE CB215821 26/08/24 21:15:24 12622
  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 1004 L=1,NPG
  90. DO 1003 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. 1003 CONTINUE
  101. 1004 CONTINUE
  102. ENDIF
  103. C
  104. IF(ND.EQ.1)THEN
  105.  
  106. DO 31 L=1,NPG
  107. VINT=AJ(1,1,L)
  108. AJ(1,1,L)=1.D0/VINT
  109. 31 CONTINUE
  110.  
  111. ELSEIF(ND.EQ.2)THEN
  112.  
  113. DO 32 L=1,NPG
  114. VINT=AJ(1,1,L)*AJ(2,2,L)-AJ(1,2,L)*AJ(2,1,L)
  115. RVINT=1.D0/VINT
  116. D11=AJ(2,2,L)
  117. D12=AJ(1,2,L)
  118. D21=AJ(2,1,L)
  119. D22=AJ(1,1,L)
  120. AJ(1,1,L)= RVINT*D11
  121. AJ(1,2,L)=-RVINT*D12
  122. AJ(2,1,L)=-RVINT*D21
  123. AJ(2,2,L)= RVINT*D22
  124. 32 CONTINUE
  125.  
  126. ELSEIF(ND.EQ.3)THEN
  127.  
  128. DO 33 L=1,NPG
  129. D11=AJ(2,2,L)*AJ(3,3,L)-AJ(3,2,L)*AJ(2,3,L)
  130. D12=AJ(1,2,L)*AJ(3,3,L)-AJ(3,2,L)*AJ(1,3,L)
  131. D13=AJ(1,2,L)*AJ(2,3,L)-AJ(2,2,L)*AJ(1,3,L)
  132. D21=AJ(2,1,L)*AJ(3,3,L)-AJ(3,1,L)*AJ(2,3,L)
  133. D22=AJ(1,1,L)*AJ(3,3,L)-AJ(3,1,L)*AJ(1,3,L)
  134. D23=AJ(1,1,L)*AJ(2,3,L)-AJ(2,1,L)*AJ(1,3,L)
  135. D31=AJ(2,1,L)*AJ(3,2,L)-AJ(3,1,L)*AJ(2,2,L)
  136. D32=AJ(1,1,L)*AJ(3,2,L)-AJ(3,1,L)*AJ(1,2,L)
  137. D33=AJ(1,1,L)*AJ(2,2,L)-AJ(2,1,L)*AJ(1,2,L)
  138. VINT=AJ(1,1,L)*D11-AJ(1,2,L)*D21+AJ(1,3,L)*D31
  139. RVINT=1.D0/VINT
  140. AJ(1,1,L)= RVINT*D11
  141. AJ(1,2,L)=-RVINT*D12
  142. AJ(1,3,L)= RVINT*D13
  143. AJ(2,1,L)=-RVINT*D21
  144. AJ(2,2,L)= RVINT*D22
  145. AJ(2,3,L)=-RVINT*D23
  146. AJ(3,1,L)= RVINT*D31
  147. AJ(3,2,L)=-RVINT*D32
  148. AJ(3,3,L)= RVINT*D33
  149. 33 CONTINUE
  150.  
  151. ENDIF
  152. C
  153. RETURN
  154. 1002 FORMAT(10(1X,1PE11.4))
  155. 1001 FORMAT(20(1X,I5))
  156. END
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  

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