OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
aeturb.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!|| aeturb ../engine/source/ale/turbulence/aeturb.F
25!||--- called by ------------------------------------------------------
26!|| alethe ../engine/source/ale/alethe.F
27!||--- calls -----------------------------------------------------
28!|| adiff2 ../engine/source/ale/ale2d/adiff2.F
29!|| adiff3 ../engine/source/ale/ale3d/adiff3.F
30!|| initbuf ../engine/share/resol/initbuf.F
31!|| my_barrier ../engine/source/system/machine.F
32!|| spmd_evois ../engine/source/mpi/fluid/spmd_cfd.F
33!||--- uses -----------------------------------------------------
34!|| ale_connectivity_mod ../common_source/modules/ale/ale_connectivity_mod.F
35!|| elbufdef_mod ../common_source/modules/mat_elem/elbufdef_mod.F90
36!|| initbuf_mod ../engine/share/resol/initbuf.F
37!|| matparam_def_mod ../common_source/modules/mat_elem/matparam_def_mod.F90
38!||====================================================================
39 SUBROUTINE aeturb(
40 1 IPARG ,ELBUF_TAB ,FLUX ,VAL2 ,XE ,
41 2 ALE_CONNECT ,IXS ,IXQ ,PM ,ITASK ,
42 3 NERCVOIS ,NESDVOIS ,LERCVOIS ,LESDVOIS ,LENCOM,
43 4 MATPARAM)
44C-----------------------------------------------
45C M o d u l e s
46C-----------------------------------------------
47 USE initbuf_mod
48 USE elbufdef_mod
50 USE matparam_def_mod, ONLY : matparam_struct_
51C-----------------------------------------------
52C I m p l i c i t T y p e s
53C-----------------------------------------------
54#include "implicit_f.inc"
55C-----------------------------------------------
56C C o m m o n B l o c k s
57C-----------------------------------------------
58#include "com01_c.inc"
59#include "com04_c.inc"
60#include "vect01_c.inc"
61#include "param_c.inc"
62#include "task_c.inc"
63C-----------------------------------------------
64C D u m m y A r g u m e n t s
65C-----------------------------------------------
66 INTEGER IPARG(NPARG,NGROUP), IXS(NIXS,NUMELS), IXQ(7,NUMELQ),
67 . NERCVOIS(*),NESDVOIS(*),LERCVOIS(*),LESDVOIS(*),
68 . LENCOM
69 my_real FLUX(*), VAL2(*), XE(*), PM(NPROPM,NUMMAT)
70 TYPE (ELBUF_STRUCT_), DIMENSION(NGROUP), TARGET :: ELBUF_TAB
71 TYPE(t_ale_connectivity), INTENT(IN) :: ALE_CONNECT
72 TYPE(MATPARAM_STRUCT_),DIMENSION(NUMMAT),INTENT(IN) :: MATPARAM !< material buffer
73C-----------------------------------------------
74C L o c a l V a r i a b l e s
75C-----------------------------------------------
76 INTEGER NG, I, J, MT, ITASK, NEL, MID
77 my_real RE, R, RHOCP
78 TYPE(G_BUFEL_) ,POINTER :: GBUF
79C-----------------------------------------------
80C S o u r c e L i n e s
81C-----------------------------------------------
82 DO ng=itask+1,ngroup,nthread
83C ALE ON / OFF
84 IF (iparg(76, ng) == 1) cycle ! --> OFF
85 CALL initbuf(iparg ,ng ,
86 2 mtn ,llt ,nft ,iad ,ity ,
87 3 npt ,jale ,ismstr ,jeul ,jtur ,
88 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
89 5 nvaux ,jpor ,jcvt ,jclose ,jplasol ,
90 6 irep ,iint ,igtyp ,israt ,isrot ,
91 7 icsen ,isorth ,isorthg ,ifailure,jsms )
92 IF(jale+jeul==0) cycle
93 IF(iparg(8,ng)==1) cycle
94 lft=1
95 gbuf => elbuf_tab(ng)%GBUF
96c
97 IF(jtur==1)THEN
98 IF(n2d==0)THEN
99 DO i=lft,llt
100 j=i+nft
101 mt=ixs(1,j)
102 re=gbuf%RE(i)
103 r =gbuf%RHO(i)
104 xe(j)=re/r
105 val2(j)=val2(j)*pm(85,mt)/pm(86,mt)
106 enddo!next I
107 ELSE
108 DO i=lft,llt
109 j=i+nft
110 mt=ixq(1,j)
111 re=gbuf%RE(i)
112 r =gbuf%RHO(i)
113 xe(j)=re/r
114 val2(j)=val2(j)*pm(85,mt)/pm(86,mt)
115 enddo!next I
116 ENDIF
117 ELSE
118 DO i=lft,llt
119 j=i+nft
120 xe(j)=zero
121 enddo!next I
122 ENDIF
123 IF(jpor == 2)THEN
124C POROSITY, OPTION:IMPOSED TURBULENCY AND NO DIFFUSIVE FLUXES
125 DO i=lft,llt
126 j=i+nft
127 val2(j)=zero
128 enddo!next I
129 ENDIF
130 ENDDO
131C
132 CALL my_barrier
133C-----------------------------
134C SPMD EXCHANGE : XE, VAL2
135C-----------------------------
136 IF (nspmd > 1) THEN
137!$OMP SINGLE
138 CALL spmd_evois(xe,val2,nercvois,nesdvois,lercvois,lesdvois,lencom)
139!$OMP END SINGLE
140
141 END IF
142C-----------------------------
143 DO ng=itask+1,ngroup,nthread
144C ALE ON / OFF
145 IF (iparg(76, ng) == 1) cycle ! --> OFF
146 CALL initbuf(iparg ,ng ,
147 2 mtn ,llt ,nft ,iad ,ity ,
148 3 npt ,jale ,ismstr ,jeul ,jtur ,
149 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
150 5 nvaux ,jpor ,jcvt ,jclose ,jplasol ,
151 6 irep ,iint ,igtyp ,israt ,isrot ,
152 7 icsen ,isorth ,isorthg ,ifailure,jsms )
153 IF(jale+jeul==0) cycle
154 IF(jtur/=1) cycle
155 IF(mtn==11) cycle
156 IF(mtn==17) cycle
157 IF(iparg(8,ng)==1) cycle
158c
159 gbuf => elbuf_tab(ng)%GBUF
160 lft=1
161 nel=iparg(2,ng)
162 mid=iparg(18,ng)
163 rhocp = pm(69,mid)
164 if(rhocp == zero)then
165 rhocp = pm(89,mid)*matparam(mid)%eos%cp
166 end if
167 IF(n2d==0)THEN
168 CALL adiff3(gbuf%RE,xe,flux(6*nft+1),val2,ale_connect,gbuf%VOL,gbuf%TEMP,rhocp,nel)
169 ELSE
170 CALL adiff2(gbuf%RE,xe,flux(4*nft+1),val2,ale_connect,gbuf%VOL,gbuf%TEMP,rhocp,nel)
171 ENDIF
172 ENDDO
173C-----------
174 CALL my_barrier
175C-----------------------------------------------
176 RETURN
177 END
subroutine adiff2(phin, phi, grad, alpha, ale_connect, vol, temp, rhocp, nel)
Definition adiff2.F:33
subroutine adiff3(phin, phi, grad, alpha, ale_connect, vol, temp, rhocp, nel)
Definition adiff3.F:33
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 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 spmd_evois(t, val2, nercvois, nesdvois, lercvois, lesdvois, lencom)
Definition spmd_cfd.F:261
subroutine my_barrier
Definition machine.F:31