OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
fvbag_mod.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!|| fvbag_mod ../engine/share/modules/fvbag_mod.F
25!||--- called by ------------------------------------------------------
26!|| alevec ../engine/source/output/anim/generate/monvol_anim.F90
27!|| alevflu ../engine/source/output/anim/generate/monvol_anim.F90
28!|| anim_nodal_contour_fvmbags ../engine/source/output/anim/generate/anim_nodal_contour_fvmbags.F
29!|| anim_nodal_vector_fvmbags ../engine/source/output/anim/generate/anim_nodal_vector_fvmbags.F
30!|| animbale ../engine/source/output/anim/generate/monvol_anim.F90
31!|| freform ../engine/source/input/freform.F
32!|| fv_switch_crit ../engine/source/airbag/fvdim.F
33!|| fv_up_switch ../engine/source/airbag/fv_up_switch.F
34!|| fvbag0 ../engine/source/airbag/fvbag0.F
35!|| fvbag1 ../engine/source/airbag/fvbag1.F
36!|| fvbag2 ../engine/source/airbag/fvbag2.F
37!|| fvbric ../engine/source/airbag/fvbric.F
38!|| fvcopy ../engine/source/airbag/fvcopy.F
39!|| fvdeal ../engine/source/airbag/fvdeal.F
40!|| fvdim ../engine/source/airbag/fvdim.F
41!|| fvmesh0 ../engine/source/airbag/fvmesh0.F
42!|| fvmesh1 ../engine/source/airbag/fvmesh.F
43!|| fvrezone0 ../engine/source/airbag/fvrezone.F
44!|| fvrezone1 ../engine/source/airbag/fvrezone.F
45!|| fvrrest ../engine/source/output/restart/rdresb.F
46!|| fvstats ../engine/source/airbag/fvstats.F
47!|| fvstats1 ../engine/source/airbag/fvstats1.F
48!|| fvupd0 ../engine/source/airbag/fvupd.F
49!|| fvupd1 ../engine/source/airbag/fvupd.F
50!|| fvwrest ../engine/source/output/restart/wrrest.F
51!|| genani ../engine/source/output/anim/generate/genani.F
52!|| genh3d ../engine/source/output/h3d/h3d_results/genh3d.F
53!|| h3d_create_fvmbag_centroids ../engine/source/output/h3d/h3d_build_fortran/h3d_create_fvmbag_centroids.f
54!|| h3d_nodal_scalar ../engine/source/output/h3d/h3d_results/h3d_nodal_scalar.F
55!|| h3d_nodal_vector ../engine/source/output/h3d/h3d_results/h3d_nodal_vector.F
56!|| h3d_update_fvmbag_centroids ../engine/source/output/h3d/h3d_build_fortran/h3d_update_fvmbag_centroids.F
57!|| lecfvbag ../engine/source/input/lecfvbag.F
58!|| lectur ../engine/source/input/lectur.F
59!|| nodald ../engine/source/output/anim/generate/nodald.F
60!|| nodaldt ../engine/source/output/anim/generate/nodaldt.F
61!|| nodalp ../engine/source/output/anim/generate/nodalp.f
62!|| nodalssp ../engine/source/output/anim/generate/nodalssp.F
63!|| nodalt ../engine/source/output/anim/generate/nodalt.F
64!|| nodalvol ../engine/source/output/anim/generate/nodalvol.F
65!|| resol ../engine/source/engine/resol.F
66!|| sortie_main ../engine/source/output/sortie_main.F
67!|| spmd_exch_fvstats ../engine/source/mpi/airbags/spmd_exch_fvstats.F
68!|| spmd_fvb_adim ../engine/source/mpi/anim/spmd_fvb_adim.F
69!|| spmd_fvb_aelf ../engine/source/mpi/anim/spmd_fvb_aelf.F
70!|| spmd_fvb_amon ../engine/source/mpi/anim/spmd_fvb_amon.F
71!|| spmd_fvb_anod ../engine/source/mpi/anim/spmd_fvb_anod.F
72!|| spmd_fvb_anum ../engine/source/mpi/anim/spmd_fvb_anum.f
73!|| spmd_fvb_aoff ../engine/source/mpi/anim/spmd_fvb_aoff.F
74!|| spmd_fvb_apar ../engine/source/mpi/anim/spmd_fvb_apar.F
75!|| spmd_fvb_asub1 ../engine/source/mpi/anim/spmd_fvb_asub1.F
76!|| spmd_fvb_asub2 ../engine/source/mpi/anim/spmd_fvb_asub2.F
77!|| spmd_fvb_atit ../engine/source/mpi/anim/spmd_fvb_atit.F
78!|| spmd_fvb_atr ../engine/source/mpi/anim/spmd_fvb_atr.F
79!|| spmd_fvb_avec ../engine/source/mpi/anim/spmd_fvb_avec.F
80!|| spmd_fvb_comm_pattern ../engine/source/mpi/airbags/spmd_fvb_comm_pattern.F
81!|| spmd_fvb_gath ../engine/source/mpi/airbags/spmd_fvb_gath.F
82!|| spmd_fvb_gath_begin ../engine/source/mpi/airbags/spmd_fvb.F
83!|| spmd_fvb_gath_end ../engine/source/mpi/airbags/spmd_fvb.F
84!|| spmd_fvb_igath ../engine/source/mpi/airbags/spmd_fvb_igath.F
85!|| spmd_fvb_scat_num_noda ../engine/source/mpi/anim/spmd_fvb_scat_num_noda.F
86!|| spmd_fvb_switch ../engine/source/mpi/airbags/spmd_fvb_switch.F
87!||====================================================================
88 MODULE fvbag_mod
89C-----------------------------------------------
90C m y _ r e a l
91C-----------------------------------------------
92#include "my_real.inc"
93C-----------------------------------------------
94C D e r i v e d T y p e D e f i n i t i o n s
95C-----------------------------------------------
97 INTEGER :: minus_size, plus_size
98 INTEGER, DIMENSION(:), ALLOCATABLE :: minus, plus
99 END TYPE t_elem_to_tri
100
101 TYPE fvbag_data
102 !-------------------------------
103 ! Courant number (DT scale factor) & Time Step options
104 !-------------------------------
105 my_real cfl_coef, dtmin
106 my_real lambda ! /DT/FVMBAG param 3
107 my_real dtold ! FVMBAG time step from previous cycle
108 INTEGER l_type ! FVMBAG characteristic length option
109 INTEGER id_dt_option ! /DT/FVMBAG/[ID_DT_OPTION]
110 !------------------------------------------------
111 ! Dispersion of pressure around mean pressure
112 !------------------------------------------------
113 my_real pdisp_old, pdisp
114 !-------------------------------
115 ! Donnees briques intersectantes
116 !-------------------------------
117 INTEGER, DIMENSION(:,:), POINTER :: bric, tbric
118 my_real, DIMENSION(:,:), POINTER :: xb
119 my_real, DIMENSION(:,:,:), POINTER :: sfac
120 !-----------
121 ! Dimensions
122 !-----------
123 INTEGER nns, nntr, lenp, npoly, lenh, npolh
124 !----------------
125 ! Anim polyhedres
126 !----------------
127 INTEGER NPOLH_ANIM, nns_anim, id
128 INTEGER, DIMENSION(:), POINTER :: ifvpoly_anim, ifvtadr_anim,
129 . ifvpolh_anim, ifvpadr_anim,
130 . redir_anim
131 INTEGER, DIMENSION(:,:), POINTER :: ifvtri_anim
132 my_real, DIMENSION(:,:), POINTER :: nod_anim
133 !------------------------
134 ! Polygones et polyhedres
135 !------------------------
136 INTEGER, DIMENSION(:), POINTER :: ifvpoly, ifvtadr,
137 . ifvpolh, ifvpadr, idpolh,
138 . ibpolh
139 INTEGER, DIMENSION(:,:), POINTER :: ifvnod, ifvtri
140 my_real, DIMENSION(:,:), POINTER :: rfvnod
141 INTEGER, DIMENSION(:,:), ALLOCATABLE :: tri_to_elem
142 TYPE(t_elem_to_tri), DIMENSION(:), ALLOCATABLE :: elem_to_tri
143 !------------------------
144 ! Variables volumes finis
145 !------------------------
146 my_real, DIMENSION(:), POINTER :: mpolh, epolh, ppolh,
147 . rpolh, gpolh, tpolh,
148 . cpapolh, cpbpolh, cpcpolh,
149 . cpdpolh, cpepolh, cpfpolh,
150 . rmwpolh, vpolh_ini,
151 . ssppolh !SSPPOLH : output purpose only (sound speed in polyhedra)
152 my_real, DIMENSION(:,:), POINTER :: qpolh
153 my_real, DIMENSION(:,:), POINTER :: centroid_polh !output purpose only (centroids positions)
154
155 !---------------------------
156 ! Variables stabilite
157 !---------------------------
158 my_real dlh
159 my_real, DIMENSION(:), POINTER :: dtpolh
160 END TYPE fvbag_data
161
162 TYPE fvbag_spmd
163 INTEGER nn_l, nna_l, nnsa, nnsa_l, nsa, nelsa, pmain, nni_l,mpi_comm, RANK, nspmd,nna_l_glob
164 INTEGER, DIMENSION(:,:), POINTER :: ibuf_l, ibufa_l, ibufsa_l,ixsa, elemsa,itab
165 ! buffers
166 my_real,DIMENSION(:,:), POINTER :: ggg,gga,aaa
167 my_real,DIMENSION(:), POINTER :: rbuf ! buffer for fvupd
168 INTEGER, DIMENSION(:), POINTER :: ibuf !buffer for fvupd
169 INTEGER, DIMENSION(:), POINTER :: req,iadi,iadr
170 my_real,DIMENSION(:,:), POINTER :: xxx,vvv,wax,wav
171 END TYPE fvbag_spmd
172
173 !-------------------------------------
174 ! TEMP BUFFER (ENGINE FILE PARAMETERS)
175 !-------------------------------------
176 !Reading Engine file option /DT/FVMBAG and store it (FREEFORM subroutine)
177 ! Then use it when airbag buffer are allocated (restart file is read after FREEFORM subroutine)
179 INTEGER id_bag ! airbag identifier
180 INTEGER l_type ! characteristic length option
181 INTEGER id_dt_option !/DT/FVMBAG/[ID_DT_OPTION]
182 my_real cfl_coef
183 my_real dtmin
184 my_real lambda ! 3rd parameter of /DT/FVMBAG option
185 END TYPE fvmbag_input_options_
186
187C-----------------------------------------------
188C G l o b a l V a r i a b l e s D e f i n i t i o n
189C-----------------------------------------------
190 INTEGER nfvbag
191 INTEGER airbags_total_fvm_in_h3d ! number of polyhedra/centroids at first cycle (upper bound for following cycle due to merging) Visualization purpose only.
192
193 TYPE(fvbag_data), DIMENSION(:), ALLOCATABLE :: fvdata, fvdata_old
194 TYPE(fvbag_spmd), DIMENSION(:), ALLOCATABLE :: fvspmd
195C-----------------------------------------------
196 TYPE(fvmbag_input_options_),DIMENSION(:), ALLOCATABLE :: fvmbag_input_options
197 INTEGER num_opt_dt_fvmbag !number of option /DT/FVMBAG/[0-9] in Engine file
198 INTEGER num_opt_dt_fvmbag_0 !number of option /DT/FVMBAG/0 in Engine file
199 INTEGER num_opt_dt_fvmbag_1 !number of option /DT/FVMBAG/1 in Engine file
200 INTEGER num_opt_dt_fvmbag_2 !number of option /DT/FVMBAG/2 in Engine file
201 INTEGER num_opt_dt_fvmbag_3 !number of option /DT/FVMBAG/3 in Engine file
202C-----------------------------------------------
203
204 END MODULE fvbag_mod
#define my_real
Definition cppsort.cpp:32
subroutine h3d_create_fvmbag_centroids(monvol, volmon, fvdata, nfvbag, smonvol, svolmon, airbags_node_id_shift)
initmumps id
type(fvbag_data), dimension(:), allocatable fvdata_old
Definition fvbag_mod.F:193
integer num_opt_dt_fvmbag_2
Definition fvbag_mod.F:200
type(fvbag_spmd), dimension(:), allocatable fvspmd
Definition fvbag_mod.F:129
type(fvbag_data), dimension(:), allocatable fvdata
Definition fvbag_mod.F:128
integer airbags_total_fvm_in_h3d
Definition fvbag_mod.F:191
integer num_opt_dt_fvmbag_3
Definition fvbag_mod.F:201
type(fvmbag_input_options_), dimension(:), allocatable fvmbag_input_options
Definition fvbag_mod.F:196
integer num_opt_dt_fvmbag_1
Definition fvbag_mod.F:199
integer num_opt_dt_fvmbag
Definition fvbag_mod.F:197
integer num_opt_dt_fvmbag_0
Definition fvbag_mod.F:198
integer nfvbag
Definition fvbag_mod.F:127
subroutine nodalp(ifunc, wa4, wa4_fvm, iflow, rflow, iparg, elbuf_tab, ix, nix, numel, itab, nv46, monvol, volmon, airbags_total_fvm_in_h3d, is_written_node, is_written_node_fvm, ispmd, fvdata_p, swa4, airbags_node_id_shift)
Definition nodalp.F:43
subroutine spmd_fvb_anum(fvoff, idmax, nfvnod)