OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
centroid.F File Reference
#include "implicit_f.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine centroid3 (nel, length, nft, ixs, xgrid, elem_centroid, face_centroid)
subroutine centroid3t (nel, length, nft, ixs, xgrid, elem_centroid, face_centroid)
subroutine centroid2 (nel, length, nft, ixq, xgrid, elem_centroid, face_centroid)
subroutine centroid2t (nel, length, nft, ixtg, xgrid, elem_centroid, face_centroid)

Function/Subroutine Documentation

◆ centroid2()

subroutine centroid2 ( integer, intent(in) nel,
integer, intent(in) length,
integer, intent(in) nft,
integer, dimension(nixq, *), intent(in) ixq,
dimension(3, *), intent(in) xgrid,
dimension(3, nel), intent(out) elem_centroid,
dimension(3, 6, nel), intent(out) face_centroid )

Definition at line 195 of file centroid.F.

197 use element_mod , only : nixq
198C-----------------------------------------------
199C D e s c r i p t i o n
200C-----------------------------------------------
201C Computes the centroids of the elements
202C-----------------------------------------------
203C I m p l i c i t T y p e s
204C-----------------------------------------------
205#include "implicit_f.inc"
206C-----------------------------------------------
207C C o m m o n B l o c k s
208C-----------------------------------------------
209! NIXS
210C-----------------------------------------------
211C D u m m y A r g u m e n t s
212C-----------------------------------------------
213 INTEGER, INTENT(IN) :: NEL, NFT, IXQ(NIXQ, *), LENGTH
214 my_real, INTENT(IN) :: xgrid(3, *)
215 my_real, INTENT(OUT) :: elem_centroid(3, nel), face_centroid(3, 6, nel)
216C-----------------------------------------------
217C L o c a l V a r i a b l e s
218C-----------------------------------------------
219 INTEGER :: I, II, NODE1, NODE2, NODE3, NODE4
220 my_real
221 . x1(3), x2(3), x3(3), x4(3)
222 DO ii = 1, nel
223 i = ii + nft
224C Nodes of the element locally stored in NODE* for memory access
225 node1 = ixq(2, i)
226 node2 = ixq(3, i)
227 node3 = ixq(4, i)
228 node4 = ixq(5, i)
229C Node coordinates
230 x1(1:3) = xgrid(1:3, node1)
231 x2(1:3) = xgrid(1:3, node2)
232 x3(1:3) = xgrid(1:3, node3)
233 x4(1:3) = xgrid(1:3, node4)
234C Centroid
235 elem_centroid(1:3, ii) = fourth * (x1(1:3) + x2(1:3) + x3(1:3) + x4(1:3))
236C Face centroid
237C Face 1
238 face_centroid(1:3, 1, ii) = half * (x1(1:3) + x2(1:3))
239C Face 2
240 face_centroid(1:3, 2, ii) = half * (x2(1:3) + x3(1:3))
241C Face 3
242 face_centroid(1:3, 3, ii) = half * (x3(1:3) + x4(1:3))
243C Face 4
244 face_centroid(1:3, 4, ii) = half * (x1(1:3) + x4(1:3))
245
246 ENDDO
#define my_real
Definition cppsort.cpp:32

◆ centroid2t()

subroutine centroid2t ( integer, intent(in) nel,
integer, intent(in) length,
integer, intent(in) nft,
integer, dimension(nixtg, *), intent(in) ixtg,
dimension(3, *), intent(in) xgrid,
dimension(3, nel), intent(out) elem_centroid,
dimension(3, 6, nel), intent(out) face_centroid )

Definition at line 256 of file centroid.F.

