OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
checksvolume.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
25
26!||====================================================================
27!|| checkvolume_8n ../starter/source/elements/solid/solide/checksvolume.F
28!||--- called by ------------------------------------------------------
29!|| hm_read_solid ../starter/source/elements/reader/hm_read_solid.F
30!|| s16coor3 ../starter/source/elements/thickshell/solide16/s16coor3.F
31!|| s20coor3 ../starter/source/elements/solid/solide20/s20coor3.F
32!|| sccoor3 ../starter/source/elements/thickshell/solidec/sccoor3.f
33!|| scoor3 ../starter/source/elements/solid/solide/scoor3.F
34!|| spcoor3 ../starter/source/elements/solid/sconnect/spcoor3.f
35!|| srcoor3 ../starter/source/elements/solid/solide/srcoor3.f
36!||--- uses -----------------------------------------------------
37!||====================================================================
38 FUNCTION checkvolume_8n(X,IXS)
39 use element_mod , only : nixs
40C-----------------------------------------------
41C I m p l i c i t T y p e s
42C-----------------------------------------------
43#include "implicit_f.inc"
45C-----------------------------------------------
46C D u m m y A r g u m e n t s
47C-----------------------------------------------
48 INTEGER :: ixs(nixs)
49 my_real :: x(3,*)
50C-----------------------------------------------
51C L o c a l V a r i a b l e s
52C-----------------------------------------------
54 . x1, x2, x3, x4, x5, x6, x7, x8,
55 . y1, y2, y3, y4, y5, y6, y7, y8,
56 . z1, z2, z3, z4, z5, z6, z7, z8,
57 . x17, x28, x35, x46, y17, y28, y35, y46, z17, z28, z35, z46,
58 . jac1,jac2,jac3,jac4,jac5,jac6,jac7,jac8,jac9,
59 . a17,a28,b17,b28,c17,c28,
60 . jac_59_68, jac_67_49, jac_48_57
61C=======================================================================
62 checkvolume_8n = zero
63C
64 x1=x(1,ixs(2))
65 y1=x(2,ixs(2))
66 z1=x(3,ixs(2))
67 x2=x(1,ixs(3))
68 y2=x(2,ixs(3))
69 z2=x(3,ixs(3))
70 x3=x(1,ixs(4))
71 y3=x(2,ixs(4))
72 z3=x(3,ixs(4))
73 x4=x(1,ixs(5))
74 y4=x(2,ixs(5))
75 z4=x(3,ixs(5))
76 x5=x(1,ixs(6))
77 y5=x(2,ixs(6))
78 z5=x(3,ixs(6))
79 x6=x(1,ixs(7))
80 y6=x(2,ixs(7))
81 z6=x(3,ixs(7))
82 x7=x(1,ixs(8))
83 y7=x(2,ixs(8))
84 z7=x(3,ixs(8))
85 x8=x(1,ixs(9))
86 y8=x(2,ixs(9))
87 z8=x(3,ixs(9))
88C
89 x17=x7-x1
90 x28=x8-x2
91 x35=x5-x3
92 x46=x6-x4
93 y17=y7-y1
94 y28=y8-y2
95 y35=y5-y3
96 y46=y6-y4
97 z17=z7-z1
98 z28=z8-z2
99 z35=z5-z3
100 z46=z6-z4
101C
102 jac1=x17+x28-x35-x46
103 jac2=y17+y28-y35-y46
104 jac3=z17+z28-z35-z46
105 a17=x17+x46
106 a28=x28+x35
107 b17=y17+y46
108 b28=y28+y35
109 c17=z17+z46
110 c28=z28+z35
111 jac4=a17+a28
112 jac5=b17+b28
113 jac6=c17+c28
114 jac7=a17-a28
115 jac8=b17-b28
116 jac9=c17-c28
117 jac_59_68=jac5*jac9-jac6*jac8
118 jac_67_49=jac6*jac7-jac4*jac9
119 jac_48_57=jac4*jac8-jac5*jac7
120 checkvolume_8n=one_over_64*(jac1*jac_59_68+jac2*jac_67_49+jac3*jac_48_57)
121
122 RETURN
123 END
124!||====================================================================
125!|| checkvolume_6n ../starter/source/elements/solid/solide/checksvolume.F
126!||--- called by ------------------------------------------------------
127!|| hm_read_solid ../starter/source/elements/reader/hm_read_solid.F
128!|| s6ccoor3 ../starter/source/elements/thickshell/solide6c/s6ccoor3.F
129!||--- uses -----------------------------------------------------
130!||====================================================================
131 FUNCTION checkvolume_6n(X,IXS)
132 use element_mod , only : nixs
133C-----------------------------------------------
134C I m p l i c i t T y p e s
135C-----------------------------------------------
136#include "implicit_f.inc"
138C-----------------------------------------------
139C D u m m y A r g u m e n t s
140C-----------------------------------------------
141 INTEGER :: ixs(nixs)
142 my_real :: x(3,*)
143C-----------------------------------------------
144C L o c a l V a r i a b l e s
145C-----------------------------------------------
146 my_real
147 . x1,x2,x3,x4,x5,x6,y1,y2,y3,y4,y5,y6,z1,z2,z3,z4,z5,z6,
148 . x21,x31,x41,x54,x64,y21,y31,y41,y54,y64,z21,z31,z41,z54,z64,
149 . jac1,jac2,jac3,jac4,jac5,jac6,jac7,jac8,jac9, jac_59_68,jac_67_49,jac_48_57
150C=======================================================================
151 checkvolume_6n = zero
152C
153 x1=x(1,ixs(2))
154 y1=x(2,ixs(2))
155 z1=x(3,ixs(2))
156 x2=x(1,ixs(3))
157 y2=x(2,ixs(3))
158 z2=x(3,ixs(3))
159 x3=x(1,ixs(4))
160 y3=x(2,ixs(4))
161 z3=x(3,ixs(4))
162 x4=x(1,ixs(6))
163 y4=x(2,ixs(6))
164 z4=x(3,ixs(6))
165 x5=x(1,ixs(7))
166 y5=x(2,ixs(7))
167 z5=x(3,ixs(7))
168 x6=x(1,ixs(8))
169 y6=x(2,ixs(8))
170 z6=x(3,ixs(8))
171C
172 x21=x2-x1
173 x31=x3-x1
174 x41=x4-x1
175 x54=x5-x4
176 x64=x6-x4
177 y21=y2-y1
178 y31=y3-y1
179 y41=y4-y1
180 y54=y5-y4
181 y64=y6-y4
182 z21=z2-z1
183 z31=z3-z1
184 z41=z4-z1
185 z54=z5-z4
186 z64=z6-z4
187C
188 jac1=x21+x54
189 jac2=y21+y54
190 jac3=z21+z54
191 jac4=x31+x64
192 jac5=y31+y64
193 jac6=z31+z64
194 jac7=third*(x41+x5-x2+x6-x3)
195 jac8=third*(y41+y5-y2+y6-y3)
196 jac9=third*(z41+z5-z2+z6-z3)
197C
198 jac_59_68=jac5*jac9-jac6*jac8
199 jac_67_49=jac6*jac7-jac4*jac9
200 jac_48_57=jac4*jac8-jac5*jac7
201C
202 checkvolume_6n=one_over_8*(jac1*jac_59_68+jac2*jac_67_49+jac3*jac_48_57)
203 RETURN
204 END
205!||====================================================================
206!|| checkvolume_4n ../starter/source/elements/solid/solide/checksvolume.F
207!||--- called by ------------------------------------------------------
208!|| hm_read_solid ../starter/source/elements/reader/hm_read_solid.f
209!|| s10coor3 ../starter/source/elements/solid/solide10/s10coor3.F
210!|| s10coor3_old ../starter/source/elements/solid/solide10/s10coor3.F
211!|| s4coor3 ../starter/source/elements/solid/solide4/s4coor3.F
212!|| sgsavini ../starter/source/elements/solid/solide/scoor3.F
213!|| soltosphx4 ../starter/source/elements/sph/soltosph.F
214!||--- uses -----------------------------------------------------
215!||====================================================================
216 FUNCTION checkvolume_4n(X,IXS)
217 use element_mod , only : nixs
218C-----------------------------------------------
219C I m p l i c i t T y p e s
220C-----------------------------------------------
221#include "implicit_f.inc"
223C-----------------------------------------------
224C D u m m y A r g u m e n t s
225C-----------------------------------------------
226 INTEGER :: ixs(nixs)
227 my_real :: x(3,*)
228C-----------------------------------------------
229C L o c a l V a r i a b l e s
230C-----------------------------------------------
231 my_real
232 . x1,x2,x3,x4,y1,y2,y3,y4,z1,z2,z3,z4,
233 . jac1 ,jac2 ,jac3 ,
234 . jac4 ,jac5 ,jac6 ,
235 . jac7 ,jac8 ,jac9 ,
236 . jac_59_68, jac_67_49, jac_48_57
237C=======================================================================
238 checkvolume_4n = zero
239C
240 x1=x(1,ixs(2))
241 y1=x(2,ixs(2))
242 z1=x(3,ixs(2))
243 x2=x(1,ixs(4))
244 y2=x(2,ixs(4))
245 z2=x(3,ixs(4))
246 x3=x(1,ixs(7))
247 y3=x(2,ixs(7))
248 z3=x(3,ixs(7))
249 x4=x(1,ixs(6))
250 y4=x(2,ixs(6))
251 z4=x(3,ixs(6))
252C
253 jac1=x1-x4
254 jac2=y1-y4
255 jac3=z1-z4
256C
257 jac4=x2-x4
258 jac5=y2-y4
259 jac6=z2-z4
260C
261 jac7=x3-x4
262 jac8=y3-y4
263 jac9=z3-z4
264C
265 jac_59_68=jac5*jac9-jac6*jac8
266 jac_67_49=jac6*jac7-jac4*jac9
267 jac_48_57=jac4*jac8-jac5*jac7
268C
269 checkvolume_4n=(jac1*jac_59_68+jac2*jac_67_49+jac3*jac_48_57)*one_over_6
270C
271 RETURN
272 END
function checkvolume_6n(x, ixs)
function checkvolume_8n(x, ixs)
function checkvolume_4n(x, ixs)
#define my_real
Definition cppsort.cpp:32
subroutine hm_read_solid(ixs, pm, itab, itabm1, ipart, iparts, isolnod, ixs10, ixs20, ixs16, igeo, lsubmodel, is_dyna, x)
subroutine sccoor3(x, ixs, geo, mxt, ngeo, ngl, ix1, ix2, ix3, ix4, ix5, ix6, ix7, ix8, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, rx, ry, rz, sx, sy, sz, tx, ty, tz, r11, r21, r31, r12, r22, r32, r13, r23, r33, f1x, f1y, f1z, f2x, f2y, f2z, temp0, temp, nintemp)
Definition sccoor3.F:43
subroutine spcoor3(x, ixs, geo, nel, mxt, pid, ngl, ix1, ix2, ix3, ix4, ix5, ix6, ix7, ix8, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z, volu, thick)
Definition spcoor3.F:41
subroutine srcoor3(x, xrefs, ixs, geo, mxt, ngeo, ngl, jhbe, ix1, ix2, ix3, ix4, ix5, ix6, ix7, ix8, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, rx, ry, rz, sx, sy, sz, tx, ty, tz, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z, f1x, f1y, f1z, f2x, f2y, f2z, temp0, temp, nintemp, xd1, xd2, xd3, xd4, xd5, xd6, xd7, xd8, yd1, yd2, yd3, yd4, yd5, yd6, yd7, yd8, zd1, zd2, zd3, zd4, zd5, zd6, zd7, zd8)
Definition srcoor3.F:52
program starter
Definition starter.F:39