OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
h3d_shell_scalar.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!|| h3d_shell_scalar ../engine/source/output/h3d/h3d_results/h3d_shell_scalar.F
25!||--- called by ------------------------------------------------------
26!|| genh3d ../engine/source/output/h3d/h3d_results/genh3d.F
27!||--- calls -----------------------------------------------------
28!|| h3d_shell_scalar_1 ../engine/source/output/h3d/h3d_results/h3d_shell_scalar_1.f
29!|| schlieren_buffer_gathering ../engine/source/output/anim/generate/schlieren_buffer_gathering.F
30!||--- uses -----------------------------------------------------
31!|| ale_connectivity_mod ../common_source/modules/ale/ale_connectivity_mod.F
32!|| elbufdef_mod ../common_source/modules/mat_elem/elbufdef_mod.F90
33!|| element_mod ../common_source/modules/elements/element_mod.F90
34!|| initbuf_mod ../engine/share/resol/initbuf.F
35!|| matparam_def_mod ../common_source/modules/mat_elem/matparam_def_mod.F90
36!|| multi_fvm_mod ../common_source/modules/ale/multi_fvm_mod.F90
37!|| names_and_titles_mod ../common_source/modules/names_and_titles_mod.F
38!|| schlieren_mod ../engine/share/modules/schlieren_mod.F
39!|| stack_mod ../engine/share/modules/stack_mod.F
40!||====================================================================
41 SUBROUTINE h3d_shell_scalar(
42 . ELBUF_TAB ,SHELL_STACK ,IPARG ,GEO ,
43 . IXC ,IXTG ,PM ,BUFMAT,
44 . EHOUR ,
45 . IPM ,IGEO ,THKE ,ERR_THK_SH4 ,ERR_THK_SH3,
46 . X ,V ,W ,ALE_CONNECT,
47 . NERCVOIS ,NESDVOIS ,LERCVOIS ,LESDVOIS,
48 . STACK ,ID_ELEM ,ITY_ELEM ,
49 . IS_WRITTEN_SHELL,IPARTC,IPARTTG ,LAYER_INPUT ,IPT_INPUT ,
50 . PLY_INPUT ,IUVAR_INPUT,H3D_PART ,KEYWORD ,ITHERM ,
51 . D , MULTI_FVM ,IDMDS ,IMDSVAR ,MDS_MATID ,
52 . ID ,MODE ,MAT_PARAM ,H3D_LIGHT ,MAX_SHELL_STACKSIZE,
53 . SHELL_STACKSIZE)
54C-----------------------------------------------
55C M o d u l e s
56C-----------------------------------------------
57 USE initbuf_mod
58 USE elbufdef_mod
60 USE stack_mod
61 USE multi_fvm_mod
64 USE matparam_def_mod
65 use element_mod , only : nixc,nixtg
66C-----------------------------------------------
67C I m p l i c i t T y p e s
68C-----------------------------------------------
69#include "implicit_f.inc"
70C-----------------------------------------------
71C C o m m o n B l o c k s
72C-----------------------------------------------
73C N2D, NGROUP,
74#include "com01_c.inc"
75C NUMGEO, NUMELC, NUMELTG, NUMMAT, NUMNOD,
76#include "com04_c.inc"
77C NPARG, NPROPG, NNPROPM, NPROPMI, NPROPGI,
78#include "param_c.inc"
79C SNERCVOIS, SNESDVOIS, SLERCVOIS, SLESDVOIS
80#include "tabsiz_c.inc"
81C-----------------------------------------------
82C D u m m y A r g u m e n t s
83C-----------------------------------------------
84 INTEGER, INTENT(IN) :: MAX_SHELL_STACKSIZE
85 REAL(KIND=4),DIMENSION(MAX_SHELL_STACKSIZE) :: SHELL_STACK
86 INTEGER , INTENT(INOUT) :: SHELL_STACKSIZE
87 my_real
88 . X(3,NUMNOD),V(3,NUMNOD),W(3,NUMNOD),D(3,NUMNOD),THKE(*),EHOUR(*),GEO(NPROPG,NUMGEO),
89 . PM(NPROPM,NUMMAT),ERR_THK_SH4(NUMELC), ERR_THK_SH3(NUMELTG)
90 INTEGER, INTENT(IN) :: ITHERM
91 INTEGER IPARG(NPARG,NGROUP),IXC(NIXC,NUMELC),IXTG(NIXTG,NUMELTG),
92 . IPM(NPROPMI,NUMMAT),
93 . IGEO(NPROPGI,NUMGEO), ID_ELEM(*),ITY_ELEM(*),
94 . IS_WRITTEN_SHELL(*),IPARTC(NUMELC),IPARTTG(NUMELTG),H3D_PART(*),
95 . LAYER_INPUT ,IPT_INPUT,PLY_INPUT,IUVAR_INPUT,IDMDS,ID,
96 . mds_matid(*),imdsvar,nercvois(snercvois),nesdvois(snesdvois),lercvois(slercvois),lesdvois(slesdvois)
97 TYPE (ELBUF_STRUCT_), DIMENSION(NGROUP), TARGET :: ELBUF_TAB
98 TYPE (STACK_PLY) :: STACK
99 CHARACTER(LEN=NCHARLINE100):: KEYWORD
100 TYPE (MULTI_FVM_STRUCT), INTENT(IN) :: MULTI_FVM
101 my_real,INTENT(IN) :: BUFMAT(*)
102 TYPE(t_ale_connectivity), INTENT(IN) :: ALE_CONNECT
103 INTEGER ,INTENT(IN) :: MODE
104 TYPE (MATPARAM_STRUCT_) ,DIMENSION(NUMMAT) ,INTENT(IN) :: MAT_PARAM
105 INTEGER ,INTENT(IN) :: H3D_LIGHT
106C-----------------------------------------------
107C L o c a l V a r i a b l e s
108C-----------------------------------------------
109 my_real, DIMENSION(1) :: scalar_results
110 INTEGER NG
111C-----------------------------------------------
112C S o u r c e L i n e s
113C-----------------------------------------------
114c DO II=1,NUMELC+NUMELTG
115c IS_WRITTEN_SHELL(II) = 0
116c ENDDO
117C-----------------------------------------------
118
119 !-------------------------------------------------------!
120 ! SCHLIEREN INITIALIZATION (IF DEFINED) !
121 ! DENSITY FOR ALL TRIA ARE STORED IN WA_L !
122 !-------------------------------------------------------!
123 ! /TRIA are 2d solid elements (new entity type derived from SH3N buffer, it is currently managed from h3d_shell_* subroutines. It will change in the future.
124 IF(keyword == 'SCHLIEREN' .AND. n2d > 0)THEN
125 CALL schlieren_buffer_gathering(nercvois ,nesdvois ,lercvois ,lesdvois, iparg, elbuf_tab, multi_fvm,itherm)
126 ENDIF
127C-----------------------------------------------
128
129 !-------------------------------------------------------!
130 ! LOOP OVER ELEM GROUPS & OUTPUT DATA !
131 !-------------------------------------------------------!
132 DO ng=1,ngroup
133 CALL h3d_shell_scalar_1(.false.,
134 . elbuf_tab ,scalar_results,iparg ,geo ,
135 . ixc ,ixtg ,pm ,bufmat ,
136 . ehour ,
137 . ipm ,igeo ,thke ,err_thk_sh4 ,err_thk_sh3,
138 . x ,v ,w ,ale_connect ,
139 . stack ,id_elem ,ity_elem ,
140 . is_written_shell,ipartc,iparttg ,layer_input ,ipt_input ,
141 . ply_input ,iuvar_input,h3d_part ,keyword ,
142 . d ,ng ,multi_fvm,idmds ,imdsvar ,
143 . mds_matid ,id ,mode ,mat_param ,
144 . h3d_light ,shell_stack ,max_shell_stacksize,shell_stacksize)
145
146 ENDDO
147C-----------------------------------------------
148
149
150 RETURN
151 END
subroutine h3d_shell_scalar(elbuf_tab, shell_stack, iparg, geo, ixc, ixtg, pm, bufmat, ehour, ipm, igeo, thke, err_thk_sh4, err_thk_sh3, x, v, w, ale_connect, nercvois, nesdvois, lercvois, lesdvois, stack, id_elem, ity_elem, is_written_shell, ipartc, iparttg, layer_input, ipt_input, ply_input, iuvar_input, h3d_part, keyword, itherm, d, multi_fvm, idmds, imdsvar, mds_matid, id, mode, mat_param, h3d_light, max_shell_stacksize, shell_stacksize)
subroutine h3d_shell_scalar_1(called_from_python, elbuf_tab, shell_scalar, iparg, geo, ixc, ixtg, pm, bufmat, ehour, ipm, igeo, thke, err_thk_sh4, err_thk_sh3, x, v, w, ale_connect, stack, id_elem, ity_elem, is_written_shell, ipartc, iparttg, layer_input, ipt_input, ply_input, iuvar_input, h3d_part, keyword, d, ng, multi_fvm, idmds, imdsvar, mds_matid, id, mode, matparam, h3d_light, shell_stack, max_shell_stacksize, shell_stacksize)
integer, parameter ncharline100
subroutine schlieren_buffer_gathering(nercvois, nesdvois, lercvois, lesdvois, iparg, elbuf_tab, multi_fvm, itherm)