258 use element_mod , only : nixtg
259C-----------------------------------------------
260C D e s c r i p t i o n
261C-----------------------------------------------
262C Computes the centroids of the elements
263C-----------------------------------------------
264C I m p l i c i t T y p e s
265C-----------------------------------------------
266#include "implicit_f.inc"
267C-----------------------------------------------
268C C o m m o n B l o c k s
269C-----------------------------------------------
270! NIXS
271C-----------------------------------------------
272C D u m m y A r g u m e n t s
273C-----------------------------------------------
274 INTEGER, INTENT(IN) :: NEL, NFT, IXTG(NIXTG, *), LENGTH
275 my_real, INTENT(IN) :: xgrid(3, *)
276 my_real, INTENT(OUT) :: elem_centroid(3, nel), face_centroid(3, 6, nel)
277C-----------------------------------------------
278C L o c a l V a r i a b l e s
279C-----------------------------------------------
280 INTEGER :: I, II, NODE1, NODE2, NODE3
281 my_real
282 . x1(3), x2(3), x3(3)
283 DO ii = 1, nel
284 i = ii + nft
285C Nodes of the element locally stored in NODE* for memory access
286 node1 = ixtg(2, i)
287 node2 = ixtg(3, i)
288 node3 = ixtg(4, i)
289C Node coordinates
290 x1(1:3) = xgrid(1:3, node1)
291 x2(1:3) = xgrid(1:3, node2)
292 x3(1:3) = xgrid(1:3, node3)
293C Centroid
294 elem_centroid(1:3, ii) = third * (x1(1:3) + x2(1:3) + x3(1:3))
295C Face centroid
296C Face 1
297 face_centroid(1:3, 1, ii) = half * (x1(1:3) + x2(1:3))
298C Face 2
299 face_centroid(1:3, 2, ii) = half * (x2(1:3) + x3(1:3))
300C Face 3
301 face_centroid(1:3, 3, ii) = half * (x3(1:3) + x1(1:3))
302
303 ENDDO

◆ centroid3()

subroutine centroid3 ( integer, intent(in) nel,
integer, intent(in) length,
integer, intent(in) nft,
integer, dimension(nixs, *), intent(in) ixs,
dimension(3, *), intent(in) xgrid,
dimension(3, nel), intent(out) elem_centroid,
dimension(3, 6, nel), intent(out) face_centroid )

Definition at line 31 of file centroid.F.

33 use element_mod , only : nixs
34C-----------------------------------------------
35C D e s c r i p t i o n
36C-----------------------------------------------
37C Computes the centroids of the elements
38C-----------------------------------------------
39C I m p l i c i t T y p e s
40C-----------------------------------------------
41#include "implicit_f.inc"
42C-----------------------------------------------
43C C o m m o n B l o c k s
44C-----------------------------------------------
45! NIXS
46C-----------------------------------------------
47C D u m m y A r g u m e n t s
48C-----------------------------------------------
49 INTEGER, INTENT(IN) :: NEL, NFT, IXS(NIXS, *), LENGTH
50 my_real, INTENT(IN) :: xgrid(3, *)
51 my_real, INTENT(OUT) :: elem_centroid(3, nel), face_centroid(3, 6, nel)
52C-----------------------------------------------
53C L o c a l V a r i a b l e s
54C-----------------------------------------------
55 INTEGER :: I, II, NODE1, NODE2, NODE3, NODE4, NODE5, NODE6, NODE7, NODE8
57 . x1(3), x2(3), x3(3), x4(3), x5(3), x6(3), x7(3), x8(3)
58 DO ii = 1, nel
59 i = ii + nft
60C Nodes of the element locally stored in NODE* for memory access
61 node1 = ixs(2, i)
62 node2 = ixs(3, i)
63 node3 = ixs(4, i)
64 node4 = ixs(5, i)
65 node5 = ixs(6, i)
66 node6 = ixs(7, i)
67 node7 = ixs(8, i)
68 node8 = ixs(9, i)
69C Node coordinates
70 x1(1:3) = xgrid(1:3, node1)
71 x2(1:3) = xgrid(1:3, node2)
72 x3(1:3) = xgrid(1:3, node3)
73 x4(1:3) = xgrid(1:3, node4)
74 x5(1:3) = xgrid(1:3, node5)
75 x6(1:3) = xgrid(1:3, node6)
76 x7(1:3) = xgrid(1:3, node7)
77 x8(1:3) = xgrid(1:3, node8)
78C Centroid
79 elem_centroid(1:3, ii) = one_over_8 * (x1(1:3) + x2(1:3) + x3(1:3) + x4(1:3) +
80 . x5(1:3) + x6(1:3) + x7(1:3) + x8(1:3))
81C Face centroid
82C Face 1
83 face_centroid(1:3, 1, ii) = fourth * (x1(1:3) + x2(1:3) + x3(1:3) + x4(1:3))
84C Face 2
85 face_centroid(1:3, 2, ii) = fourth * (x3(1:3) + x4(1:3) + x8(1:3) + x7(1:3))
86C Face 3
87 face_centroid(1:3, 3, ii) = fourth * (x5(1:3) + x6(1:3) + x7(1:3) + x8(1:3))
88C Face 4
89 face_centroid(1:3, 4, ii) = fourth * (x1(1:3) + x2(1:3) + x6(1:3) + x5(1:3))
90C Face 5
91 face_centroid(1:3, 5, ii) = fourth * (x2(1:3) + x3(1:3) + x7(1:3) + x6(1:3))
92C Face 6
93 face_centroid(1:3, 6, ii) = fourth * (x1(1:3) + x4(1:3) + x8(1:3) + x5(1:3))
94 ENDDO

