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