Rocstar  1.0
Rocstar multiphysics simulation application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
TURB_floLesUniFiltCC.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 cell to cell 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 ! nDel = three components filter width parameter
41 ! idBeg = begin variable index to be filtered
42 ! idEnd = end variable index to be filtered
43 ! fVar = cell variable to be filtered
44 !
45 ! Output: fbVar = filtered cell variable
46 !
47 ! Notes: none.
48 !
49 !******************************************************************************
50 !
51 ! $Id: TURB_floLesUniFiltCC.F90,v 1.5 2008/12/06 08:44:43 mtcampbe Exp $
52 !
53 ! Copyright: (c) 2001 by the University of Illinois
54 !
55 !******************************************************************************
56 
57 SUBROUTINE turb_flolesunifiltcc( region,nDel,idBeg,idEnd,fVar,fbVar )
58 
59  USE moddatatypes
60  USE moddatastruct, ONLY : t_region
61  USE modglobal, ONLY : t_global
66  USE modturbulence
67  USE moderror
68  USE modparameters
70  IMPLICIT NONE
71 
72 #include "Indexing.h"
73 
74 ! ... parameters
75  TYPE(t_region) :: region
76  INTEGER :: ndel(diri:dirk),idbeg,idend
77  REAL(RFREAL), POINTER :: fvar(:,:),fbvar(:,:)
78 
79 ! ... loop variables
80  INTEGER :: i, j, k, l, ijkc
81 
82 ! ... local variables
83  CHARACTER(CHRLEN) :: rcsidentstring
84  TYPE(t_global), POINTER :: global
85 
86  INTEGER :: ibeg,iend,jbeg,jend,kbeg,kend
87  INTEGER :: idcbeg,idcend,jdcbeg,jdcend,kdcbeg,kdcend
88  INTEGER :: ilev,icoff,ijcoff,ibc,iec,ndum
89 
90  REAL(RFREAL) :: fact1(filwidth_four),fact2(filwidth_four)
91  REAL(RFREAL), POINTER :: wrkbar(:,:)
92 
93 !******************************************************************************
94 
95  rcsidentstring = '$RCSfile: TURB_floLesUniFiltCC.F90,v $'
96 
97  global => region%global
98  CALL registerfunction( global,'TURB_FloLesUniFiltCC',&
99  'TURB_floLesUniFiltCC.F90' )
100 
101 ! get indices, parameters and pointers ----------------------------------------
102 
103  ndum = region%nDumCells
104  ilev = region%currLevel
105  CALL rflo_getdimensdummy( region,ilev,idcbeg,idcend, &
106  jdcbeg,jdcend,kdcbeg,kdcend )
107  CALL rflo_getcelloffset( region,ilev,icoff,ijcoff )
108  ibc = indijk(idcbeg,jdcbeg,kdcbeg,icoff,ijcoff)
109  iec = indijk(idcend,jdcend,kdcend,icoff,ijcoff)
110 
111  ALLOCATE( wrkbar(idbeg:idend,ibc:iec) )
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  ibeg = idcbeg
121  iend = idcend
122  jbeg = jdcbeg
123  jend = jdcend
124  kbeg = kdcbeg
125  kend = kdcend
126 
127 ! we begin with integration over I-direction
128 
129  CALL turb_flolesunifiltcci( global,ndum,ibeg,iend,jbeg,jend,kbeg,kend, &
130  icoff,ijcoff,ndel,idbeg,idend,fact1,fact2,fvar, &
131  fbvar )
132 
133 ! next, integrate over J-direction
134 
135  CALL turb_flolesunifiltccj( global,ndum,ibeg,iend,jbeg,jend,kbeg,kend, &
136  icoff,ijcoff,ndel,idbeg,idend,fact1,fact2,fbvar, &
137  wrkbar )
138 
139 ! finally, integrate over K-direction
140 
141  CALL turb_flolesunifiltcck( global,ndum,ibeg,iend,jbeg,jend,kbeg,kend, &
142  icoff,ijcoff,ndel,idbeg,idend,fact1,fact2,wrkbar, &
143  fbvar )
144 
145 ! deallocate temporary arrays
146 
147  DEALLOCATE( wrkbar )
148 
149 ! finalize --------------------------------------------------------------------
150 
151  CALL deregisterfunction( global )
152 
153 END SUBROUTINE turb_flolesunifiltcc
154 
155 !******************************************************************************
156 !
157 ! RCS Revision history:
158 !
159 ! $Log: TURB_floLesUniFiltCC.F90,v $
160 ! Revision 1.5 2008/12/06 08:44:43 mtcampbe
161 ! Updated license.
162 !
163 ! Revision 1.4 2008/11/19 22:17:55 mtcampbe
164 ! Added Illinois Open Source License/Copyright
165 !
166 ! Revision 1.3 2004/06/03 02:12:41 wasistho
167 ! expand CC-filtering to all dummy layers
168 !
169 ! Revision 1.2 2004/03/12 02:55:36 wasistho
170 ! changed rocturb routine names
171 !
172 ! Revision 1.1 2004/03/08 23:35:45 wasistho
173 ! changed turb nomenclature
174 !
175 ! Revision 1.2 2003/05/15 02:57:06 jblazek
176 ! Inlined index function.
177 !
178 ! Revision 1.1 2002/10/14 23:55:30 wasistho
179 ! Install Rocturb
180 !
181 !
182 !******************************************************************************
183 
184 
185 
186 
187 
188 
189 
**********************************************************************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
**********************************************************************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
subroutine turb_flolesunifiltccj(global, nDum, ibeg, iend, jbeg, jend, kbeg, kend, iCOff, ijCOff, 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
subroutine turb_flolesunifiltcc(region, nDel, idBeg, idEnd, fVar, fbVar)
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 knode iend
**********************************************************************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
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
**********************************************************************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 knode jend
**********************************************************************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 turb_flolesunifiltcck(global, nDum, ibeg, iend, jbeg, jend, kbeg, kend, iCOff, ijCOff, nDel, idBeg, idEnd, fact1, fact2, fVar, filtVar)
**********************************************************************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
subroutine turb_flolesunifiltcci(global, nDum, ibeg, iend, jbeg, jend, kbeg, kend, iCOff, ijCOff, nDel, idBeg, idEnd, fact1, fact2, fVar, filtVar)