◆ centroid3t()

subroutine centroid3t ( integer, intent(in) nel,
integer, intent(in) length,
integer, intent(in) nft,
integer, dimension(nixs, *), intent(in) ixs,
dimension(3, *), intent(in) xgrid,
dimension(3, nel), intent(out) elem_centroid,
dimension(3, 6, nel), intent(out) face_centroid )

Definition at line 107 of file centroid.F.

109 use element_mod , only : nixs
110C-----------------------------------------------
111C D e s c r i p t i o n
112C-----------------------------------------------
113C Computes the centroids of the elements
114C-----------------------------------------------
115C I m p l i c i t T y p e s
116C-----------------------------------------------
117#include "implicit_f.inc"
118C-----------------------------------------------
119C C o m m o n B l o c k s
120C-----------------------------------------------
121! NIXS
122C-----------------------------------------------
123C D u m m y A r g u m e n t s
124C-----------------------------------------------
125 INTEGER, INTENT(IN) :: NEL, NFT, IXS(NIXS, *), LENGTH
126 my_real, INTENT(IN) :: xgrid(3, *)
127 my_real, INTENT(OUT) :: elem_centroid(3, nel), face_centroid(3, 6, nel)
128C-----------------------------------------------
129C L o c a l V a r i a b l e s
130C-----------------------------------------------
131 INTEGER :: I, II, NODE1, NODE2, NODE3, NODE4
132 my_real
133 . x1(3), x2(3), x3(3), x4(3), vol
134 my_real
135 . a(3), b(3), c(3)
136 DO ii = 1, nel
137 i = ii + nft
138C Nodes of the element locally stored in NODE* for memory access
139 node1 = ixs(2, i)
140 node2 = ixs(4, i)
141 node3 = ixs(7, i)
142 node4 = ixs(6, i)
143C Node coordinates
144 x1(1:3) = xgrid(1:3, node1)
145 x2(1:3) = xgrid(1:3, node2)
146 x3(1:3) = xgrid(1:3, node3)
147 x4(1:3) = xgrid(1:3, node4)
148 elem_centroid(1:3, ii) = zero
149C Centroid
150 vol = zero
151 a(1:3) = x1(1:3)
152 b(1:3) = x2(1:3)
153 c(1:3) = x4(1:3)
154 CALL geom(a, b, c,elem_centroid(1,ii),elem_centroid(2,ii),elem_centroid(3,ii), vol)
155
156 a(1:3) = x1(1:3)
157 b(1:3) = x3(1:3)
158 c(1:3) = x2(1:3)
159 CALL geom(a, b, c,elem_centroid(1,ii),elem_centroid(2,ii),elem_centroid(3,ii), vol)
160
161 a(1:3) = x1(1:3)
162 b(1:3) = x4(1:3)
163 c(1:3) = x3(1:3)
164 CALL geom(a, b, c,elem_centroid(1,ii),elem_centroid(2,ii),elem_centroid(3,ii), vol)
165
166 a(1:3) = x2(1:3)
167 b(1:3) = x3(1:3)
168 c(1:3) = x4(1:3)
169 CALL geom(a, b, c,elem_centroid(1,ii),elem_centroid(2,ii),elem_centroid(3,ii), vol)
170
171 vol = vol / 6.d0
172 elem_centroid(1:3, ii) = elem_centroid(1:3, ii) / 12.d0 / vol
173
174 !ELEM_CENTROID(1:3, II) = FOURTH * (X1(1:3) + X2(1:3) + X3(1:3) + X4(1:3))
175C Face centroid
176C Face 1
177 face_centroid(1:3, 5, ii) = third * (x1(1:3) + x2(1:3) + x3(1:3))
178C Face 2
179 face_centroid(1:3, 6, ii) = third * (x1(1:3) + x2(1:3) + x4(1:3))
180C Face 3
181 face_centroid(1:3, 2, ii) = third * (x2(1:3) + x3(1:3) + x4(1:3))
182C Face 4
183 face_centroid(1:3, 4, ii) = third * (x1(1:3) + x3(1:3) + x4(1:3))
184 ENDDO
subroutine geom(a, b, c, center_x, center_y, center_z, vol)
Definition geom.F:30