OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
alethe.F File Reference
#include "implicit_f.inc"
#include "mvsiz_p.inc"
#include "com01_c.inc"
#include "com04_c.inc"
#include "param_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine alethe (iparg, elbuf_tab, flux, val2, phi, ale_connect, ixs, ixq, v, w, x, pm, ms, veul, fill, dfill, alph, fv, bufmat, tf, npf, itask, nbrcvois, nbsdvois, lnrcvois, lnsdvois, nercvois, nesdvois, lercvois, lesdvois, segvar, msnf, nodft, nodlt, bhole, ipm, qmv, itab, itabm1, lenqmv, nv46, iad_elem, glob_therm, fr_elem, matparam)

Function/Subroutine Documentation

◆ alethe()

subroutine alethe ( integer, dimension(nparg,ngroup) iparg,
type (elbuf_struct_), dimension(ngroup) elbuf_tab,
flux,
val2,
phi,
type(t_ale_connectivity), intent(in) ale_connect,
integer, dimension(nixs,numels) ixs,
integer, dimension(nixq,numelq) ixq,
v,
w,
x,
pm,
ms,
veul,
fill,
dfill,
alph,
fv,
bufmat,
tf,
integer, dimension(*) npf,
integer itask,
integer, dimension(*) nbrcvois,
integer, dimension(*) nbsdvois,
integer, dimension(*) lnrcvois,
integer, dimension(*) lnsdvois,
integer, dimension(*) nercvois,
integer, dimension(*) nesdvois,
integer, dimension(*) lercvois,
integer, dimension(*) lesdvois,
type(t_segvar) segvar,
msnf,
integer nodft,
integer nodlt,
integer, dimension(*) bhole,
integer, dimension(npropmi,nummat) ipm,
qmv,
integer, dimension(numnod) itab,
integer, dimension(*) itabm1,
integer lenqmv,
integer nv46,
integer, dimension(2, *) iad_elem,
type (glob_therm_), intent(inout) glob_therm,
integer, dimension(*) fr_elem,
type(matparam_struct_), dimension(nummat), intent(in) matparam )
Parameters
[in]matparammaterial buffer

Definition at line 54 of file alethe.F.

