Rocstar  1.0
Rocstar multiphysics simulation application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
TURB_floLesUniFiltFF.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: Perform face to face uniform filtering.
26 !
27 ! Description: We treat the filter-operation in three consequtive sweeps
28 ! corresponding to the three coordinate directions. We use the
29 ! composite trapezoidal rule. This can be applied directly if
30 ! ndel=even and leads to integration weights:(1/2,1,..,1,1/2)/ndel
31 ! i.e. weight 1/2 for the end-points and 1 for the inner points
32 ! on a uniform grid. If ndel=0 we do not filter at all and if
33 ! ndel=odd we filter the inner points as usual and use a linear
34 ! interpolation for the end-intervals. For the weights this
35 ! implies (1/8,6/8,1/8): ndel=1 and (1/8,7/8,1,..,1,7/8,1/8)/ndel
36 ! if ndel=odd and > 1. This has an obvious extension for
37 ! nonuniform grids.
38 !
39 ! Input: region = data of current region
40 ! ijk = ijk-face is being treated
41 ! nDel = three components filter width parameter
42 ! idBeg = begin variable index to be filtered
43 ! idEnd = end variable index to be filtered
44 ! fVar = face variable to be filtered
45 !
46 ! Output: fbVar = filtered face variable
47 !
48 ! Notes: none.
49 !
50 !******************************************************************************
51 !
52 ! $Id: TURB_floLesUniFiltFF.F90,v 1.4 2008/12/06 08:44:43 mtcampbe Exp $
53 !
54 ! Copyright: (c) 2001 by the University of Illinois
55 !
56 !******************************************************************************
57 
58 SUBROUTINE turb_flolesunifiltff( region,ijk,nDel,idBeg,idEnd,fVar,fbVar )
59 
60  USE moddatatypes
61  USE moddatastruct, ONLY : t_region
62  USE modglobal, ONLY : t_global
67  USE modturbulence
68  USE moderror
69  USE modparameters
71  IMPLICIT NONE
72 
73 #include "Indexing.h"
74 
75 ! ... parameters
76  TYPE(t_region) :: region
77  INTEGER :: ijk,ndel(diri:dirk),idbeg,idend
78  REAL(RFREAL), POINTER :: fvar(:,:),fbvar(:,:)
79 
80 ! ... loop variables
81  INTEGER :: i, j, k, l, ijkn
82 
83 ! ... local variables
84  CHARACTER(CHRLEN) :: rcsidentstring
85  TYPE(t_global), POINTER :: global
86 
87  INTEGER :: ibeg,iend,jbeg,jend,kbeg,kend
88  INTEGER :: idnbeg,idnend,jdnbeg,jdnend,kdnbeg,kdnend
89  INTEGER :: ilev,inoff,ijnoff,ibn,ien
90 
91  REAL(RFREAL) :: fact1(filwidth_four), fact2(filwidth_four)
92  REAL(RFREAL), POINTER :: wrkbar(:,:)
93 
94 !******************************************************************************
95 
96  rcsidentstring = '$RCSfile: TURB_floLesUniFiltFF.F90,v $'
97 
98  global => region%global
99  CALL registerfunction( global,'TURB_FloLesUniFiltFF',&
100  'TURB_floLesUniFiltFF.F90' )
101 
102 ! get indices, parameters and pointers ----------------------------------------
103 
104  ilev = region%currLevel
105  CALL rflo_getdimensdummynodes( region,ilev,idnbeg,idnend, &
106  jdnbeg,jdnend,kdnbeg,kdnend )
107  CALL rflo_getnodeoffset( region,ilev,inoff,ijnoff )
108  ibn = indijk(idnbeg,jdnbeg,kdnbeg,inoff,ijnoff)
109  ien = indijk(idnend,jdnend,kdnend,inoff,ijnoff)
110 
111  ALLOCATE( wrkbar(idbeg:idend,ibn:ien) )
112 
113  fact1(filwidth_one) = 0.125_rfreal
114  fact2(filwidth_one) = 0.75_rfreal
115  fact1(filwidth_two) = 0.25_rfreal
116  fact2(filwidth_two) = 0.50_rfreal
117  fact1(filwidth_four) = 0.125_rfreal
118  fact2(filwidth_four) = 0.25_rfreal
119 
120 !------------------------------------------------------------------------
121 ! we begin with integration over I-direction
122 
123  ibeg = idnbeg+1
124  iend = idnend-1
125  jbeg = jdnbeg
126  jend = jdnend
127  kbeg = kdnbeg
128  kend = kdnend
129 
130  CALL turb_flolesunifiltffi( global,ibeg,iend,jbeg,jend,kbeg,kend,inoff, &
131  ijnoff,ndel,idbeg,idend,fact1,fact2,fvar,fbvar )
132 
133 ! extrapolate filtered variables to outers ijk-face layers
134 
135  CALL turb_floextrapolfacevec( region,diri,idbeg,idend,fbvar )
136 
137 !------------------------------------------------------------------
138 ! next, integrate over J-direction
139 
140  ibeg = idnbeg
141  iend = idnend
142  jbeg = jdnbeg+1
143  jend = jdnend-1
144  kbeg = kdnbeg
145  kend = kdnend
146 
147  CALL turb_flolesunifiltffj( global,ibeg,iend,jbeg,jend,kbeg,kend,inoff, &
148  ijnoff,ndel,idbeg,idend,fact1,fact2,fbvar,wrkbar )
149 
150 ! extrapolate filtered variables to outerst ijk-face layers
151 
152  CALL turb_floextrapolfacevec( region,dirj,idbeg,idend,wrkbar )
153 
154 !------------------------------------------------------------------
155 ! finally, integrate over K-direction
156 
157  ibeg = idnbeg
158  iend = idnend
159  jbeg = jdnbeg
160  jend = jdnend
161  kbeg = kdnbeg+1
162  kend = kdnend-1
163 
164  CALL turb_flolesunifiltffk( global,ibeg,iend,jbeg,jend,kbeg,kend,inoff, &
165  ijnoff,ndel,idbeg,idend,fact1,fact2,wrkbar,fbvar )
166 
167 ! extrapolate filtered variables to outerst ijk-face layers
168 
169  CALL turb_floextrapolfacevec( region,dirk,idbeg,idend,fbvar )
170 
171 ! deallocate temporary arrays
172 
173  DEALLOCATE( wrkbar )
174 
175 ! finalize --------------------------------------------------------------------
176 
177  CALL deregisterfunction( global )
178 
179 END SUBROUTINE turb_flolesunifiltff
180 
181 !******************************************************************************
182 !
183 ! RCS Revision history:
184 !
185 ! $Log: TURB_floLesUniFiltFF.F90,v $
186 ! Revision 1.4 2008/12/06 08:44:43 mtcampbe
187 ! Updated license.
188 !
189 ! Revision 1.3 2008/11/19 22:17:56 mtcampbe
190 ! Added Illinois Open Source License/Copyright
191 !
192 ! Revision 1.2 2004/03/12 02:55:36 wasistho
193 ! changed rocturb routine names
194 !
195 ! Revision 1.1 2004/03/08 23:35:45 wasistho
196 ! changed turb nomenclature
197 !
198 ! Revision 1.2 2003/05/15 02:57:06 jblazek
199 ! Inlined index function.
200 !
201 ! Revision 1.1 2002/10/14 23:55:30 wasistho
202 ! Install Rocturb
203 !
204 !******************************************************************************
205 
206 
207 
208 
209 
210 
211 
**********************************************************************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 ibeg
subroutine turb_flolesunifiltffk(global, ibeg, iend, jbeg, jend, kbeg, kend, iNOff, ijNOff, nDel, idBeg, idEnd, fact1, fact2, fVar, filtVar)
j indices k indices k
Definition: Indexing.h:6
subroutine registerfunction(global, funName, fileName)
Definition: ModError.F90:449
**********************************************************************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 jdnbeg
**********************************************************************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 idnend
subroutine rflo_getnodeoffset(region, iLev, iNodeOffset, ijNodeOffset)
**********************************************************************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 jdnend
**********************************************************************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 idnbeg
**********************************************************************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 knode iend
subroutine turb_flolesunifiltff(region, ijk, nDel, idBeg, idEnd, fVar, fbVar)
blockLoc i
Definition: read.cpp:79
subroutine turb_floextrapolfacevec(region, intDIR, idBeg, idEnd, fVec)
subroutine turb_flolesunifiltffj(global, ibeg, iend, jbeg, jend, kbeg, kend, iNOff, ijNOff, nDel, idBeg, idEnd, fact1, fact2, fVar, filtVar)
subroutine turb_flolesunifiltffi(global, ibeg, iend, jbeg, jend, kbeg, kend, iNOff, ijNOff, nDel, idBeg, idEnd, fact1, fact2, fVar, filtVar)
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 knode jend
subroutine rflo_getdimensdummynodes(region, iLev, idnbeg, idnend, jdnbeg, jdnend, kdnbeg, kdnend)
**********************************************************************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 knode jbeg
**********************************************************************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 knode kbeg
subroutine deregisterfunction(global)
Definition: ModError.F90:469
**********************************************************************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 kdnbeg