OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
subvolumes.inc
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/.
23C.../SUBVOLUMES/
24
25 COMMON/SUBVOLUMES/
26 . bGnode,
27 . Gnode,
28 . Gcorner,
29 . Gface,
30 . GNPt,
31 . GNNod,
32 . bCODE ,
33 . S_TETRA, S_PENTA, S_POLY3, S_HEXAE, S_POLY4, S_POLY4A, S_POLY4B, S_POLYH, S_POLYC,
34 . D_TETRA, D_PENTA, D_POLY3, D_HEXAE, D_POLY4, D_POLY4A, D_POLY4B, D_POLYH, D_POLYC,
35 . M_TETRA, M_PENTA, M_POLY3, M_HEXAE, M_POLY4, M_POLY4A, M_POLY4B, M_POLYH, M_POLYC,
36 . N_TETRA, N_PENTA, N_POLY3, N_HEXAE, N_POLY4, N_POLY4A, N_POLY4B, N_POLYH, N_POLYC,
37 . F_TETRA, F_PENTA, F_POLY3, F_HEXAE, F_POLY4, F_POLY4A, F_POLY4B, F_POLYH, F_POLYC,
38 . C_TETRA, C_PENTA, C_POLY3, C_HEXAE, C_POLY4, C_POLY4A, C_POLY4B, C_POLYH, C_POLYC,
39 . S22_MAX, LSECTYP,
40 . StrCODE, GetPolyhedraType, GetNumTria, Gtria
41
42C=====================================================================
43C Nu, Nv, Nw, Nx : GRAPH corner (Brick node)
44C Ci, Cj, Ck, Cl, Cm, Cn : GRAPH corner (Edge intersection point)
45C Fa, Fb, Fc, Fd, Fe, Ff : face number (usual ALE face numbering)
46C=====================================================================
47C
48C +----+ +----+
49C | Ci | - - - | Cj |
50C +----+ Fa +----+
51C \ /
52C \ Fc +----+ Fb /
53C | Nu | TETRA GRAPH
54C \ +----+ / * number of binary codes : S_TETRA ( 8)
55C | * Number of graph for each subvolume : M_TETRA ( 1)
56C \ | / * Number of brick nodes (Nu) : F_TETRA ( 3)
57C +----+ * Number of corner from edge (Ci,j,k): C_TETRA ( 3)
58C | Ck |
59C +----+
60C
61C=====================================================================
62C
63C +----+ +----+
64C | Ci | - - - | Cj |
65C +----+ Fa +----+
66C \ / |
67C | +----+
68C | Nu | |
69C | +----+
70C | | PENTA GRAPH
71C | Fd | Fc * number of binary codes : S_PENTA (12)
72C +----+ | * Number of graph for each subvolume : M_PENTA ( 1)
73C | | Nv | * Number of brick nodes (Nu) : F_PENTA ( 4)
74C +----+ | * Number of corner from edge (Ci,j,k): C_PENTA ( 4)
75C | / \
76C +----+ Fb +----+
77C | Cl | - - - | Ck |
78C +----+ +----+
79C
80C=====================================================================
81C
82C +----+ +----+
83C | Ci | - - - -| Cj |
84C +----+ Fe +----+ \
85C \ / \
86C | +----+ \
87C | Nu | +----+
88C | +----+ Fa | Cj |
89C Fd | +----+ POLYG3 GRAPH
90C | | / | * number of binary codes : S_POLY3 (18)
91C +----+ +----+ * Number of graph for each subvolume : M_POLY3 ( 1)
92C | | Nx | - -| Nw | Fb | * Number of brick nodes (Nu) : F_POLY3 ( 5)
93C +----+ +----+ * Number of corner from edge (Ci,j,k): C_POLY3 ( 5)
94C | / Fc \ |
95C +----+ +----+
96C | Cl | - - - - - - - - | Ck |
97C +----+ +----+
98c
99C=====================================================================
100C
101C +----+ +----+
102C | Ci | - - - - - - - - | Cj |
103C +----+ +----+
104C \ Fb / |
105C | +----+ +----+
106C | Nu |- - | Nv | |
107C | +----+ +----+
108C Fe | Fa | Fc | HEXA GRAPH
109C | | | * number of binary codes : S_HEXAE ( 3)
110C +----+ +----+ | * Number of graph for each subvolume : M_HEXAE ( 2)
111C | | Nx | - -| Nw | * Number of brick nodes (Nu) : F_HEXAE ( 5)
112C +----+ +----+ | * Number of corner from edge (Ci,j,k): C_HEXAE ( 4)
113C | / Fd \
114C +----+ +----+
115C | Cl | - - - - - - - - | Ck |
116C +----+ +----+
117C
118C=====================================================================
119C
120C +----+ +----+
121C | Ci | - - - | Cj |
122C +----+ Fa +----+
123C / \ / \
124C / +----+ \
125C | Nu |
126C / +----+ \
127C Fc | Fd POLYG4 GRAPH
128C / | \ * number of binary codes : S_POLY4 ( 4)
129C +----+ +----+ +----+ * Number of graph for each subvolume : M_POLY4 ( 2)
130C | Cn | | Nv | | Ck | * Number of brick nodes (Nu) : F_POLY4 ( 6)
131C +----+ +----+ +----+ * Number of corner from edge (Ci,j,k): C_POLY4 ( 6)
132C \ / \ /
133C | +----+ +----+ |
134C Fe | Nx | | Nw | Ff
135C | +----+ +----+ |
136C / Fb \
137C +----+ +----+
138C | Cm | - - - - - - - - - - | Cl |
139C +----+ +----+
140C
141C=====================================================================
142C
143C +----+--------------------+----+
144C | C1 | | C2 | \
145C +----+ +----+ \
146C | \+----+ +----+/ \
147C | | Nu | ---- | Nv | \
148C | +----+ +----+ +----+ POLYG4A GRAPH
149C | / | | C3 | * number of binary codes : S_POLY4A ( 4)
150C +----+ | +----+ * Number of graph for each subvolume : M_POLY4A ( 2)
151C | C6 | | / | * Number of brick nodes (Nu) : F_POLY4A ( 6)
152C +----+ +----+ +----+ | * Number of corner from edge (Ci,j,k): C_POLY4A ( 6)
153C \ | Nw | ---- | Nx | |
154C \ +----+ +----+ |
155C \ / \ |
156C \ +----+ +----+
157C \ | C5 |--------------------| C4 |
158C +----+ +----+
159C
160C=====================================================================
161C
162C
163C +----+ +----+
164C /| C1 |--------------------| C2 |
165C / +----+ +----+
166C / \ |
167C / +----+ +----+ |
168C +----+ | Nw | ---- | Nx | |
169C | C5 | +----+ +----+ |
170C +----+ | \+----+
171C | \+----+ +----+ | C3 |
172C | | Nu | ---| Nv | +----+
173C | +----+ +----+ / POLYG4B GRAPH
174C | / \ / * number of binary codes : S_POLY4B ( 4)
175C +----+ +----+ / * Number of graph for each subvolume : M_POLY4B ( 2)
176C | C6 |------------------| C3 | / * Number of brick nodes (Nu) : F_POLY4B ( 6)
177C +----+ +----+ * Number of corner from edge (Ci,j,k): C_POLY4B ( 6)
178C
179C=====================================================================
180C
181C +----+ +----+
182C | Ci | - - - - - - - - - - - - - | Cj |
183C +----+ +----+
184C | \ /
185C \ Fb / |
186C | +----+ +----+
187C | Nu |- - - - - -| Nv | |
188C | +----+ +----+
189C Fe | \ Fa / | Fc | POLYC GRAPH (continuity)
190C | | \ / | * number of binary codes : S_POLYC ( 8)
191C +----+ \ / +----+ | * Number of graph for each subvolume : M_POLYC ( 1)
192C | | Nx |- -| - | - -| Nw | * Number of brick nodes (Nu) : F_POLYC ( 4)
193C +----+ | | +----+ | * Number of corner from edge (Ci,j,k): C_POLYC ( 6)
194C | / | | Fd| | \
195C / Ff | | | | Ff \ |
196C +----+ +----+ +----+ +----+
197C | Cl | - - -| Cm | - | Cn |- - - | Ck |
198C +----+ +----+ +----+ +----+
199C
200C=====================================================================
201C=====================================================================
202C variables are initialized in /src/int22/i22datainit.F
203C=====================================================================
204
205 !----------------------------------------------------!
206 !Dimensions des tableaux !
207 !----------------------------------------------------!
208 !Combinaison number (binary codes)
209 INTEGER :: S_TETRA
210 INTEGER :: S_PENTA
211 INTEGER :: S_POLY3
212 INTEGER :: S_HEXAE
213 INTEGER :: S_POLY4
214 INTEGER :: S_POLY4A
215 INTEGER :: S_POLY4B
216 INTEGER :: S_POLYC
217 INTEGER :: S_POLYH(8)
218 !sum
219 INTEGER :: S22_MAX
220 !Multiplicity
221 INTEGER :: M_TETRA
222 INTEGER :: M_PENTA
223 INTEGER :: M_POLY3
224 INTEGER :: M_HEXAE
225 INTEGER :: M_POLY4
226 INTEGER :: M_POLY4A
227 INTEGER :: M_POLY4B
228 INTEGER :: M_POLYC
229 INTEGER :: M_POLYH(8)
230 !Number of Corner from brick node
231 INTEGER :: N_TETRA
232 INTEGER :: N_PENTA
233 INTEGER :: N_POLY3
234 INTEGER :: N_HEXAE
235 INTEGER :: N_POLY4
236 INTEGER :: N_POLY4A
237 INTEGER :: N_POLY4B
238 INTEGER :: N_POLYC
239 INTEGER :: N_POLYH(8)
240 !Number of faces
241 INTEGER :: F_TETRA
242 INTEGER :: F_PENTA
243 INTEGER :: F_POLY3
244 INTEGER :: F_HEXAE
245 INTEGER :: F_POLY4
246 INTEGER :: F_POLY4A
247 INTEGER :: F_POLY4B
248 INTEGER :: F_POLYC
249 INTEGER :: F_POLYH(8)
250 !Number of Corner from edge intersection node
251 INTEGER :: C_TETRA
252 INTEGER :: C_PENTA
253 INTEGER :: C_POLY3
254 INTEGER :: C_HEXAE
255 INTEGER :: C_POLY4
256 INTEGER :: C_POLY4A
257 INTEGER :: C_POLY4B
258 INTEGER :: C_POLYC
259 INTEGER :: C_POLYH(8)
260 !First index in global array of subvolumes (1:106)
261 INTEGER :: D_TETRA
262 INTEGER :: D_PENTA
263 INTEGER :: D_POLY3
264 INTEGER :: D_HEXAE
265 INTEGER :: D_POLY4
266 INTEGER :: D_POLY4A
267 INTEGER :: D_POLY4B
268 INTEGER :: D_POLYC
269 INTEGER :: D_POLYH(8)
270 !----------------------------------------------------!
271 !Tableaux contenant l'ensemble des codes binaires !
272 ! index1:combination number !
273 !----------------------------------------------------!
274 INTEGER,TARGET :: bCODE(106)
275
276 !----------------------------------------------------!
277 !Denomination pour les Identification dintersection !
278 ! index1:combination number !
279 !----------------------------------------------------!
280 INTEGER LSECTYP
281 CHARACTER*14,TARGET :: strCODE(106)
282
283 !----------------------------------------------------!
284 !SUBVOLUME 'G'RAPH : 'F'ACES !
285 ! index1:face !
286 ! index2:combination number !
287 !----------------------------------------------------!
288 INTEGER,TARGET :: Gface(6,106)
289
290 !----------------------------------------------------!
291 !SUBVOLUME 'G'RAPH : 'N'umbert of 'P'oin't' !
292 ! index1:local polyhedron face !
293 !----------------------------------------------------!
294 INTEGER,TARGET :: GNPt(6,106)
295
296 !----------------------------------------------------!
297 !SUBVOLUME 'G'RAPH : 'N'umbert of 'Nod'e !
298 ! index1:local polyhedron face !
299 !----------------------------------------------------!
300 INTEGER,TARGET :: GNnod(6,106)
301
302 !----------------------------------------------------!
303 !SUBVOLUME 'G'RAPH : 'C'ORNER !
304 ! index1:edge (corner=intersection_node) !
305 ! index2:combination number !
306 !----------------------------------------------------!
307 INTEGER,TARGET :: Gcorner(7,106)
308
309 !----------------------------------------------------!
310 !SUBVOLUME 'G'RAPH : brick 'N'ODES !
311 ! index1:master node(on brick) !
312 ! index2:combination number !
313 !----------------------------------------------------!
314 INTEGER,TARGET :: Gnode(4,106)
315 INTEGER,TARGET :: bGnode(106)
316
317 !----------------------------------------------------!
318 ! TAG bits(from 1 to 106)for each of 106 combinations!
319 ! which is using node (1-8) sent as index !
320 ! (KIND=14 = 112bits >= 106) !
321 !----------------------------------------------------!
322c INTEGER(KIND=14),TARGET :: b22CombiNode(8)
323
324 !----------------------------------------------------!
325 ! TAG bits(from 1 to 106)for each of 106 combinations!
326 ! which is using edge (1-12) sent as index !
327 ! (KIND=14 = 112bits >= 106) !
328 !----------------------------------------------------!
329c INTEGER(KIND=14),TARGET :: b22CombiEdge(12)
330
331 !----------------------------------------------------!
332 ! function which from a combination code associates !
333 ! a combination type : !
334 ! tetra:1,penta:2,poly3:3,hexa:4,poly4:5,etc... !
335 ! GetPolyhedraType : [1,106] -> [1,8] !
336 !----------------------------------------------------!
337 INTEGER,TARGET :: GetPolyhedraType(106)
338
339 !----------------------------------------------------!
340 ! function which from a combination type (1-5) !
341 ! provides the number of tria needed to darw the !
342 ! isosurface !
343 ! a combination type : !
344 ! tetra:1,penta:2,poly3:3,hexa:4,poly4:5 !
345 ! GetNumTria : [1,5] -> [1,4] !
346 !----------------------------------------------------!
347 INTEGER,TARGET :: GetNumTria(8)
348
349 !----------------------------------------------------!
350 !SUBVOLUME 'G'RAPH : 'tria' intersection surface !
351 ! index1:edge local id i,j,k,l,m,n !
352 ! index2:triangle id (ex 2 to draw a quad) !
353 ! index3:combination type
354 !----------------------------------------------------!
355 INTEGER,TARGET :: Gtria(3,4,8)
356
#define INTEGER
Definition Bdef.h:94
end diagonal values have been computed in the(sparse) matrix id.SOL
function[id]
Definition dmumps.m:1
#define F
Definition eval.h:12
subroutine i22datainit()
Definition i22datainit.F:33
for(i8=*sizetab-1;i8 >=0;i8--)
n
vector< STUPL > surface