68C-----------------------------------------------
69C M o d u l e s
70C-----------------------------------------------
71 USE elbufdef_mod
72 USE i22tri_mod
73 USE segvar_mod
76 USE ale_mod , ONLY : ale
77 USE arezon_mod , ONLY : arezon
78 use glob_therm_mod
79 USE matparam_def_mod, ONLY : matparam_struct_
80C-----------------------------------------------
81C I m p l i c i t T y p e s
82C-----------------------------------------------
83#include "implicit_f.inc"
84C-----------------------------------------------
85C C o m m o n B l o c k s
86C-----------------------------------------------
87#include "mvsiz_p.inc"
88#include "com01_c.inc"
89#include "com04_c.inc"
90#include "param_c.inc"
91C-----------------------------------------------
92C D u m m y A r g u m e n t s
93C-----------------------------------------------
94 TYPE (ELBUF_STRUCT_), DIMENSION(NGROUP) :: ELBUF_TAB
95
96 INTEGER IPARG(NPARG,NGROUP), IXS(NIXS,NUMELS), IXQ(NIXQ,NUMELQ),NPF(*),
97 . ITAB(NUMNOD), ITABM1(*), BHOLE(*),
98 . NBRCVOIS(*),NBSDVOIS(*), LNRCVOIS(*), LNSDVOIS(*),
99 . NERCVOIS(*),NESDVOIS(*),LERCVOIS(*),LESDVOIS(*),IPM(NPROPMI,NUMMAT),
100 . NODFT, NODLT, LENQMV, ITASK, NV46,
101 . IAD_ELEM(2, *), FR_ELEM(*)
102
103 my_real veul, flux(*), val2(*), phi(*), v(*), w(*), x(*), pm(*),
104 . ms(*), fill(*), dfill(*), alph(*), fv(*), bufmat(*), tf(*),
105 . msnf(*),qmv(*)
106
107 TYPE(t_segvar) :: SEGVAR
108 TYPE(t_ale_connectivity), INTENT(IN) :: ALE_CONNECT
109 type (glob_therm_) ,intent(inout) :: glob_therm
110 TYPE(MATPARAM_STRUCT_),DIMENSION(NUMMAT),INTENT(IN) :: MATPARAM !< material buffer
111C-----------------------------------------------
112C L o c a l V a r i a b l e s
113C-----------------------------------------------
114 INTEGER ITRIMAT,NVAR,I, LENCOMN,LENCOM
115 INTEGER :: NVAR_MAT !< number of MAT variable(s) : %VAR(1:NEL, 1:NVAR_MAT)
116 INTEGER :: NVAR_EOS !< number of EoS variable(s) : %VAR(1:NEL, 1:NVAR_EOS)
117 my_real,DIMENSION(:,:),ALLOCATABLE:: flux_sav
118C-----------------------------------------------
119C S o u r c e L i n e s
120C-----------------------------------------------
121 ALLOCATE(flux_sav(nv46,lenqmv))
122 lencomn=nbrcvois(nspmd+1)+nbsdvois(nspmd+1)
123 lencom =nercvois(nspmd+1)+nesdvois(nspmd+1)
124
125C=======================================================================
126C DIFFUSIVE TERMS
127C=======================================================================
128 IF (glob_therm%ITHERM+iturb /= 0) THEN
129 !-------------------------------------!
130 ! SPMD EXCHANGES !
131 !-------------------------------------!
132 IF (nspmd > 1) THEN
133!$OMP SINGLE
134 CALL spmd_xvois(x,nbrcvois,nbsdvois,lnrcvois,lnsdvois,lencomn)
135!$OMP END SINGLE
136 END IF
137 !-----------------------------!
138 ! DIFFUSIVE FLUXES !
139 !-----------------------------!
140 CALL agrad0(iparg,ixs,ixq,x,ale_connect,
141 + flux,veul,elbuf_tab,itask)
142C----------------------
143 CALL my_barrier
144C----------------------
145 IF (glob_therm%ITHERM /= 0) THEN
146 IF(itask == 0) THEN
147 !exchange : SPMD PHI+VAL2 in ATHERM
148
149 CALL atherm(
150 1 iparg, pm, elbuf_tab, flux,
151 2 val2, phi, ale_connect,ixs,
152 3 ixq, fv, x, bufmat,
153 4 tf, npf, nercvois, nesdvois,
154 5 lercvois, lesdvois, lencom, ipm,
155 6 matparam)
156 ENDIF
157C------------------------
158 CALL my_barrier
159C------------------------
160 ENDIF
161 !-----------------------------!
162 ! TURBULENCY !
163 !-----------------------------!
164 IF (iturb /= 0) THEN
165C SPMD exchange : PHI+VAL2
166 CALL akturb(iparg ,elbuf_tab ,flux ,val2 ,phi ,
167 2 ale_connect ,ixs ,ixq ,pm ,itask ,
168 3 nercvois ,nesdvois ,lercvois ,lesdvois ,lencom ,
169 4 matparam)
170 CALL aeturb(iparg ,elbuf_tab ,flux ,val2 ,phi ,
171 2 ale_connect ,ixs ,ixq ,pm ,itask ,
172 3 nercvois ,nesdvois ,lercvois ,lesdvois ,lencom ,
173 4 matparam)
174 ENDIF
175 ENDIF !(ITHERM+ITURB /= 0)
176
177C=======================================================================
178C CONVECTIVE TERM (REYNOLDS TRANSPORTATION THEOREM)
179C=======================================================================
180 IF(iale+ieuler /= 0)THEN
181 !-----------------------------!
182 ! CONVECTIVE FLUXES !
183 ! ZEROING MASSES !
184 !-----------------------------!
185 !zeroing masses for convection
186 ! warning : mass treatment in parith/on is different
187 !EL: SPMD : MS=0 on boundary domains if /= 1 (in resol)
188 IF(n2d == 0)THEN
189 DO i=nodft,nodlt
190 ms(i)=ms(i)-msnf(i) !MS was total mass, it becomes again structural mass. it becomes total mass in RESOL>ASSPAR4 (before calling ACCELE)
191 msnf(i)=zero !MSNF are mass of fluid nodes,
192 ENDDO
193 ENDIF
194 CALL aflux0(iparg ,elbuf_tab,pm ,ixs ,ixq ,
195 . v ,w ,x ,flux ,val2 ,
196 . veul ,fill ,dfill ,phi ,
197 . ale_connect,alph ,itask ,nv46 ,ipm )
198C----------------------
199 CALL my_barrier
200C----------------------
201 !-----------------------------!
202 ! BIMAT (LAW20) !
203 !-----------------------------!
204 IF(n2d /= 0.AND.nmult > 0)THEN
205 CALL bhol2(itask,iparg , pm ,bhole ,ixq )
206C-----------------------
207 CALL my_barrier
208C-----------------------
209 ENDIF
210 !-----------------------------!
211 ! MULTI-MAT (LAW51) !
212 !-----------------------------!
213 itrimat = 0
214 IF (trimat > 0) THEN
215 CALL ale51_init(iparg ,pm ,ixs ,ixq ,
216 2 x ,flux ,val2 ,
217 3 ale_connect ,itask ,
218 4 flux_sav ,qmv ,nv46 ,elbuf_tab)
219 ENDIF
220 !-----------------------------!
221 ! REZONE DEVIATEUR !
222 !-----------------------------!
223 CALL arezon(iparg ,elbuf_tab, flux ,phi ,ale_connect ,
224 2 2 ,1 ,itask ,nercvois,
225 3 nesdvois,lercvois ,lesdvois,lencom ,bhole ,
226 4 itrimat)
227 CALL arezon(iparg ,elbuf_tab,flux ,phi ,ale_connect,
228 2 2 ,2 ,itask ,nercvois ,
229 3 nesdvois,lercvois ,lesdvois,lencom ,bhole ,
230 4 itrimat)
231 CALL arezon(iparg ,elbuf_tab,flux ,phi ,ale_connect,
232 2 2 ,3 ,itask ,nercvois ,
233 3 nesdvois,lercvois ,lesdvois,lencom ,bhole ,
234 4 itrimat)
235 CALL arezon(iparg ,elbuf_tab,flux ,phi ,ale_connect,
236 2 2 ,4 ,itask ,nercvois ,
237 3 nesdvois,lercvois ,lesdvois,lencom ,bhole ,
238 4 itrimat)
239 CALL arezon(iparg ,elbuf_tab,flux ,phi ,ale_connect,
240 2 2 ,5 ,itask ,nercvois ,
241 3 nesdvois,lercvois ,lesdvois,lencom ,bhole ,
242 4 itrimat)
243 CALL arezon(iparg ,elbuf_tab,flux ,phi ,ale_connect,
244 2 2 ,6 ,itask ,nercvois ,
245 3 nesdvois,lercvois ,lesdvois,lencom ,bhole ,
246 4 itrimat)
247 !------------------------------!
248 ! REZONING : EPS_PLAS !
249 !------------------------------!
250 CALL arezon(iparg ,elbuf_tab,flux ,phi ,ale_connect,
251 2 10 ,1 ,itask ,nercvois ,
252 3 nesdvois,lercvois ,lesdvois,lencom,bhole ,
253 4 itrimat)
254 !-------------------------------!
255 ! REZONING : %VAR (MAT/EOS) !
256 !-------------------------------!
257 DO i = 1,ale%REZON%NUM_NUVAR_MAT
258 CALL arezon(iparg ,elbuf_tab,flux ,phi ,ale_connect,
259 2 11 ,i ,itask ,nercvois ,
260 3 nesdvois,lercvois ,lesdvois,lencom ,bhole ,
261 4 itrimat,1) ! OPT_FALG_MAT_EOS = 1 : rezoning for material laws
262 ENDDO
263 DO i = 1,ale%REZON%NUM_NUVAR_EOS
264 CALL arezon(iparg ,elbuf_tab,flux ,phi ,ale_connect,
265 2 11 ,i ,itask ,nercvois ,
266 3 nesdvois,lercvois ,lesdvois,lencom ,bhole ,
267 4 itrimat,2) ! OPT_FALG_MAT_EOS = 2 : rezoning for EoS
268 ENDDO
269
270 !------------------------------!
271 ! REZONING : TEMPERATURE !
272 !------------------------------!
273 CALL arezon(iparg ,elbuf_tab,flux ,phi ,ale_connect,
274 2 12 ,1 ,itask ,nercvois ,
275 3 nesdvois,lercvois ,lesdvois,lencom,bhole ,
276 4 itrimat)
277C-----------------------------
278C MASS & ENERGY CONVECTION
279C-----------------------------
280 DO nvar=ale%GLOBAL%LCONV,1,-1
281 !1 : Mass
282 !2 : Energy
283 !3,4 : Turbulency
284 !5 : law37 massic fraction
285 !6,7,8 : MomX, MomY, MomZ (ALE with Full FVM)
286 IF((nvar /= 9.AND.ale%GLOBAL%CODV(nvar) /= 0))THEN
287 CALL aconve(
288 1 iparg ,elbuf_tab ,flux , val2 ,phi ,
289 2 ale_connect ,nvar ,itask , nercvois ,nesdvois,
290 3 lercvois ,lesdvois ,lencom , segvar ,bhole ,
291 4 itrimat ,qmv ,0 , ixs ,ixq ,
292 5 pm ,x)
293 ENDIF
294
295 ENDDO
296C----------------------
297 !-----------------------------!
298 ! LAW51 : !
299 ! SUBMATERIAL TREATMENT !
300 !-----------------------------!
301 IF (trimat > 0 .AND. alemuscl_param%IALEMUSCL > 0) THEN
302 IF (n2d == 0) THEN
303 CALL ale51_gradient_reconstruction(iparg, elbuf_tab, ixs, x, ale_connect,
304 . nercvois,nesdvois, lercvois,lesdvois,lencom, itask,
305 . iad_elem, fr_elem, segvar)
306 ELSE
307 CALL ale51_gradient_reconstruction2(iparg, elbuf_tab, ixq, x, ale_connect,
308 . nv46,nercvois,nesdvois, lercvois,lesdvois,lencom, itask,
309 . iad_elem, fr_elem, segvar)
310 ENDIF
311 ENDIF
312
313 DO itrimat = 1,trimat
314 CALL afluxt(iparg ,elbuf_tab ,pm ,ixs ,ixq,
315 2 x ,flux ,val2 ,
316 3 phi ,ale_connect,itask ,
317 4 itrimat ,flux_sav ,nercvois,nesdvois ,
318 5 lercvois,lesdvois ,lencom ,qmv ,itab ,
319 6 itabm1 ,nv46 ,segvar)
320 !-----------------------------!
321 ! LAW51 REZONING : !
322 ! DEVIATORIC STRESS !
323 !-----------------------------!
324 IF(itrimat /= 4 ) THEN
325 CALL arezon(iparg ,elbuf_tab,flux ,phi ,ale_connect,
326 2 2 ,1 ,itask ,nercvois ,
327 3 nesdvois,lercvois ,lesdvois,lencom,bhole ,
328 4 itrimat)
329 CALL arezon(iparg ,elbuf_tab,flux ,phi ,ale_connect,
330 2 2 ,2 ,itask ,nercvois ,
331 3 nesdvois,lercvois ,lesdvois,lencom,bhole ,
332 4 itrimat)
333 CALL arezon(iparg ,elbuf_tab,flux ,phi ,ale_connect,
334 2 2 ,3 ,itask ,nercvois ,
335 3 nesdvois,lercvois ,lesdvois,lencom,bhole ,
336 4 itrimat)
337 CALL arezon(iparg ,elbuf_tab,flux ,phi ,ale_connect,
338 2 2 ,4 ,itask ,nercvois ,
339 3 nesdvois,lercvois ,lesdvois,lencom,bhole ,
340 4 itrimat)
341 CALL arezon(iparg ,elbuf_tab,flux ,phi ,ale_connect,
342 2 2 ,5 ,itask ,nercvois ,
343 3 nesdvois,lercvois ,lesdvois,lencom,bhole ,
344 4 itrimat)
345 CALL arezon(iparg ,elbuf_tab,flux ,phi ,ale_connect,
346 2 2 ,6 ,itask ,nercvois ,
347 3 nesdvois,lercvois ,lesdvois,lencom,bhole ,
348 4 itrimat)
349 ENDIF
350 !-----------------------------!
351 ! LAW51 REZONING : !
352 ! EPS_PLAS !
353 ! or/and DETONATION TIMES!
354 !-----------------------------!
355 CALL arezon(iparg ,elbuf_tab,flux ,phi ,ale_connect ,
356 2 10 ,1 ,itask ,nercvois,
357 3 nesdvois,lercvois,lesdvois,lencom ,bhole ,
358 4 itrimat)
359 !-----------------------------!
360 ! LAW51 REZONING : !
361 ! TEMPERATURE !
362 !-----------------------------!
363 CALL arezon(iparg ,elbuf_tab,flux ,phi ,ale_connect,
364 2 12 ,1 ,itask ,nercvois,
365 3 nesdvois,lercvois,lesdvois,lencom ,bhole ,
366 4 itrimat)
367 !-----------------------------!
368 ! LAW51 : !
369 ! EINT CONVECTION !
370 !-----------------------------!
371 CALL aconve(iparg ,elbuf_tab,flux ,val2 ,phi ,
372 2 ale_connect ,2 ,itask ,nercvois,nesdvois,
373 3 lercvois ,lesdvois ,lencom,segvar ,bhole ,
374 4 itrimat ,qmv ,0 ,ixs ,ixq ,
375 5 pm ,x )
376 !-----------------------------!
377 ! LAW51 : !
378 ! MASS CONVECTION !
379 !-----------------------------!
380 CALL aconve(iparg ,elbuf_tab,flux ,val2 ,phi ,
381 2 ale_connect ,1 ,itask ,nercvois,nesdvois,
382 3 lercvois ,lesdvois ,lencom,segvar ,bhole ,
383 4 itrimat ,qmv ,1 ,ixs ,ixq ,
384 5 pm ,x )
385 enddo!next ITRIMAT
386 !-----------------------------!
387 IF (trimat > 0) THEN
388 CALL ale51_finish(iparg,pm ,ixs ,ixq,
389 . x ,flux ,val2 ,phi ,ale_connect ,itask,flux_sav,qmv ,nv46,elbuf_tab )
390 ENDIF
391C----------------------
392 ENDIF
393
394 IF(itask==0) DEALLOCATE(flux_sav)
395 RETURN
subroutine aconve(iparg, elbuf_tab, flux, flu1, phi, ale_connect, nvar, itask, nercvois, nesdvois, lercvois, lesdvois, lencom, segvar, bhole, itrimat, qmv, iflg, ixs, ixq, pm, x)
Definition aconve.F:54
subroutine aeturb(iparg, elbuf_tab, flux, val2, xe, ale_connect, ixs, ixq, pm, itask, nercvois, nesdvois, lercvois, lesdvois, lencom, matparam)
Definition aeturb.F:44
subroutine aflux0(iparg, elbuf_str, pm, ixs, ixq, v, w, x, flux, flu2, veul, fill, dfill, vol, ale_connect, alph, itask, nv46, ipm)
Definition aflux0.F:50
subroutine afluxt(iparg, elbuf_tab, pm, ixs, ixq, x, flux, flu2, alpha, ale_connect, itask, itrimat, flux_sav, nercvois, nesdvois, lercvois, lesdvois, lencom, qmv, itab, itabm1, nv46, segvar)
Definition afluxt.F:62
subroutine agrad0(iparg, ixs, ixq, x, ale_connect, grad, veul, elbuf_str, itask)
Definition agrad0.F:41
subroutine akturb(iparg, elbuf_tab, flux, val2, xk, ale_connect, ixs, ixq, pm, itask, nercvois, nesdvois, lercvois, lesdvois, lencom, matparam)
Definition akturb.F:44
subroutine ale51_finish(iparg, pm, ixs, ixq, x, flux, flu2, alpha, ale_connect, itask, flux_sav, qmv, nv46, elbuf_tab)
subroutine ale51_gradient_reconstruction2(iparg, elbuf_tab, ixq, x, ale_connect, nv46, nercvois, nesdvois, lercvois, lesdvois, lencom, itask, iad_elem, fr_elem, segvar)
subroutine ale51_gradient_reconstruction(iparg, elbuf_tab, ixs, x, ale_connect, nercvois, nesdvois, lercvois, lesdvois, lencom, itask, iad_elem, fr_elem, segvar)
subroutine ale51_init(iparg, pm, ixs, ixq, x, flux, flu2, ale_connect, itask, flux_sav, qmv, nv46, elbuf_tab)
Definition ale51_init.F:44
subroutine atherm(iparg, pm, elbuf_tab, flux, val2, t, ale_connect, ixs, ixq, fv, x, bufmat, tf, npf, nercvois, nesdvois, lercvois, lesdvois, lencom, ipm, matparam)
Definition atherm.F:51
subroutine bhol2(itask, iparg, pm, bhole, ixq)
Definition bhol2.F:29
#define my_real
Definition cppsort.cpp:32
type(ale_) ale
Definition ale_mod.F:249
type(alemuscl_param_) alemuscl_param
subroutine arezon(iparg, elbuf_str, flux, phi, ale_connect, nvar, nv, itask, nercvois, nesdvois, lercvois, lesdvois, lencom, bhole, itrimat, opt_flag_mat_eos)
Definition arezon.F:54
integer function nvar(text)
Definition nvar.F:32
subroutine spmd_xvois(x, nbrcvois, nbsdvois, lnrcvois, lnsdvois, lencom)
Definition spmd_cfd.F:40
subroutine my_barrier
Definition machine.F:31