Rocstar  1.0
Rocstar multiphysics simulation application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
TURB_RansSASourceTerms.F90
Go to the documentation of this file.
1 ! *********************************************************************
2 ! * Rocstar Simulation Suite *
3 ! * Copyright@2015, Illinois Rocstar LLC. All rights reserved. *
4 ! * *
5 ! * Illinois Rocstar LLC *
6 ! * Champaign, IL *
7 ! * www.illinoisrocstar.com *
8 ! * sales@illinoisrocstar.com *
9 ! * *
10 ! * License: See LICENSE file in top level of distribution package or *
11 ! * http://opensource.org/licenses/NCSA *
12 ! *********************************************************************
13 ! *********************************************************************
14 ! * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, *
15 ! * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES *
16 ! * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND *
17 ! * NONINFRINGEMENT. IN NO EVENT SHALL THE CONTRIBUTORS OR *
18 ! * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER *
19 ! * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, *
20 ! * Arising FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE *
21 ! * USE OR OTHER DEALINGS WITH THE SOFTWARE. *
22 ! *********************************************************************
23 !******************************************************************************
24 !
25 ! Purpose: added source terms of SA/DES to the rhs.
26 !
27 ! Description: see formulation of SA (La Recherche Aerospatiale 1, 5 (1994))
28 !
29 ! Input: region = data of current region,
30 !
31 ! Output: region%levels%turb%rhs , source terms added to rhs
32 !
33 ! Notes: none.
34 !
35 !******************************************************************************
36 !
37 ! $Id: TURB_RansSASourceTerms.F90,v 1.5 2008/12/06 08:44:42 mtcampbe Exp $
38 !
39 ! Copyright: (c) 2003 by the University of Illinois
40 !
41 !******************************************************************************
42 
43 SUBROUTINE turb_ranssasourceterms( region )
44 
45  USE moddatatypes
46  USE moddatastruct, ONLY : t_region
47  USE modglobal, ONLY : t_global
48  USE moderror
49  USE modparameters
52 #ifdef RFLO
54 
55 #include "Indexing.h"
56 #endif
57 
58  IMPLICIT NONE
59 
60 ! ... parameters
61  TYPE(t_region) :: region
62 
63 ! ... loop variables
64  INTEGER :: i, j, k, ijkc
65 
66 ! ... local variables
67  TYPE(t_global), POINTER :: global
68 
69  INTEGER :: ibc, iec
70  REAL(RFREAL), POINTER :: cv(:,:), tv(:,:), vol(:), wdist(:)
71  REAL(RFREAL), POINTER :: tcv(:,:), trhs(:,:), vort(:,:), dsterm(:,:)
72  REAL(RFREAL) :: one6th, cv1, cw1, cw2, cw3, cb1, rkappa, rsigma
73  REAL(RFREAL) :: rnuet, nuet, xi, fv1, fv2, rwdist, stilde, ro, go, fw
74  REAL(RFREAL) :: vortmag, prod, destr, sterm
75 
76 #ifdef RFLO
77  INTEGER :: idcbeg, idcend, jdcbeg, jdcend, kdcbeg, kdcend
78  INTEGER :: ilev, icoff,ijcoff
79 #endif
80 
81 !******************************************************************************
82 
83  global => region%global
84  CALL registerfunction( global,'TURB_RansSASourceTerms',&
85  'TURB_RansSASourceTerms.F90' )
86 
87 ! get coefficients and parameters ---------------------------------------------
88 
89  one6th = 1._rfreal/6._rfreal
90  cv1 = region%turbInput%const(mc_sa_cv1)
91  cw1 = region%turbInput%const(mc_sa_cw1)
92  cw2 = region%turbInput%const(mc_sa_cw2)
93  cw3 = region%turbInput%const(mc_sa_cw3)
94  cb1 = region%turbInput%const(mc_sa_cb1)
95  rkappa = region%turbInput%const(mc_sa_rkap)
96  rsigma = region%turbInput%const(mc_sa_rsig)
97 
98 ! compute vorticities to be used below ----------------------------------------
99 
100  CALL turb_calcvortic( region )
101 
102 ! get dimensions and pointers -------------------------------------------------
103 
104 #ifdef RFLO
105  ilev = region%currLevel
106 
107  CALL rflo_getdimensdummy( region,ilev,idcbeg,idcend, &
108  jdcbeg,jdcend,kdcbeg,kdcend )
109  CALL rflo_getcelloffset( region,ilev,icoff,ijcoff )
110 
111  cv => region%levels(ilev)%mixt%cv
112  tv => region%levels(ilev)%mixt%tv
113  tcv => region%levels(ilev)%turb%cv
114  trhs => region%levels(ilev)%turb%rhs
115  vort => region%levels(ilev)%turb%vort
116  wdist => region%levels(ilev)%turb%lens
117  dsterm => region%levels(ilev)%turb%dsterm
118  vol => region%levels(ilev)%grid%vol
119 
120  DO k=kdcbeg,kdcend
121  DO j=jdcbeg,jdcend
122  DO i=idcbeg,idcend
123  ijkc = indijk(i ,j ,k ,icoff,ijcoff)
124 #endif
125 #ifdef RFLU
126  ibc = 1
127  iec = region%grid%nCellsTot
128 
129  cv => region%mixt%cv
130  tv => region%mixt%tv
131  tcv => region%turb%cv
132  trhs => region%turb%rhs
133  vort => region%turb%vort
134  wdist => region%turb%lens
135  dsterm => region%turb%dsterm
136  vol => region%grid%vol
137 
138  DO ijkc = ibc,iec
139 #endif
140  vortmag = sqrt( vort(xcoord,ijkc)*vort(xcoord,ijkc) + &
141  vort(ycoord,ijkc)*vort(ycoord,ijkc) + &
142  vort(zcoord,ijkc)*vort(zcoord,ijkc) )
143 
144  rnuet = tcv(cv_sa_nutil,ijkc)
145  nuet = rnuet/cv(cv_mixt_dens,ijkc)
146  xi = rnuet/tv(tv_mixt_muel,ijkc)
147  fv1 = xi**3/(xi**3 + cv1**3)
148  fv2 = 1._rfreal - xi/(1._rfreal + fv1*xi)
149  rwdist = 1._rfreal/wdist(ijkc)
150  stilde = vortmag + nuet*rkappa*rkappa*rwdist*rwdist*fv2
151  stilde = stilde + real_small
152  ro = nuet*rkappa*rkappa*rwdist*rwdist/stilde
153 ! ro = MIN( ro, 10._RFREAL )
154  go = ro + cw2*(ro**6 - ro)
155  fw = go*((1._rfreal+cw3**6)/(go**6+cw3**6))**one6th
156 
157  prod = cb1*stilde*rnuet
158  destr = cv(cv_mixt_dens,ijkc)*cw1*fw*(nuet*rwdist)**2
159  sterm = destr - prod
160 
161  trhs(cv_sa_nutil,ijkc) = trhs(cv_sa_nutil,ijkc) + vol(ijkc)*sterm
162  dsterm(cv_sa_nutil,ijkc) = cb1*(2._rfreal*stilde-vortmag) - &
163  2._rfreal*cw1*fw*nuet*rwdist*rwdist
164 #ifdef RFLO
165  ENDDO ! i
166  ENDDO ! j
167  ENDDO ! k
168 #endif
169 #ifdef RFLU
170  ENDDO ! ijkC
171 #endif
172 
173 ! finalize --------------------------------------------------------------------
174 
175  CALL deregisterfunction( global )
176 
177 END SUBROUTINE turb_ranssasourceterms
178 
179 !******************************************************************************
180 !
181 ! RCS Revision history:
182 !
183 ! $Log: TURB_RansSASourceTerms.F90,v $
184 ! Revision 1.5 2008/12/06 08:44:42 mtcampbe
185 ! Updated license.
186 !
187 ! Revision 1.4 2008/11/19 22:17:54 mtcampbe
188 ! Added Illinois Open Source License/Copyright
189 !
190 ! Revision 1.3 2004/03/27 02:16:42 wasistho
191 ! compiled with Rocflu
192 !
193 ! Revision 1.2 2004/03/20 03:28:29 wasistho
194 ! prepared for RFLU
195 !
196 ! Revision 1.1 2004/03/05 04:37:00 wasistho
197 ! changed nomenclature
198 !
199 ! Revision 1.8 2004/01/22 03:57:53 wasistho
200 ! fixed dsterm
201 !
202 ! Revision 1.7 2003/10/25 22:05:43 wasistho
203 ! deactivated (outcommented) clipping on ro
204 !
205 ! Revision 1.6 2003/10/21 20:31:13 wasistho
206 ! added dt relaxation in steady flow due to RANS source term
207 !
208 ! Revision 1.5 2003/10/20 20:28:08 wasistho
209 ! made consistent with compressible SA formulation
210 !
211 ! Revision 1.4 2003/10/16 20:17:38 wasistho
212 ! installed RaNS in steady state flow (Exp.Mult.Stg)
213 !
214 ! Revision 1.3 2003/10/14 21:24:54 wasistho
215 ! get minimum of ro and 10.
216 !
217 ! Revision 1.2 2003/10/07 20:33:46 wasistho
218 ! bug fixed missing nodeOffsets
219 !
220 !
221 !******************************************************************************
222 
223 
224 
225 
226 
227 
228 
**********************************************************************Rocstar Simulation Suite Illinois Rocstar LLC All rights reserved ****Illinois Rocstar LLC IL **www illinoisrocstar com **sales illinoisrocstar com WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **Arising OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE **********************************************************************INTERFACE SUBROUTINE idcend
j indices k indices k
Definition: Indexing.h:6
subroutine registerfunction(global, funName, fileName)
Definition: ModError.F90:449
double sqrt(double d)
Definition: double.h:73
subroutine rflo_getdimensdummy(region, iLev, idcbeg, idcend, jdcbeg, jdcend, kdcbeg, kdcend)
**********************************************************************Rocstar Simulation Suite Illinois Rocstar LLC All rights reserved ****Illinois Rocstar LLC IL **www illinoisrocstar com **sales illinoisrocstar com WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **Arising OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE **********************************************************************INTERFACE SUBROUTINE kdcbeg
subroutine turb_ranssasourceterms(region)
blockLoc i
Definition: read.cpp:79
subroutine rflo_getcelloffset(region, iLev, iCellOffset, ijCellOffset)
**********************************************************************Rocstar Simulation Suite Illinois Rocstar LLC All rights reserved ****Illinois Rocstar LLC IL **www illinoisrocstar com **sales illinoisrocstar com WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **Arising OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE **********************************************************************INTERFACE SUBROUTINE idcbeg
subroutine turb_calcvortic(region)
**********************************************************************Rocstar Simulation Suite Illinois Rocstar LLC All rights reserved ****Illinois Rocstar LLC IL **www illinoisrocstar com **sales illinoisrocstar com WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **Arising OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE **********************************************************************INTERFACE SUBROUTINE jdcend
j indices j
Definition: Indexing.h:6
**********************************************************************Rocstar Simulation Suite Illinois Rocstar LLC All rights reserved ****Illinois Rocstar LLC IL **www illinoisrocstar com **sales illinoisrocstar com WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **Arising OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE **********************************************************************INTERFACE SUBROUTINE jdcbeg
subroutine deregisterfunction(global)
Definition: ModError.F90:469