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