OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
ale_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/.
23C-----------------------------------------------
24!||====================================================================
25!|| ale_mod ../common_source/modules/ale/ale_mod.F
26!||--- called by ------------------------------------------------------
27!|| a4momt3 ../engine/source/elements/solid/solide4/a4momt3.F
28!|| aconve ../engine/source/ale/aconve.F
29!|| ale51_antidiff2 ../engine/source/ale/ale51/ale51_antidiff2.F
30!|| ale51_antidiff3 ../engine/source/ale/ale51/ale51_antidiff3.F
31!|| ale51_antidiff3_int22 ../engine/source/ale/alefvm/cut_cells/ale51_antidiff3_int22.F
32!|| ale_connectivity_init ../common_source/modules/ale/ale_connectivity_mod.F
33!|| ale_euler_init ../starter/source/materials/ale/ale_euler_init.F
34!|| alemain ../engine/source/ale/alemain.F
35!|| alesub1 ../engine/source/ale/subcycling/alesub1.F
36!|| alesub2 ../engine/source/ale/subcycling/alesub2.F
37!|| alethe ../engine/source/ale/alethe.F
38!|| alew ../engine/source/ale/grid/alew.F
39!|| alew1 ../engine/source/ale/grid/alew1.F
40!|| alew2 ../engine/source/ale/grid/alew2.F
41!|| alew4 ../engine/source/ale/grid/alew4.F
42!|| alew5 ../engine/source/ale/grid/alew5.F
43!|| alew7 ../engine/source/ale/grid/alew7.F
44!|| alewdx ../engine/source/ale/grid/alewdx.F
45!|| amomt2 ../engine/source/ale/ale2d/amomt2.F
46!|| amomt3 ../engine/source/elements/solid/solide/amomt3.F
47!|| amomtn3 ../engine/source/elements/solid/solide/amomtn3.F
48!|| asspar4 ../engine/source/assembly/asspar4.F
49!|| c3grtails ../starter/source/elements/sh3n/coque3n/c3grtails.F
50!|| contrl ../starter/source/starter/contrl.F
51!|| ddsplit ../starter/source/restart/ddsplit/ddsplit.F
52!|| definter ../starter/source/interfaces/interf1/definter.F
53!|| dtnoda ../engine/source/time_step/dtnoda.F
54!|| ebcs10_nrf ../engine/source/boundary_conditions/ebcs/ebcs10_nrf.F
55!|| ebcs_vol2seg ../engine/source/boundary_conditions/ebcs/ebcs_vol2seg.F
56!|| emomt2 ../engine/source/ale/euler2d/emomt2.F
57!|| emomt3b ../engine/source/elements/solid/solide/emomt3b.F
58!|| epxle3 ../engine/source/elements/solid/solide/epxle3.F
59!|| fdlen3 ../engine/source/elements/solid/solide/fdlen3.F
60!|| ffint3 ../engine/source/elements/solid/solide/ffint3.F
61!|| fhvis3 ../engine/source/elements/solid/solide/fhvis3.F
62!|| fmqviscb ../engine/source/materials/mat_share/fmqviscb.F
63!|| forint ../engine/source/elements/forint.F
64!|| freform ../engine/source/input/freform.F
65!|| freupwind ../engine/source/input/freupwind.F
66!|| freupwm ../engine/source/input/freupwm.F
67!|| frho3 ../engine/source/elements/solid/solide/frho3.F
68!|| gravit_fvm_fem ../engine/source/loads/general/grav/gravit_fvm_fem.F
69!|| hm_read_ale_grid ../starter/source/general_controls/ale_grid/hm_read_ale_grid.F
70!|| hm_read_caa ../starter/source/general_controls/computation/hm_read_caa.F
71!|| hm_read_eos_compaction2 ../starter/source/materials/eos/hm_read_eos_compaction2.F90
72!|| hm_read_eos_compaction_tab ../starter/source/materials/eos/hm_read_eos_compaction_tab.F90
73!|| hm_read_inter_type02 ../starter/source/interfaces/int02/hm_read_inter_type02.F
74!|| hm_read_mat11 ../starter/source/materials/mat/mat011/hm_read_mat11.F
75!|| hm_read_mat11_k_eps ../starter/source/materials/mat/mat011/hm_read_mat11_k_eps.F
76!|| hm_read_mat51 ../starter/source/materials/mat/mat051/hm_read_mat51.F
77!|| hm_read_part ../starter/source/model/assembling/hm_read_part.F
78!|| hm_read_prop14 ../starter/source/properties/solid/hm_read_prop14.F
79!|| hm_read_prop14f ../starter/source/properties/solid/hm_read_prop14.F
80!|| hm_read_prop15 ../starter/source/properties/solid/hm_read_prop15.F
81!|| hm_read_properties ../starter/source/properties/hm_read_properties.F
82!|| i12m2s ../engine/source/interfaces/interf/i12m2s.F
83!|| i12nod3 ../engine/source/interfaces/interf/i12nod3.F
84!|| i12s2m ../engine/source/interfaces/interf/i12s2m.F
85!|| ig3dgrtails ../starter/source/elements/ige3d/ig3dgrtails.F
86!|| ig3dmass3 ../starter/source/elements/ige3d/ig3dmass3.F
87!|| ingrbric_nodes ../starter/source/interfaces/interf1/ingrbric_nodes.F
88!|| iniresa ../engine/source/output/restart/rdresa.F
89!|| intti12a ../engine/source/interfaces/interf/intti12.F
90!|| lecint ../starter/source/interfaces/interf1/lecint.F
91!|| lectur ../engine/source/input/lectur.F
92!|| m46law ../engine/source/materials/mat/mat046/m46law.F
93!|| manctr ../engine/source/input/manctr.F
94!|| matparam_def_mod ../common_source/modules/mat_elem/matparam_def_mod.F90
95!|| meint ../engine/source/materials/mat_share/meint.F
96!|| mmain ../engine/source/materials/mat_share/mmain.F90
97!|| mqviscb ../engine/source/materials/mat_share/mqviscb.F
98!|| qdlen2 ../engine/source/elements/solid_2d/quad/qdlen2.F
99!|| qforc2 ../engine/source/elements/solid_2d/quad/qforc2.F
100!|| qgrtails ../starter/source/elements/solid_2d/quad/qgrtails.F
101!|| qhvis2 ../engine/source/elements/solid_2d/quad/qhvis2.F
102!|| qmasi2 ../starter/source/elements/solid_2d/quad/qmasi2.F
103!|| qmasi2b ../starter/source/elements/solid_2d/quad/qmasi2b.F
104!|| r2r_split ../starter/source/coupling/rad2rad/r2r_split.F
105!|| r_bufbric_22 ../engine/source/interfaces/int22/r_bufbric_22.F
106!|| radioss2 ../engine/source/engine/radioss2.F
107!|| rdcomi ../engine/source/output/restart/rdcomm.F
108!|| rdcomr ../engine/source/output/restart/rdcomm.F
109!|| rdresb ../engine/source/output/restart/rdresb.F
110!|| read_ale_grid ../engine/source/output/restart/read_ale_grid.F90
111!|| read_ale_rezoning_param ../engine/source/output/restart/read_ale_rezoning_param.F90
112!|| resol ../engine/source/engine/resol.F
113!|| restalloc ../engine/source/output/restart/arralloc.F
114!|| s4forc3 ../engine/source/elements/solid/solide4/s4forc3.F
115!|| s4mass3 ../starter/source/elements/solid/solide4/s4mass3.F
116!|| sdlen3 ../engine/source/elements/solid/solide/sdlen3.F
117!|| seggetv ../engine/source/interfaces/interf/seggetv.F
118!|| segvar_create ../engine/share/modules/segvar_mod.F
119!|| sfint3 ../engine/source/elements/solid/solide/sfint3.F
120!|| sforc3 ../engine/source/elements/solid/solide/sforc3.F
121!|| sgrtails ../starter/source/elements/solid/solide/sgrtails.F
122!|| shvis3 ../engine/source/elements/solid/solide/shvis3.F
123!|| sigeps46 ../engine/source/materials/mat/mat046/sigeps46.F
124!|| smass3 ../starter/source/elements/solid/solide/smass3.F
125!|| smass3b ../starter/source/elements/solid/solid8p/smass3b.F
126!|| spmd_exch_flow_tracking_data ../engine/source/ale/grid/spmd_exch_flow_tracking_data.F90
127!|| spmd_exch_flow_tracking_data2 ../engine/source/ale/grid/spmd_exch_flow_tracking_data2.F90
128!|| spmd_exch_flow_tracking_data3 ../engine/source/ale/grid/spmd_exch_flow_tracking_data3.F90
129!|| spmd_exch_flow_tracking_data4 ../engine/source/ale/grid/spmd_exch_flow_tracking_data4.F90
130!|| spmd_sd_xv ../engine/source/mpi/nodes/spmd_sd_xv.F
131!|| spmd_segcom ../engine/source/mpi/fluid/spmd_cfd.F
132!|| srho3 ../engine/source/elements/solid/solide/srho3.F
133!|| st_qaprint_ale_options_driver ../starter/source/output/qaprint/st_qaprint_ale_options_driver.F
134!|| st_qaprint_general_controls ../starter/source/output/qaprint/st_qaprint_general_controls.F
135!|| starter0 ../starter/source/starter/starter0.F
136!|| sz_print ../engine/source/output/restart/arralloc.F
137!|| szforc3 ../engine/source/elements/solid/solidez/szforc3.F
138!|| t3grtails ../starter/source/elements/solid_2d/tria/t3grtails.F
139!|| upwind ../engine/source/elements/solid/solide/upwind.F
140!|| upwind4 ../engine/source/elements/solid/solide4/upwind4.F
141!|| upwind_v ../engine/source/elements/solid/solide/upwind_v.F
142!|| varcondec ../engine/source/interfaces/interf/varcondec.F
143!|| wrcomi ../engine/source/output/restart/wrcomm.F
144!|| wrcomip ../starter/source/restart/ddsplit/wrcommp.F
145!|| wrcomr ../engine/source/output/restart/wrcomm.F
146!|| write_ale_grid ../common_source/output/restart/write_ale_grid.F90
147!|| write_ale_rezoning_param ../engine/source/output/restart/write_ale_rezoning_param.F90
148!|| wrrestp ../engine/source/output/restart/wrrestp.F
149!||====================================================================
150 MODULE ale_mod
151
152 IMPLICIT NONE
153#include "my_real.inc"
154
155 ! specific buffer for grid formulation 7 (/ALE/GRID/FLOW-TRACKING)
157 my_real :: ep(9) ! L=GRAD V
158 my_real :: ld(6) ! D = 1/2*( L + t(L) ) !strain rate
159 my_real :: lw(3) ! W = 1/2*( L - t(L) ) !rotation
160 my_real :: itm_l(6) ! inertia tensor matrix (Ixx,Iyy,Izz,-Ixy,-Iyz,-Ixz)
161 my_real :: x_min_max(6) ! Xmin,Ymin,Zmin,Xmax,Ymax,Zmax
162 my_real :: x_min_max_grid(6)
163 my_real :: beta0(6)
164 my_real :: cog_l(3) ! mass * X accumulation
165 my_real :: mom_l(3) ! mass * VEL accumulation
166 my_real :: sum_m ! mass accumulation
167 my_real :: sum_vol ! volume accumulation
168 my_real :: ms_elem_mean_0
169 my_real :: eigenvec(3,3)
170 my_real :: ld_norm
171 INTEGER :: num_elem_ale
172 INTEGER :: num_node_ale_l
173 END TYPE flow_tracking_data_
174
175 ! GRID FORMULATION PARAMETERS
177 my_real :: alpha
178 my_real :: gamma
179 my_real :: vgx
180 my_real :: vgy
181 my_real :: vgz
182 my_real :: vgy0
183 my_real :: vgz0
184 INTEGER :: nwale_engine ! read from Engine input file with /ALE/GRID/...
185 INTEGER :: nwale_rst ! read from RESTART FILE
186 INTEGER :: nwale ! effective value used in numerical scheme
187 TYPE(flow_tracking_data_) :: flow_tracking_data
188 END TYPE ale_grid_
189
190 ! UPWIND PARAMETERS
192 my_real :: upwmg
193 my_real :: upwog
194 my_real :: upwsm
195 my_real :: cupwm
196 my_real :: upwmg2
197 my_real :: upwog2
198 my_real :: upwsm2
199 INTEGER :: i_supg_on_off
200 INTEGER :: upwm
201 INTEGER :: upw_update
202 END TYPE ale_upwind_
203
204 !GLOBAL PARAMETERS
206 INTEGER :: nalenovs
207 INTEGER :: icaa
208 INTEGER :: hllc_lowmach
209 INTEGER :: incomp
210 INTEGER :: isfint
211 INTEGER :: i_dt_noda_ale_on
212 INTEGER :: i_dt_noda_ale_on_key
213 INTEGER :: idt_ale
214 LOGICAL :: is_boundary_material
215 INTEGER :: lconv
216 INTEGER :: codv(10)
217 INTEGER :: nvconv
218 INTEGER :: snale
219 INTEGER :: sielvs
220 INTEGER :: is_defined_ale !not needed for RST
221 INTEGER :: is_defined_euler !not needed for RST
222 END TYPE ale_global_
223
224 !ALE SUBCCLING (obsolete)
226 INTEGER :: ialesub
227 INTEGER :: ifsub
228 INTEGER :: ifsubm
229 INTEGER :: nodsubdt
230 my_real :: dt1save
231 my_real :: dtfsub
232 my_real :: dtmsub
233 END TYPE ale_sub_
234
235 !ALE REZONING (variable to rezone)
237 INTEGER :: num_nuvar_mat
238 INTEGER :: num_nuvar_eos
239 END TYPE ale_rezon_
240
241 ! GENERAL DATA STRUCTURE USED IN SOURCE CODE
242 TYPE ale_
243 TYPE(ale_grid_) :: grid
245 TYPE(ale_global_) :: global
246 TYPE(ale_sub_) :: sub
247 TYPE(ale_rezon_) :: rezon
248 contains
249 procedure, pass :: init
250 END TYPE ale_
251
252C-----------------------------------------------
253 TYPE(ale_) :: ale
254C-----------------------------------------------
255
256 CONTAINS
257!||====================================================================
258!|| init ../common_source/modules/ale/ale_mod.F
259!||====================================================================
260 subroutine init(this)
261 !initialization is done : - during Starter before reading Starter input file
262 ! - during Engine before reading Restart file and Engine input file.
263 implicit none
264#include "constant.inc"
265 class(ale_), intent(inout) :: this
266 !---ALE%GRID
267 this%GRID%ALPHA = zero
268 this%GRID%GAMMA = zero
269 this%GRID%VGX = zero
270 this%GRID%VGY = zero
271 this%GRID%VGZ = zero
272 this%GRID%VGY0 = zero
273 this%GRID%VGZ0 = zero
274 this%GRID%NWALE_ENGINE = -1
275 this%GRID%NWALE_RST = 0
276 this%GRID%NWALE = 0
277 this%GRID%flow_tracking_data%EP(1:9) = zero
278 this%GRID%flow_tracking_data%LD(1:6) = zero
279 this%GRID%flow_tracking_data%LW(1:3) = zero
280 this%GRID%flow_tracking_data%MOM_L(1:3) = zero
281 this%GRID%flow_tracking_data%COG_L(1:3) = zero
282 this%GRID%flow_tracking_data%SUM_M = zero
283 !---ALE%UPWIND
284 this%UPWIND%UPWMG = zero
285 this%UPWIND%UPWOG = zero
286 this%UPWIND%UPWSM = zero
287 this%UPWIND%CUPWM = zero
288 this%UPWIND%UPWMG2 = zero
289 this%UPWIND%UPWOG2 = zero
290 this%UPWIND%UPWSM2 = zero
291 this%UPWIND%I_SUPG_ON_OFF = 0
292 this%UPWIND%UPWM = 0
293 this%UPWIND%UPW_UPDATE = 0
294 !---ALE%GLOBAL
295 this%GLOBAL%NALENOVS = 0
296 this%GLOBAL%ICAA = 0
297 this%GLOBAL%HLLC_LOWMACH = 0
298 this%GLOBAL%INCOMP = 0
299 this%GLOBAL%ISFINT = 3
300 this%GLOBAL%I_DT_NODA_ALE_ON = 0
301 this%GLOBAL%I_DT_NODA_ALE_ON_KEY = 0
302 this%GLOBAL%IDT_ALE = 0
303 this%GLOBAL%IS_BOUNDARY_MATERIAL = .false.
304 this%GLOBAL%LCONV = 10
305 this%GLOBAL%CODV(1:10) = 0
306 this%GLOBAL%NVCONV = 0
307 this%GLOBAL%SNALE = 0
308 this%GLOBAL%SIELVS = 0
309 this%GLOBAL%IS_DEFINED_ALE = 0
310 this%GLOBAL%IS_DEFINED_EULER = 0
311 !---ALE%SUB
312 this%SUB%IALESUB = 0
313 this%SUB%IFSUB = 0
314 this%SUB%IFSUBM = 0
315 this%SUB%NODSUBDT = 0
316 this%SUB%DT1SAVE = zero
317 this%SUB%DTFSUB = zero
318 this%SUB%DTMSUB = zero
319 !---ALE%REZON
320 this%REZON%NUM_NUVAR_MAT = 0
321 this%REZON%NUM_NUVAR_EOS = 0
322 end subroutine
323
324 END MODULE ale_mod
325
#define my_real
Definition cppsort.cpp:32
#define alpha
Definition eval.h:35
subroutine init(this)
Definition ale_mod.F:261
type(ale_) ale
Definition ale_mod.F:253
subroutine upwind(rho, vis, vdx, vdy, vdz, r, s, t, deltax, gam, nel)
Definition upwind.F:35