OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
inte_tg.F
Go to the documentation of this file.
1Copyright> OpenRadioss
2Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3Copyright>
4Copyright> This program is free software: you can redistribute it and/or modify
5Copyright> it under the terms of the GNU Affero General Public License as published by
6Copyright> the Free Software Foundation, either version 3 of the License, or
7Copyright> (at your option) any later version.
8Copyright>
9Copyright> This program is distributed in the hope that it will be useful,
10Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12Copyright> GNU Affero General Public License for more details.
13Copyright>
14Copyright> You should have received a copy of the GNU Affero General Public License
15Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16Copyright>
17Copyright>
18Copyright> Commercial Alternative: Altair Radioss Software
19Copyright>
20Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21Copyright> software under a commercial license. Contact Altair to discuss further if the
22Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23!||====================================================================
24!|| inthtg ../starter/source/fluid/inte_tg.F
25!||--- called by ------------------------------------------------------
26!|| mass_fluid_qd ../starter/source/fluid/mass-fluid_qd.F
27!|| mass_fluid_tg ../starter/source/fluid/mass-fluid_tg.F
28!||====================================================================
29 SUBROUTINE inthtg(X1 , Y1, Z1, X2, Y2, Z2,
30 . X3, Y3, Z3, XP, YP, ZP,
31 . NRX,NRY, NRZ, D2, JAC,
32 . XS, YS, ZS, RVAL )
33C-----------------------------------------------
34C I m p l i c i t T y p e s
35C-----------------------------------------------
36#include "implicit_f.inc"
37C-----------------------------------------------
38C D u m m y A r g u m e n t s
39C-----------------------------------------------
41 . x1, y1, z1, x2, y2, z2, x3, y3, z3,
42 . xp, yp, zp, d2, jac, nrx, nry, nrz,
43 . xs, ys, zs, rval
44C-----------------------------------------------
45C L o c a l V a r i a b l e s
46C-----------------------------------------------
47 INTEGER NPG, IAD, IAD2, IP, IHG
48 my_real
49 . PG(50), WPG(25), R2,
50 . val1, val2, val3, w, xg, yg, zg, valphi,
51 . eta1, eta2
52C
53 DATA pg /.33333333,.33333333,
54 . .33333333,.33333333,
55 . .60000000,.20000000,
56 . .20000000,.60000000,
57 . .20000000,.20000000,
58 . .33333333,.33333333,
59 . .79742699,.10128651,
60 . .10128651,.79742699,
61 . .10128651,.10128651,
62 . .05971587,.47014206,
63 . .47014206,.05971587,
64 . .47014206,.47014206,
65 . .06513010,.06513010,
66 . .86973979,.06513010,
67 . .06513010,.86973979,
68 . .31286550,.04869031,
69 . .63844419,.31286550,
70 . .04869031,.63844419,
71 . .63844419,.04869031,
72 . .31286550,.63844419,
73 . .04869031,.31286550,
74 . .26034597,.26034597,
75 . .47930807,.26034597,
76 . .26034597,.47930807,
77 . .33333333,.33333333/
78 DATA wpg /1.00000000,
79 . -.56250000,.52083333,
80 . .52083333,.52083333,
81 . .22500000,.12593918,
82 . .12593918,.12593918,
83 . .13239415,.13239415,
84 . .13239415,
85 . .05334724,.05334724,
86 . .05334724,.07711376,
87 . .07711376,.07711376,
88 . .07711376,.07711376,
89 . .07711376,.17561526,
90 . .17561526,.17561526,
91 . -.14957004/
92C
93C DISTANCE A LA SOURCE
94 r2=(xp-xs)**2+(yp-ys)**2+(zp-zs)**2
95C NOMBRE DE POINTS DE GAUSS
96 IF (r2>hundred*d2) THEN
97 npg=1
98 iad=1
99 ELSEIF (r2>twenty5*d2) THEN
100 npg=4
101 iad=2
102 ELSEIF (r2>four*d2) THEN
103 npg=7
104 iad=6
105 ELSE
106 npg=13
107 iad=13
108 ENDIF
109C INTEGRATION
110 rval=zero
111 iad2=2*(iad-1)+1
112 DO ip=1,npg
113 w=wpg(iad)
114 eta1=pg(iad2)
115 eta2=pg(iad2+1)
116 iad=iad+1
117 iad2=iad2+2
118 val1=one-eta1-eta2
119 val2=eta1
120 val3=eta2
121 xg=val1*x1+val2*x2+val3*x3
122 yg=val1*y1+val2*y2+val3*y3
123 zg=val1*z1+val2*z2+val3*z3
124 r2=(xg-xp)**2+(yg-yp)**2+(zg-zp)**2
125 IF(r2>em20)THEN
126 valphi=-(nrx*(xg-xp)+nry*(yg-yp)+nrz*(zg-zp))/(r2**three_half)
127 rval = rval + w*valphi*jac
128 ENDIF
129 ENDDO
130C
131 RETURN
132 END
133C
134C
135!||====================================================================
136!|| intgtg ../starter/source/fluid/inte_tg.F
137!||--- called by ------------------------------------------------------
138!|| mass_fluid_qd ../starter/source/fluid/mass-fluid_qd.F
139!|| mass_fluid_tg ../starter/source/fluid/mass-fluid_tg.F
140!||====================================================================
141 SUBROUTINE intgtg(X1 , Y1, Z1, X2, Y2, Z2,
142 . X3, Y3, Z3, XP, YP, ZP,
143 . D2, JAC,
144 . XS, YS, ZS, RVAL )
145C-----------------------------------------------
146C I m p l i c i t T y p e s
147C-----------------------------------------------
148#include "implicit_f.inc"
149C-----------------------------------------------
150C D u m m y A r g u m e n t s
151C-----------------------------------------------
152 my_real
153 . x1, y1, z1, x2, y2, z2, x3, y3, z3,
154 . xp, yp, zp, d2, jac,
155 . xs, ys, zs, rval
156C-----------------------------------------------
157C L o c a l V a r i a b l e s
158C-----------------------------------------------
159 INTEGER NPG, IAD, IAD2, IP, IHG
160 my_real
161 . PG(50), WPG(25), R2,
162 . VAL1, VAL2, VAL3, W, XG, YG, ZG, VALPHI,
163 . ETA1, ETA2
164C
165 DATA pg /.33333333,.33333333,
166 . .33333333,.33333333,
167 . .60000000,.20000000,
168 . .20000000,.60000000,
169 . .20000000,.20000000,
170 . .33333333,.33333333,
171 . .79742699,.10128651,
172 . .10128651,.79742699,
173 . .10128651,.10128651,
174 . .05971587,.47014206,
175 . .47014206,.05971587,
176 . .47014206,.47014206,
177 . .06513010,.06513010,
178 . .86973979,.06513010,
179 . .06513010,.86973979,
180 . .31286550,.04869031,
181 . .63844419,.31286550,
182 . .04869031,.63844419,
183 . .63844419,.04869031,
184 . .31286550,.63844419,
185 . .04869031,.31286550,
186 . .26034597,.26034597,
187 . .47930807,.26034597,
188 . .26034597,.47930807,
189 . .33333333,.33333333/
190 DATA wpg /1.00000000,
191 . -.56250000,.52083333,
192 . .52083333,.52083333,
193 . .22500000,.12593918,
194 . .12593918,.12593918,
195 . .13239415,.13239415,
196 . .13239415,
197 . .05334724,.05334724,
198 . .05334724,.07711376,
199 . .07711376,.07711376,
200 . .07711376,.07711376,
201 . .07711376,.17561526,
202 . .17561526,.17561526,
203 . -.14957004/
204C
205C DISTANCE A LA SOURCE
206 r2=(xp-xs)**2+(yp-ys)**2+(zp-zs)**2
207C NOMBRE DE POINTS DE GAUSS
208 IF (r2>hundred*d2) THEN
209 npg=1
210 iad=1
211 ELSEIF (r2>twenty5*d2) THEN
212 npg=4
213 iad=2
214 ELSEIF (r2>four*d2) THEN
215 npg=7
216 iad=6
217 ELSE
218 npg=13
219 iad=13
220 ENDIF
221C INTEGRATION
222 rval=zero
223 iad2=2*(iad-1)+1
224 DO ip=1,npg
225 w=wpg(iad)
226 eta1=pg(iad2)
227 eta2=pg(iad2+1)
228 iad=iad+1
229 iad2=iad2+2
230 val1=one-eta1-eta2
231 val2=eta1
232 val3=eta2
233 xg=val1*x1+val2*x2+val3*x3
234 yg=val1*y1+val2*y2+val3*y3
235 zg=val1*z1+val2*z2+val3*z3
236 r2=(xg-xp)**2+(yg-yp)**2+(zg-zp)**2
237 IF(r2>em20)THEN
238 valphi= one/sqrt(r2)
239 rval = rval + w*valphi*jac
240 ENDIF
241 ENDDO
242C
243 RETURN
244 END
245
#define my_real
Definition cppsort.cpp:32
subroutine intgtg(x1, y1, z1, x2, y2, z2, x3, y3, z3, xp, yp, zp, d2, jac, xs, ys, zs, rval)
Definition inte_tg.F:145
subroutine inthtg(x1, y1, z1, x2, y2, z2, x3, y3, z3, xp, yp, zp, nrx, nry, nrz, d2, jac, xs, ys, zs, rval)
Definition inte_tg.F:33