OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
aflux2.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!|| aflux2 ../engine/source/ale/ale2d/aflux2.f
25!||--- called by ------------------------------------------------------
26!|| aflux0 ../engine/source/ale/aflux0.F
27!||--- calls -----------------------------------------------------
28!|| amulf2 ../engine/source/ale/bimat/amulf2.F
29!||--- uses -----------------------------------------------------
30!|| ale_connectivity_mod ../common_source/modules/ale/ale_connectivity_mod.f
31!||====================================================================
32 SUBROUTINE aflux2(PM ,IXQ ,V ,W ,X ,
33 . FLUX ,FLU1 ,FILL ,DFILL ,VOL ,
34 . ALE_CONNECT,ALPH)
35C-----------------------------------------------
36C M o d u l e s
37C-----------------------------------------------
39C-----------------------------------------------
40C I m p l i c i t T y p e s
41C-----------------------------------------------
42#include "implicit_f.inc"
43C-----------------------------------------------
44C G l o b a l P a r a m e t e r s
45C-----------------------------------------------
46#include "mvsiz_p.inc"
47C-----------------------------------------------
48C C o m m o n B l o c k s
49C-----------------------------------------------
50#include "com01_c.inc"
51#include "com04_c.inc"
52#include "vect01_c.inc"
53#include "param_c.inc"
54C-----------------------------------------------
55C D u m m y A r g u m e n t s
56C-----------------------------------------------
57 INTEGER IXQ(NIXQ,NUMELQ)
58 my_real PM(NPROPM,NUMMAT),V(3,NUMNOD),W(3,NUMNOD),X(3,NUMNOD),FLUX(4,*),FLU1(*),FILL(*),DFILL(*),VOL(*),ALPH(*)
59 TYPE(t_ale_connectivity), INTENT(IN) :: ALE_CONNECT
60C-----------------------------------------------
61C L o c a l V a r i a b l e s
62C-----------------------------------------------
63 INTEGER MAT(mvsiz), NC1(mvsiz), NC2(mvsiz), NC3(mvsiz), NC4(mvsiz), I,II,J,IAD2
64 my_real
65 . y1(mvsiz), y2(mvsiz), y3(mvsiz), y4(mvsiz),z1(mvsiz), z2(mvsiz), z3(mvsiz), z4(mvsiz),
66 . n1y(mvsiz), n2y(mvsiz), n3y(mvsiz), n4y(mvsiz), n1z(mvsiz), n2z(mvsiz), n3z(mvsiz), n4z(mvsiz),
67 . flux1(mvsiz), flux2(mvsiz), flux3(mvsiz), flux4(mvsiz),
68 . vy1(mvsiz), vy2(mvsiz), vy3(mvsiz), vy4(mvsiz), vz1(mvsiz), vz2(mvsiz), vz3(mvsiz), vz4(mvsiz),
69 . vdy1(mvsiz), vdy2(mvsiz),vdy3(mvsiz), vdy4(mvsiz),
70 . vdz1(mvsiz), vdz2(mvsiz),vdz3(mvsiz), vdz4(mvsiz), upw(mvsiz),
71 . reduc,upwl(4,mvsiz)
72C-----------------------------------------------
73C S o u r c e L i n e s
74C-----------------------------------------------
75 mat(1) = 1
76 DO i=lft,llt
77 ii=i+nft
78 mat(i)=ixq(1,ii)
79 nc1(i)=ixq(2,ii)
80 nc2(i)=ixq(3,ii)
81 nc3(i)=ixq(4,ii)
82 nc4(i)=ixq(5,ii)
83
84 y1(i)=x(2,nc1(i))
85 z1(i)=x(3,nc1(i))
86
87 y2(i)=x(2,nc2(i))
88 z2(i)=x(3,nc2(i))
89
90 y3(i)=x(2,nc3(i))
91 z3(i)=x(3,nc3(i))
92
93 y4(i)=x(2,nc4(i))
94 z4(i)=x(3,nc4(i))
95
96 vdy1(i)=v(2,nc1(i)) - w(2,nc1(i))
97 vdz1(i)=v(3,nc1(i)) - w(3,nc1(i))
98
99 vdy2(i)=v(2,nc2(i)) - w(2,nc2(i))
100 vdz2(i)=v(3,nc2(i)) - w(3,nc2(i))
101
102 vdy3(i)=v(2,nc3(i)) - w(2,nc3(i))
103 vdz3(i)=v(3,nc3(i)) - w(3,nc3(i))
104
105 vdy4(i)=v(2,nc4(i)) - w(2,nc4(i))
106 vdz4(i)=v(3,nc4(i)) - w(3,nc4(i))
107 ENDDO
108C-----------------------------------------------
109C RELATIVE VELOCITY ON FACE
110C-----------------------------------------------
111 DO i=lft,llt
112 vy1(i)=half*(vdy1(i)+vdy2(i))
113 vy2(i)=half*(vdy2(i)+vdy3(i))
114 vy3(i)=half*(vdy3(i)+vdy4(i))
115 vy4(i)=half*(vdy4(i)+vdy1(i))
116
117 vz1(i)=half*(vdz1(i)+vdz2(i))
118 vz2(i)=half*(vdz2(i)+vdz3(i))
119 vz3(i)=half*(vdz3(i)+vdz4(i))
120 vz4(i)=half*(vdz4(i)+vdz1(i))
121 ENDDO
122C------------------------------------------
123C NORMAL VECTOR
124C------------------------------------------
125 DO i=lft,llt
126 n1y(i)= (z2(i)-z1(i))
127 n1z(i)=-(y2(i)-y1(i))
128
129 n2y(i)= (z3(i)-z2(i))
130 n2z(i)=-(y3(i)-y2(i))
131
132 n3y(i)= (z4(i)-z3(i))
133 n3z(i)=-(y4(i)-y3(i))
134
135 n4y(i)= (z1(i)-z4(i))
136 n4z(i)=-(y1(i)-y4(i))
137 ENDDO
138
139 IF(n2d == 1)THEN
140 DO i=lft,llt
141 n1y(i)= n1y(i)*(y1(i)+y2(i))*half
142 n1z(i)= n1z(i)*(y1(i)+y2(i))*half
143 n2y(i)= n2y(i)*(y2(i)+y3(i))*half
144 n2z(i)= n2z(i)*(y2(i)+y3(i))*half
145 n3y(i)= n3y(i)*(y3(i)+y4(i))*half
146 n3z(i)= n3z(i)*(y3(i)+y4(i))*half
147 n4y(i)= n4y(i)*(y1(i)+y4(i))*half
148 n4z(i)= n4z(i)*(y1(i)+y4(i))*half
149 ENDDO
150 ENDIF
151C--------------------
152C VOLUME FLUXES
153C--------------------
154 DO i=lft,llt
155 flux1(i)=(vy1(i)*n1y(i)+vz1(i)*n1z(i))
156 flux2(i)=(vy2(i)*n2y(i)+vz2(i)*n2z(i))
157 flux3(i)=(vy3(i)*n3y(i)+vz3(i)*n3z(i))
158 flux4(i)=(vy4(i)*n4y(i)+vz4(i)*n4z(i))
159 ENDDO
160C-----------------------------------------------
161C MULTIMAT LAW51 (SUBMATERIALS)
162C-----------------------------------------------
163 IF(nint(pm(19,mat(1))) == 51)THEN
164 DO i=lft,llt
165 flux(1,i)=flux1(i)
166 flux(2,i)=flux2(i)
167 flux(3,i)=flux3(i)
168 flux(4,i)=flux4(i)
169 ENDDO
170 RETURN
171 ENDIF
172C-----------------------------------------------
173C UPWIND
174C-----------------------------------------------
175 DO j=1,4
176 DO i=lft,llt
177 upwl(j,i)=pm(16,mat(i))
178 ENDDO
179 ENDDO
180 !======================================================!
181 ! BOUNDARY FACE : no volume flux by default !
182 ! slip wall bc !
183 !======================================================!
184 DO i=lft,llt
185 iad2 = ale_connect%ee_connect%iad_connect(i + nft)
186 reduc=pm(92,mat(i))
187
188 ii=ale_connect%ee_connect%connected(iad2 + 1 - 1)
189 IF(ii == 0)THEN
190 flux1(i)=flux1(i)*reduc
191 ENDIF
192C
193 ii=ale_connect%ee_connect%connected(iad2 + 2 - 1)
194 IF(ii == 0)THEN
195 flux2(i)=flux2(i)*reduc
196 ENDIF
197C
198 ii=ale_connect%ee_connect%connected(iad2 + 3 - 1)
199 IF(ii == 0)THEN
200 flux3(i)=flux3(i)*reduc
201 ENDIF
202C
203 ii=ale_connect%ee_connect%connected(iad2 + 4 - 1)
204 IF(ii == 0)THEN
205 flux4(i)=flux4(i)*reduc
206 ENDIF
207C
208 ENDDO !next I
209C-----------------------------------------------
210C MULTIMAT LAW 20 (OBSOLETE)
211C-----------------------------------------------
212 IF(jmult /= 0)THEN
213 DO i=lft,llt
214 upw(i) =pm(16,mat(i))
215 ENDDO
216 CALL amulf2(fill,dfill,flux,flu1,vol,ale_connect,alph,
217 . flux1, flux2, flux3, flux4, upw,
218 . nc1, nc2, nc3, nc4)
219 ELSE
220C
221 DO i=lft,llt
222 flux(1,i)=flux1(i)-upwl(1,i)*abs(flux1(i))
223 flux(2,i)=flux2(i)-upwl(2,i)*abs(flux2(i))
224 flux(3,i)=flux3(i)-upwl(3,i)*abs(flux3(i))
225 flux(4,i)=flux4(i)-upwl(4,i)*abs(flux4(i))
226
227 flu1(i) =flux1(i)+upwl(1,i)*abs(flux1(i))
228 . +flux2(i)+upwl(2,i)*abs(flux2(i))
229 . +flux3(i)+upwl(3,i)*abs(flux3(i))
230 . +flux4(i)+upwl(4,i)*abs(flux4(i))
231 ENDDO
232 ENDIF
233C-----------------------------------------------
234 RETURN
235 END
236C
subroutine aflux2(pm, ixq, v, w, x, flux, flu1, fill, dfill, vol, ale_connect, alph)
Definition aflux2.F:35
subroutine amulf2(fill, dfill, flux, flu1, vol, ale_connect, alpv, flux1, flux2, flux3, flux4, upw, nc1, nc2, nc3, nc4)
Definition amulf2.F:34