OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
aflux0.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!|| aflux0 ../engine/source/ale/aflux0.F
25!||--- called by ------------------------------------------------------
26!|| alethe ../engine/source/ale/alethe.F
27!||--- calls -----------------------------------------------------
28!|| a4flux3 ../engine/source/ale/ale3d/a4flux3.F
29!|| aflux2 ../engine/source/ale/ale2d/aflux2.F
30!|| aflux3 ../engine/source/ale/ale3d/aflux3.F
31!|| aflux3_int22_fvm ../engine/source/ale/alefvm/cut_cells/aflux3_int22_fvm.F
32!|| alefvm_aflux3 ../engine/source/ale/alefvm/alefvm_aflux3.F
33!|| alefvm_eflux3 ../engine/source/ale/alefvm/alefvm_eflux3.f
34!|| eflux2 ../engine/source/ale/euler2d/eflux2.F
35!|| eflux3 ../engine/source/ale/euler3d/eflux3.F
36!|| eflux3_int22_fvm ../engine/source/ale/alefvm/cut_cells/eflux3_int22_fvm.f
37!|| initbuf ../engine/share/resol/initbuf.F
38!|| my_barrier ../engine/source/system/machine.F
39!||--- uses -----------------------------------------------------
40!|| ale_connectivity_mod ../common_source/modules/ale/ale_connectivity_mod.F
41!|| alefvm_mod ../common_source/modules/ale/alefvm_mod.F
42!|| elbufdef_mod ../common_source/modules/mat_elem/elbufdef_mod.F90
43!|| element_mod ../common_source/modules/elements/element_mod.F90
44!|| i22tri_mod ../common_source/modules/interfaces/cut-cell-search_mod.F
45!|| initbuf_mod ../engine/share/resol/initbuf.F
46!||====================================================================
47 SUBROUTINE aflux0(IPARG ,ELBUF_STR ,PM ,IXS ,IXQ ,
48 . V ,W ,X ,FLUX ,FLU2 ,
49 . VEUL ,FILL ,DFILL ,VOL ,
50 . ALE_CONNECT ,ALPH ,ITASK ,NV46 ,IPM )
51C-----------------------------------------------
52C M o d u l e s
53C-----------------------------------------------
54 USE initbuf_mod
55 USE elbufdef_mod
56 USE i22tri_mod
58 USE alefvm_mod , only:alefvm_param
59 use element_mod , only : nixs
60C-----------------------------------------------
61C I m p l i c i t T y p e s
62C-----------------------------------------------
63#include "implicit_f.inc"
64C-----------------------------------------------
65C C o m m o n B l o c k s
66C-----------------------------------------------
67#include "com01_c.inc"
68#include "com04_c.inc"
69#include "com08_c.inc"
70#include "vect01_c.inc"
71#include "param_c.inc"
72#include "task_c.inc"
73#include "inter22.inc"
74C-----------------------------------------------
75C D u m m y A r g u m e n t s
76C-----------------------------------------------
77 my_real pm, v, w, x
78 INTEGER IPARG(NPARG,NGROUP), IXS(NIXS,NUMELS), IXQ(7,NUMELQ), IPM(NPROPMI,NUMMAT)
79 INTEGER ITASK,NV46
80 my_real flux(*), flu2(*), veul(*), fill(numnod,*),dfill(numnod,*), vol(*), alph(2,*)
81 TYPE (ELBUF_STRUCT_), DIMENSION(NGROUP), TARGET :: ELBUF_STR
82 TYPE(t_ale_connectivity), INTENT(IN) :: ALE_CONNECT
83C-----------------------------------------------
84C L o c a l V a r i a b l e s
85C-----------------------------------------------
86 INTEGER NG, I, NF1,ISOLNOD,NSG,NEL
87 my_real UDT
88 TYPE(G_BUFEL_) ,POINTER :: GBUF
89 TYPE(l_bufel_) ,POINTER :: LBUF1,LBUF2
90C-----------------------------------------------
91C S o u r c e L i n e s
92C-----------------------------------------------
93 IF(itask == 0) THEN
94 IF (nmult /= 0) THEN
95 DO ng=1,ngroup
96C ALE ON / OFF
97 IF (iparg(76, ng) == 1) cycle ! --> OFF
98 CALL initbuf(iparg ,ng ,
99 2 mtn ,llt ,nft ,iad ,ity ,
100 3 npt ,jale ,ismstr ,jeul ,jtur ,
101 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
102 5 nvaux ,jpor ,jcvt ,jclose ,jplasol ,
103 6 irep ,iint ,igtyp ,israt ,isrot ,
104 7 icsen ,isorth ,isorthg ,ifailure,jsms )
105 IF (jmult == 0) cycle
106 gbuf => elbuf_str(ng)%GBUF
107 lbuf1 => elbuf_str(ng)%BUFLY(1)%LBUF(1,1,1)
108 lbuf2 => elbuf_str(ng)%BUFLY(2)%LBUF(1,1,1)
109 lft=1
110 IF (dt1 > zero)THEN
111 udt=one/dt1
112 ELSE
113 udt=zero
114 ENDIF
115 DO i=lft,llt
116 alph(1,i+nft)=lbuf1%FRAC(i)
117 alph(2,i+nft)=lbuf2%FRAC(i)
118 vol(i+nft)=gbuf%VOL(i)*udt
119 ENDDO
120 ENDDO
121c
122 ENDIF
123 ENDIF
124C--------------------
125 CALL my_barrier
126C--------------------
127 DO ng=itask+1,ngroup,nthread
128C ALE ON / OFF
129 IF (iparg(76, ng) == 1) cycle ! --> OFF
130 CALL initbuf(iparg ,ng ,
131 2 mtn ,llt ,nft ,iad ,ity ,
132 3 npt ,jale ,ismstr ,jeul ,jtur ,
133 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
134 5 nvaux ,jpor ,jcvt ,jclose ,jplasol ,
135 6 irep ,iint ,igtyp ,israt ,isrot ,
136 7 icsen ,isorth ,isorthg ,ifailure,jsms )
137 IF (jale+jeul == 0) cycle
138 IF (iparg(8,ng) == 1) cycle
139 gbuf => elbuf_str(ng)%GBUF
140 nsg = iparg(10,ng)
141 isolnod = iparg(28,ng)
142 lft=1
143 nf1=nft+1
144 nel = llt
145c
146 IF(n2d == 0.AND.jeul == 0.AND. isolnod == 4)THEN
147 CALL a4flux3(pm,ixs,v,w,x,flux(6*nft+1),flu2(nf1),ale_connect)
148 ELSEIF(n2d == 0.AND.jeul == 0)THEN
149 IF(alefvm_param%IEnabled==0)THEN
150 CALL aflux3(pm,ixs,v,w,x,flux(6*nft+1),flu2(nf1),ale_connect,nsg,gbuf%TAG22)
151 ELSE
152 CALL alefvm_aflux3(pm ,ixs ,w ,flux(6*nft+1),
153 2 flu2(nf1),ale_connect,
154 3 ipm ,nv46 ,x ,
155 4 nel )
156 ENDIF
157 ELSEIF(n2d /= 0.AND.jeul == 0)THEN
158 CALL aflux2(pm,ixq,v,w,x,
159 . flux(4*nft+1),flu2(nf1),
160 . fill,dfill,vol,ale_connect,alph)
161 ELSEIF(n2d == 0.AND.jeul /= 0)THEN
162 IF(alefvm_param%IEnabled==0)THEN
163 CALL eflux3(pm,ixs,v,flux(6*nft+1),flu2(nf1),veul,ale_connect,gbuf%TAG22)
164 ELSE
165 CALL alefvm_eflux3(pm ,ixs ,flux(6*nft+1), flu2(nf1),
166 2 veul ,ale_connect ,ipm ,
167 3 nv46 ,x ,nel )
168 ENDIF
169 ELSEIF(n2d /= 0.AND.jeul /= 0)THEN
170 CALL eflux2(pm,ixq,v,x,flux(4*nft+1),flu2(nf1),fill,dfill,vol,ale_connect,alph)
171 ENDIF
172 ENDDO
173
174C-----------
175 CALL my_barrier
176C-----------
177
178 IF(int22 > 0)THEN
179 IF(i22_aleul == 2)THEN
180 CALL eflux3_int22_fvm(
181 . pm , ixs , flux(1) , flu2(1) ,
182 . iparg , elbuf_str , itask ,
183 . nv46 , ipm , x)
184 ELSE
185 CALL aflux3_int22_fvm(
186 . pm , ixs , flux(1) , flu2(1) ,
187 . iparg , elbuf_str , itask ,
188 . nv46 , ipm , x , w)
189 ENDIF
190 ENDIF
191
192C-----------
193 CALL my_barrier
194C-----------
195
196 RETURN
197 END SUBROUTINE aflux0
subroutine a4flux3(pm, ixs, v, w, x, flux, flu1, ale_connect)
Definition a4flux3.F:32
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:51
subroutine aflux2(pm, ixq, v, w, x, flux, flu1, fill, dfill, vol, ale_connect, alph)
Definition aflux2.F:36
subroutine aflux3(pm, ixs, v, w, x, flux, flu1, ale_connect, nsg, tag22)
Definition aflux3.F:33
subroutine aflux3_int22_fvm(pm, ixs, flux, flu1, iparg, elbuf_tab, itask, nv46, ipm, x, w)
subroutine alefvm_aflux3(pm, ixs, w, flux, flu1, ale_connect, ipm, nv46, x, nel)
subroutine alefvm_eflux3(pm, ixs, flux, flu1, veul, ale_connect, ipm, nv46, x, nel)
#define my_real
Definition cppsort.cpp:32
subroutine eflux2(pm, ixq, v, x, flux, flu1, fill, dfill, vol, ale_connect, alph)
Definition eflux2.F:35
subroutine eflux3(pm, ixs, v, flux, flu1, veul, ale_connect, tag22)
Definition eflux3.F:33
subroutine eflux3_int22_fvm(pm, ixs, flux, flu1, iparg, elbuf_tab, itask, nv46, ipm, x)
type(alefvm_param_), target alefvm_param
Definition alefvm_mod.F:121
subroutine initbuf(iparg, ng, mtn, llt, nft, iad, ity, npt, jale, ismstr, jeul, jtur, jthe, jlag, jmult, jhbe, jivf, mid, jpor, jcvt, jclose, jpla, irep, iint, igtyp, israt, isrot, icsen, isorth, isorthg, ifailure, jsms)
Definition initbuf.F:261
subroutine my_barrier
Definition machine.F:31