OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
multi_face_data_elem.F File Reference
#include "implicit_f.inc"
#include "param_c.inc"
#include "com01_c.inc"
#include "task_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine multi_face_elem_data (itask, iparg, ixs, ixq, ixtg, xgrid, wgrid, multi_fvm)

Function/Subroutine Documentation

◆ multi_face_elem_data()

subroutine multi_face_elem_data ( integer, intent(in) itask,
integer, dimension(nparg, *), intent(in) iparg,
integer, dimension(nixs, *), intent(in) ixs,
integer, dimension(nixq, *), intent(in) ixq,
integer, dimension(nixtg, *), intent(in) ixtg,
dimension(3, *), intent(in) xgrid,
dimension(3, *), intent(in) wgrid,
type(multi_fvm_struct), intent(inout) multi_fvm )

Definition at line 40 of file multi_face_data_elem.F.

41C-----------------------------------------------
42C M o d u l e s
43C-----------------------------------------------
44 USE multi_fvm_mod
45C-----------------------------------------------
46C I m p l i c i t T y p e s
47C-----------------------------------------------
48#include "implicit_f.inc"
49C-----------------------------------------------
50C C o m m o n B l o c k s
51C-----------------------------------------------
52C NIXS, NIXQ, NIXTG, NPARG
53#include "param_c.inc"
54C NGROUP
55#include "com01_c.inc"
56C NTHREAD
57#include "task_c.inc"
58C-----------------------------------------------
59C D u m m y A r g u m e n t s
60C-----------------------------------------------
61 INTEGER, INTENT(IN) :: ITASK, IPARG(NPARG, *), IXS(NIXS, *), IXQ(NIXQ, *), IXTG(NIXTG, *)
62 my_real, INTENT(IN) :: xgrid(3, *), wgrid(3, *)
63 TYPE(MULTI_FVM_STRUCT), INTENT(INOUT) :: MULTI_FVM
64C-----------------------------------------------
65C L o c a l V a r i a b l e s
66C-----------------------------------------------
67 INTEGER :: NG, MTN, NEL, ITY, ISOLNOD, NFT, JALE
68 LOGICAL :: COMPUTE_CENTROID
69
70 compute_centroid = (multi_fvm%MUSCL > 0) .OR. multi_fvm%NS_DIFF
71
72 DO ng = itask + 1, ngroup, nthread
73 mtn = iparg(1, ng)
74 IF (mtn == 151) THEN
75 nel = iparg(2, ng)
76 nft = iparg(3, ng)
77 ity = iparg(5, ng)
78 jale = iparg(7, ng)
79 isolnod = iparg(28, ng)
80 IF (ity == 1) THEN
81C Solid
82 IF (isolnod == 4) THEN
83C TETRA
84 CALL snorm3t(nel, nft, jale, ixs, xgrid, wgrid,
85 . multi_fvm%FACE_DATA%NORMAL(1:3, 1:6, 1 + nft : nel + nft),
86 . multi_fvm%FACE_DATA%WFAC(1:3, 1:6, 1 + nft : nel + nft),
87 . multi_fvm%FACE_DATA%SURF(1:6, 1 + nft : nel + nft))
88 IF (compute_centroid) THEN
89 CALL centroid3t(nel, multi_fvm%NELEM, nft, ixs, xgrid,
90 . multi_fvm%ELEM_DATA%CENTROID(:, 1 + nft : nel + nft),
91 . multi_fvm%FACE_DATA%CENTROID(:, :, 1 + nft : nel + nft))
92 ENDIF
93 ELSE
94C OTHER SOLIDS
95 CALL snorm3(nel, nft, jale, ixs, xgrid, wgrid,
96 . multi_fvm%FACE_DATA%NORMAL(1:3, 1:6, 1 + nft : nel + nft),
97 . multi_fvm%FACE_DATA%WFAC(1:3, 1:6, 1 + nft : nel + nft),
98 . multi_fvm%FACE_DATA%SURF(1:6, 1 + nft : nel + nft))
99C
100 IF (compute_centroid) THEN
101 CALL centroid3(nel, multi_fvm%NELEM, nft, ixs, xgrid,
102 . multi_fvm%ELEM_DATA%CENTROID(:, 1 + nft : nel + nft),
103 . multi_fvm%FACE_DATA%CENTROID(:, :, 1 + nft : nel + nft))
104 ENDIF
105 ENDIF
106 ELSE IF (ity == 2) THEN
107C QUAD
108 CALL qnorm2(nel, nft, jale, multi_fvm%SYM, ixq, xgrid, wgrid,
109 . multi_fvm%FACE_DATA%NORMAL(1:3, 1:4, 1 + nft : nel + nft),
110 . multi_fvm%FACE_DATA%WFAC(1:3, 1:4, 1 + nft : nel + nft),
111 . multi_fvm%FACE_DATA%SURF(1:4, 1 + nft : nel + nft))
112 IF (compute_centroid) THEN
113 CALL centroid2(nel, multi_fvm%NELEM, nft, ixq, xgrid,
114 . multi_fvm%ELEM_DATA%CENTROID(:, 1 + nft : nel + nft),
115 . multi_fvm%FACE_DATA%CENTROID(:, :, 1 + nft : nel + nft))
116 ENDIF
117 ELSE IF (ity == 7) THEN
118C TRIANGLE
119 CALL qnorm2t(nel, nft, jale, multi_fvm%SYM, ixtg, xgrid, wgrid,
120 . multi_fvm%FACE_DATA%NORMAL(1:3, 1:3, 1 + nft : nel + nft),
121 . multi_fvm%FACE_DATA%WFAC(1:3, 1:3, 1 + nft : nel + nft),
122 . multi_fvm%FACE_DATA%SURF(1:3, 1 + nft : nel + nft))
123 IF (compute_centroid) THEN
124 CALL centroid2t(nel, multi_fvm%NELEM, nft, ixtg, xgrid,
125 . multi_fvm%ELEM_DATA%CENTROID(:, 1 + nft : nel + nft),
126 . multi_fvm%FACE_DATA%CENTROID(:, :, 1 + nft : nel + nft))
127 ENDIF
128 ENDIF
129 ENDIF
130 ENDDO
subroutine centroid2t(nel, length, nft, ixtg, xgrid, elem_centroid, face_centroid)
Definition centroid.F:247
subroutine centroid3t(nel, length, nft, ixs, xgrid, elem_centroid, face_centroid)
Definition centroid.F:104
subroutine centroid3(nel, length, nft, ixs, xgrid, elem_centroid, face_centroid)
Definition centroid.F:31
subroutine centroid2(nel, length, nft, ixq, xgrid, elem_centroid, face_centroid)
Definition centroid.F:189
#define my_real
Definition cppsort.cpp:32
subroutine qnorm2(nel, nft, jale, sym, ixq, xgrid, wgrid, norm, wfac, surf)
Definition qnorm2.F:30
subroutine qnorm2t(nel, nft, jale, sym, ixtg, xgrid, wgrid, norm, wfac, surf)
Definition qnorm2t.F:32
subroutine snorm3(nel, nft, jale, ixs, xgrid, wgrid, norm, wfac, surf)
Definition snorm3.F:31
subroutine snorm3t(nel, nft, jale, ixs, xgrid, wgrid, norm, wfac, surf)
Definition snorm3t.F:33