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