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 ../engine/source/boundary_conditions/ebcs/ebcs10.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_compaction_tab ../starter/source/materials/eos/hm_read_eos_compaction_tab.F90
72!|| hm_read_inter_type02 ../starter/source/interfaces/int02/hm_read_inter_type02.F
73!|| hm_read_mat11 ../starter/source/materials/mat/mat011/hm_read_mat11.F
74!|| hm_read_mat11_k_eps ../starter/source/materials/mat/mat011/hm_read_mat11_k_eps.F
75!|| hm_read_mat51 ../starter/source/materials/mat/mat051/hm_read_mat51.F
76!|| hm_read_part ../starter/source/model/assembling/hm_read_part.F
77!|| hm_read_prop14 ../starter/source/properties/solid/hm_read_prop14.F
78!|| hm_read_prop14f ../starter/source/properties/solid/hm_read_prop14.F
79!|| hm_read_prop15 ../starter/source/properties/solid/hm_read_prop15.F
80!|| hm_read_properties ../starter/source/properties/hm_read_properties.F
81!|| i12m2s ../engine/source/interfaces/interf/i12m2s.F
82!|| i12nod3 ../engine/source/interfaces/interf/i12nod3.F
83!|| i12s2m ../engine/source/interfaces/interf/i12s2m.F
84!|| ig3dgrtails ../starter/source/elements/ige3d/ig3dgrtails.F
85!|| ig3dmass3 ../starter/source/elements/ige3d/ig3dmass3.F
86!|| ingrbric_nodes ../starter/source/interfaces/interf1/ingrbric_nodes.F
87!|| iniresa ../engine/source/output/restart/rdresa.F
88!|| intti12a ../engine/source/interfaces/interf/intti12.F
89!|| lecint ../starter/source/interfaces/interf1/lecint.F
90!|| lectur ../engine/source/input/lectur.F
91!|| m46law ../engine/source/materials/mat/mat046/m46law.F
92!|| manctr ../engine/source/input/manctr.F
93!|| matparam_def_mod ../common_source/modules/mat_elem/matparam_def_mod.F90
94!|| meint ../engine/source/materials/mat_share/meint.F
95!|| mmain ../engine/source/materials/mat_share/mmain.F90
96!|| mqviscb ../engine/source/materials/mat_share/mqviscb.F
97!|| qdlen2 ../engine/source/elements/solid_2d/quad/qdlen2.F
98!|| qforc2 ../engine/source/elements/solid_2d/quad/qforc2.F
99!|| qgrtails ../starter/source/elements/solid_2d/quad/qgrtails.F
100!|| qhvis2 ../engine/source/elements/solid_2d/quad/qhvis2.F
101!|| qmasi2 ../starter/source/elements/solid_2d/quad/qmasi2.F
102!|| qmasi2b ../starter/source/elements/solid_2d/quad/qmasi2b.F
103!|| r2r_split ../starter/source/coupling/rad2rad/r2r_split.F
104!|| r_bufbric_22 ../engine/source/interfaces/int22/r_bufbric_22.F
105!|| radioss2 ../engine/source/engine/radioss2.F
106!|| rdcomi ../engine/source/output/restart/rdcomm.F
107!|| rdcomr ../engine/source/output/restart/rdcomm.F
108!|| rdresb ../engine/source/output/restart/rdresb.F
109!|| read_ale_grid ../engine/source/output/restart/read_ale_grid.F90
110!|| read_ale_rezoning_param ../engine/source/output/restart/read_ale_rezoning_param.F90
111!|| resol ../engine/source/engine/resol.F
112!|| restalloc ../engine/source/output/restart/arralloc.F
113!|| s4forc3 ../engine/source/elements/solid/solide4/s4forc3.F
114!|| s4mass3 ../starter/source/elements/solid/solide4/s4mass3.F
115!|| sdlen3 ../engine/source/elements/solid/solide/sdlen3.F
116!|| seggetv ../engine/source/interfaces/interf/seggetv.F
117!|| segvar_create ../engine/share/modules/segvar_mod.F
118!|| sfint3 ../engine/source/elements/solid/solide/sfint3.F
119!|| sforc3 ../engine/source/elements/solid/solide/sforc3.F
120!|| sgrtails ../starter/source/elements/solid/solide/sgrtails.F
121!|| shvis3 ../engine/source/elements/solid/solide/shvis3.F
122!|| sigeps46 ../engine/source/materials/mat/mat046/sigeps46.F
123!|| smass3 ../starter/source/elements/solid/solide/smass3.F
124!|| smass3b ../starter/source/elements/solid/solid8p/smass3b.F
125!|| spmd_exch_flow_tracking_data ../engine/source/ale/grid/spmd_exch_flow_tracking_data.F90
126!|| spmd_exch_flow_tracking_data2 ../engine/source/ale/grid/spmd_exch_flow_tracking_data2.F90
127!|| spmd_exch_flow_tracking_data3 ../engine/source/ale/grid/spmd_exch_flow_tracking_data3.F90
128!|| spmd_exch_flow_tracking_data4 ../engine/source/ale/grid/spmd_exch_flow_tracking_data4.F90
129!|| spmd_sd_xv ../engine/source/mpi/nodes/spmd_sd_xv.F
130!|| spmd_segcom ../engine/source/mpi/fluid/spmd_cfd.F
131!|| srho3 ../engine/source/elements/solid/solide/srho3.F
132!|| st_qaprint_ale_options_driver ../starter/source/output/qaprint/st_qaprint_ale_options_driver.F
133!|| st_qaprint_general_controls ../starter/source/output/qaprint/st_qaprint_general_controls.F
134!|| starter0 ../starter/source/starter/starter0.F
135!|| sz_print ../engine/source/output/restart/arralloc.F
136!|| szforc3 ../engine/source/elements/solid/solidez/szforc3.f
137!|| t3grtails ../starter/source/elements/solid_2d/tria/t3grtails.F
138!|| upwind ../engine/source/elements/solid/solide/upwind.F
139!|| upwind4 ../engine/source/elements/solid/solide4/upwind4.F
140!|| upwind_v ../engine/source/elements/solid/solide/upwind_v.F
141!|| varcondec ../engine/source/interfaces/interf/varcondec.F
142!|| wrcomi ../engine/source/output/restart/wrcomm.F
143!|| wrcomip ../starter/source/restart/ddsplit/wrcommp.F
144!|| wrcomr ../engine/source/output/restart/wrcomm.F
145!|| write_ale_grid ../common_source/output/restart/write_ale_grid.F90
146!|| write_ale_rezoning_param ../engine/source/output/restart/write_ale_rezoning_param.F90
147!|| wrrestp ../engine/source/output/restart/wrrestp.F
148!||====================================================================
149 MODULE ale_mod
150
151 IMPLICIT NONE
152#include "my_real.inc"
153
154 ! specific buffer for grid formulation 7 (/ALE/GRID/FLOW-TRACKING)
156 my_real :: ep(9) ! L=GRAD V
157 my_real :: ld(6) ! D = 1/2*( L + t(L) ) !strain rate
158 my_real :: lw(3) ! W = 1/2*( L - t(L) ) !rotation
159 my_real :: itm_l(6) ! inertia tensor matrix (Ixx,Iyy,Izz,-Ixy,-Iyz,-Ixz)
160 my_real :: x_min_max(6) ! xmin,ymin,zmin,xmax,ymax,zmax
161 my_real :: x_min_max_grid(6)
162 my_real :: beta0(6)
163 my_real :: cog_l(3) ! mass * x accumulation
164 my_real :: mom_l(3) ! mass * VEL accumulation
165 my_real :: sum_m ! mass accumulation
166 my_real :: sum_vol ! volume accumulation
167 my_real :: ms_elem_mean_0
168 my_real :: eigenvec(3,3)
169 my_real :: ld_norm
170 INTEGER :: num_elem_ale
171 INTEGER :: num_node_ale_l
172 END TYPE flow_tracking_data_
173
174 ! GRID FORMULATION PARAMETERS
177 my_real gamma
178 my_real vgx
179 my_real vgy
180 my_real vgz
181 my_real vgy0
182 my_real vgz0
183 INTEGER nwale_engine ! read from Engine input file with /ALE/GRID/...
184 INTEGER nwale_rst ! read from RESTART FILE
185 INTEGER nwale ! effective value used in numerical scheme
186 TYPE(flow_tracking_data_) flow_tracking_data
187 END TYPE ale_grid_
188
189 ! UPWIND PARAMETERS
191 my_real upwmg
192 my_real upwog
193 my_real upwsm
194 my_real cupwm
195 my_real upwmg2
196 my_real upwog2
197 my_real upwsm2
198 INTEGER i_supg_on_off
199 INTEGER upwm
200 INTEGER upw_update
201 END TYPE ale_upwind_
202
203 !GLOBAL PARAMETERS
205 INTEGER nalenovs
206 INTEGER ICAA
207 INTEGER incomp
208 INTEGER isfint
209 INTEGER i_dt_noda_ale_on
210 INTEGER i_dt_noda_ale_on_key
211 INTEGER idt_ale
212 LOGICAL IS_BOUNDARY_MATERIAL
213 INTEGER lconv
214 INTEGER codv(10)
215 INTEGER nvconv
216 INTEGER snale
217 INTEGER sielvs
218 END TYPE ale_global_
219
220 !ALE SUBCCLING (obsolete)
222 INTEGER ialesub
223 INTEGER ifsub
224 INTEGER ifsubm
225 INTEGER nodsubdt
226 my_real dt1save
227 my_real dtfsub
228 my_real dtmsub
229 END TYPE ale_sub_
230
231 !ALE REZONING (variable to rezone)
233 INTEGER :: num_nuvar_mat
234 INTEGER :: num_nuvar_eos
235 END TYPE ale_rezon_
236
237 ! GENERAL DATA STRUCTURE USED IN SOURCE CODE
238 TYPE ale_
239 TYPE(ale_grid_) :: grid
241 TYPE(ale_global_) :: global
242 TYPE(ale_sub_) :: sub
243 TYPE(ale_rezon_) :: rezon
244 contains
245 procedure, pass :: init
246 END TYPE ale_
247
248C-----------------------------------------------
249 TYPE(ale_) :: ale
250C-----------------------------------------------
251
252 CONTAINS
253!||====================================================================
254!|| init ../common_source/modules/ale/ale_mod.F
255!||====================================================================
256 subroutine init(this)
257 !initialization is done : - during Starter before reading Starter input file
258 ! - during Engine before reading Restart file and Engine input file.
259 implicit none
260#include "constant.inc"
261 class(ALE_), intent(inout) :: this
262 !---ALE%GRID
263 this%GRID%ALPHA = zero
264 this%GRID%GAMMA = zero
265 this%GRID%VGX = zero
266 this%GRID%VGY = zero
267 this%GRID%VGZ = zero
268 this%GRID%VGY0 = zero
269 this%GRID%VGZ0 = zero
270 this%GRID%NWALE_ENGINE = -1
271 this%GRID%NWALE_RST = 0
272 this%GRID%NWALE = 0
273 this%GRID%flow_tracking_data%EP(1:9) = zero
274 this%GRID%flow_tracking_data%LD(1:6) = zero
275 this%GRID%flow_tracking_data%LW(1:3) = zero
276 this%GRID%flow_tracking_data%MOM_L(1:3) = zero
277 this%GRID%flow_tracking_data%COG_L(1:3) = zero
278 this%GRID%flow_tracking_data%SUM_M = zero
279 !---ALE%UPWIND
280 this%UPWIND%UPWMG = zero
281 this%UPWIND%UPWOG = zero
282 this%UPWIND%UPWSM = zero
283 this%UPWIND%CUPWM = zero
284 this%UPWIND%UPWMG2 = zero
285 this%UPWIND%UPWOG2 = zero
286 this%UPWIND%UPWSM2 = zero
287 this%UPWIND%I_SUPG_ON_OFF = 0
288 this%UPWIND%UPWM = 0
289 this%UPWIND%UPW_UPDATE = 0
290 !---ALE%GLOBAL
291 this%GLOBAL%NALENOVS = 0
292 this%GLOBAL%ICAA = 0
293 this%GLOBAL%INCOMP = 0
294 this%GLOBAL%ISFINT = 3
295 this%GLOBAL%I_DT_NODA_ALE_ON = 0
296 this%GLOBAL%I_DT_NODA_ALE_ON_KEY = 0
297 this%GLOBAL%IDT_ALE = 0
298 this%GLOBAL%IS_BOUNDARY_MATERIAL = .false.
299 this%GLOBAL%LCONV = 10
300 this%GLOBAL%CODV(1:10) = 0
301 this%GLOBAL%NVCONV = 0
302 this%GLOBAL%SNALE = 0
303 this%GLOBAL%SIELVS = 0
304 !---ALE%SUB
305 this%SUB%IALESUB = 0
306 this%SUB%IFSUB = 0
307 this%SUB%IFSUBM = 0
308 this%SUB%NODSUBDT = 0
309 this%SUB%DT1SAVE = zero
310 this%SUB%DTFSUB = zero
311 this%SUB%DTMSUB = zero
312 !---ALE%REZON
313 this%REZON%NUM_NUVAR_MAT = 0
314 this%REZON%NUM_NUVAR_EOS = 0
315 end subroutine
316
317 END MODULE ale_mod
318
#define my_real
Definition cppsort.cpp:32
#define alpha
Definition eval.h:35
subroutine ymax(idn, fac, npc, pld, stiffmin, stiffmax, stiffini, stiffavg)
Definition law100_upd.F:272
subroutine init(this)
Definition ale_mod.F:257
type(ale_) ale
Definition ale_mod.F:249
subroutine szforc3(timers, elbuf_tab, ng, pm, geo, ixs, x, a, v, ms, w, flux, flu1, veul, fv, ale_connect, iparg, tf, npf, bufmat, partsav, dt2t, neltst, ityptst, stifn, fsky, iads, offset, eani, iparts, icp, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, f15, f25, f35, f16, f26, f36, f17, f27, f37, f18, f28, f38, nel, fskym, msnf, nvc, ipm, itask, qmv, istrain, imatvis, temp, fthe, fthesky, iexpan, gresav, grth, igrth, mssa, dmels, table, igeo, xdp, condn, condnsky, d, tagprt_sms, sensors, ioutprt, nale, nloc_dmg, mat_elem, h3d_strain, dt, output, nsvois, sz_bufvois, snpc, stf, sbufmat, svis, iresp, maxfunc, userl_avail, glob_therm, impl_s, idyna)
Definition szforc3.F:124
subroutine upwind(rho, vis, vdx, vdy, vdz, r, s, t, deltax, gam, nel)
Definition upwind.F:35