Rocstar  1.0
Rocstar multiphysics simulation application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
TURB_floLesGenCoCC.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: Get filter coefficients of cell-cell filtering.
26 !
27 ! Description: The coefficients are obtained in i, j and k direction.
28 ! For each direction, distinction is made between the low delta
29 ! (1 or 2 grid-spacing) and high delta (2 or 4 grid-spacing).
30 !
31 ! Input: region = data of current region
32 !
33 ! Output: turb%ccCofi1,2,4, turb%ccCofj1,2,4, turb%ccCofk1,2,4.
34 !
35 ! Notes: This routine is only relevant if non-uniform filter is selected.
36 !
37 !******************************************************************************
38 !
39 ! $Id: TURB_floLesGenCoCC.F90,v 1.5 2008/12/06 08:44:43 mtcampbe Exp $
40 !
41 ! Copyright: (c) 2001 by the University of Illinois
42 !
43 !******************************************************************************
44 
45 SUBROUTINE turb_flolesgencocc( region )
46 
47  USE moddatatypes
48  USE moddatastruct, ONLY : t_region
49  USE modglobal, ONLY : t_global
53  USE modturbulence, ONLY : t_turb
54  USE moderror
55  USE modparameters
57  IMPLICIT NONE
58 
59 ! ... parameters
60  TYPE(t_region), TARGET :: region
61 
62 ! ... loop variables
63 
64 ! ... local variables
65  CHARACTER(CHRLEN) :: rcsidentstring
66  TYPE(t_global), POINTER :: global
67 
68  INTEGER :: ibeg,iend,jbeg,jend,kbeg,kend
69  INTEGER :: idcbeg,idcend,jdcbeg,jdcend,kdcbeg,kdcend
70  INTEGER :: idnbeg,idnend,jdnbeg,jdnend,kdnbeg,kdnend
71  INTEGER :: ilev,icoff,ijcoff,inoff,ijnoff,minidx,maxidx,segid
72  INTEGER :: homdir(diri:dirk),filterwidth(diri:dirk)
73  TYPE(t_turb), POINTER :: turb
74  REAL(RFREAL), POINTER :: segm(:,:),cccofa(:,:),cccofb(:,:)
75  REAL(RFREAL), ALLOCATABLE :: ds(:)
76 
77 !******************************************************************************
78 
79  rcsidentstring = '$RCSfile: TURB_floLesGenCoCC.F90,v $'
80 
81  global => region%global
82  CALL registerfunction( global,'TURB_FloLesGenCoCC',&
83  'TURB_floLesGenCoCC.F90' )
84 
85 ! get indices, parameters and pointers ----------------------------------------
86 
87  ilev = region%currLevel
88  homdir(:) = region%turbInput%homDir(:)
89  filterwidth(:) = region%turbInput%filterWidth(:)
90  turb => region%levels(ilev)%turb
91  CALL rflo_getdimensdummy( region,ilev,idcbeg,idcend, &
92  jdcbeg,jdcend,kdcbeg,kdcend )
93  CALL rflo_getdimensdummynodes( region,ilev,idnbeg,idnend, &
94  jdnbeg,jdnend,kdnbeg,kdnend )
95  CALL rflo_getnodeoffset( region,ilev,inoff,ijnoff )
96  CALL rflo_getcelloffset( region,ilev,icoff,ijcoff )
97 
98  minidx = min(idnbeg,jdnbeg,kdnbeg)-2
99  maxidx = max(idnend,jdnend,kdnend)+2
100  ALLOCATE( ds(minidx:maxidx) )
101 
102  ibeg = idcbeg
103  iend = idcend
104  jbeg = jdcbeg
105  jend = jdcend
106  kbeg = kdcbeg
107  kend = kdcend
108 
109 ! filter coefficients in I direction
110 
111  IF (homdir(diri) == off) THEN
112  IF (filterwidth(diri)==filwidth_one) THEN
113 
114 ! --- filter coefficients at cell centers
115  segm => region%levels(ilev)%turb%workK
116  cccofa => turb%ccCofi1
117  cccofb => turb%ccCofi2
118  segid = 1
119  CALL turb_flolesgencocclo( global,diri,ibeg,iend,jbeg,jend,kbeg,kend, &
120  minidx,maxidx,segid,icoff,ijcoff,inoff,ijnoff,ds, &
121  segm,cccofa,cccofb )
122 
123  ELSEIF ((filterwidth(diri)==filwidth_two) .OR. &
124  (filterwidth(diri)==filwidth_zero)) THEN
125 
126 ! --- filter coefficients at cell centers
127  segm => region%levels(ilev)%turb%workK
128  cccofa => turb%ccCofi2
129  cccofb => turb%ccCofi4
130  segid = 1
131  CALL turb_flolesgencocchi( global,diri,ibeg,iend,jbeg,jend,kbeg,kend, &
132  minidx,maxidx,segid,icoff,ijcoff,inoff,ijnoff,ds, &
133  segm,cccofa,cccofb )
134 
135  ENDIF
136  ENDIF
137 
138 ! filter coefficients in J direction
139 
140  IF (homdir(dirj) == off) THEN
141  IF (filterwidth(dirj)==filwidth_one) THEN
142 
143 ! --- filter coefficients at cell centers
144  segm => region%levels(ilev)%turb%workI
145  cccofa => turb%ccCofj1
146  cccofb => turb%ccCofj2
147  segid = 1
148  CALL turb_flolesgencocclo( global,dirj,ibeg,iend,jbeg,jend,kbeg,kend, &
149  minidx,maxidx,segid,icoff,ijcoff,inoff,ijnoff,ds, &
150  segm,cccofa,cccofb )
151 
152  ELSEIF ((filterwidth(dirj)==filwidth_two) .OR. &
153  (filterwidth(dirj)==filwidth_zero)) THEN
154 
155 ! --- filter coefficients at cell centers
156  segm => region%levels(ilev)%turb%workI
157  cccofa => turb%ccCofj2
158  cccofb => turb%ccCofj4
159  segid = 1
160  CALL turb_flolesgencocchi( global,dirj,ibeg,iend,jbeg,jend,kbeg,kend, &
161  minidx,maxidx,segid,icoff,ijcoff,inoff,ijnoff,ds, &
162  segm,cccofa,cccofb )
163 
164  ENDIF
165  ENDIF
166 
167 ! filter coefficients in K direction
168 
169  IF (homdir(dirk) == off) THEN
170  IF (filterwidth(dirk)==filwidth_one) THEN
171 
172 ! --- filter coefficients at cell centers
173  segm => region%levels(ilev)%turb%workJ
174  cccofa => turb%ccCofk1
175  cccofb => turb%ccCofk2
176  segid = 1
177  CALL turb_flolesgencocclo( global,dirk,ibeg,iend,jbeg,jend,kbeg,kend, &
178  minidx,maxidx,segid,icoff,ijcoff,inoff,ijnoff,ds, &
179  segm,cccofa,cccofb )
180 
181  ELSEIF ((filterwidth(dirk)==filwidth_two) .OR. &
182  (filterwidth(dirk)==filwidth_zero)) THEN
183 
184 ! --- filter coefficients at cell centers
185  segm => region%levels(ilev)%turb%workJ
186  cccofa => turb%ccCofk2
187  cccofb => turb%ccCofk4
188  segid = 1
189  CALL turb_flolesgencocchi( global,dirk,ibeg,iend,jbeg,jend,kbeg,kend, &
190  minidx,maxidx,segid,icoff,ijcoff,inoff,ijnoff,ds, &
191  segm,cccofa,cccofb )
192 
193  ENDIF
194  ENDIF
195 
196 ! deallocate temporary arrays
197 
198  DEALLOCATE( ds )
199 
200 ! finalize --------------------------------------------------------------------
201 
202  CALL deregisterfunction( global )
203 
204 END SUBROUTINE turb_flolesgencocc
205 
206 !******************************************************************************
207 !
208 ! RCS Revision history:
209 !
210 ! $Log: TURB_floLesGenCoCC.F90,v $
211 ! Revision 1.5 2008/12/06 08:44:43 mtcampbe
212 ! Updated license.
213 !
214 ! Revision 1.4 2008/11/19 22:17:55 mtcampbe
215 ! Added Illinois Open Source License/Copyright
216 !
217 ! Revision 1.3 2004/08/04 02:50:34 wasistho
218 ! removed turb%avgCoI,J,K replaced with turb%workI,J,K
219 !
220 ! Revision 1.2 2004/03/12 02:55:36 wasistho
221 ! changed rocturb routine names
222 !
223 ! Revision 1.1 2004/03/08 23:35:45 wasistho
224 ! changed turb nomenclature
225 !
226 ! Revision 1.2 2003/08/29 01:41:24 wasistho
227 ! Added TARGET attribute to region variable, since pointers are cached into it
228 !
229 ! Revision 1.1 2002/10/14 23:55:29 wasistho
230 ! Install Rocturb
231 !
232 !
233 !******************************************************************************
234 
235 
236 
237 
238 
239 
240 
**********************************************************************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
Vector_n max(const Array_n_const &v1, const Array_n_const &v2)
Definition: Vector_n.h:354
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
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 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
**********************************************************************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_flolesgencocclo(global, ijk, ibeg, iend, jbeg, jend, kbeg, kend, minIdx, maxIdx, segId, iCOff, ijCOff, iNOff, ijNOff, ds, segm, ccCofA, ccCofB)
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
Vector_n min(const Array_n_const &v1, const Array_n_const &v2)
Definition: Vector_n.h:346
**********************************************************************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 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
subroutine turb_flolesgencocchi(global, ijk, ibeg, iend, jbeg, jend, kbeg, kend, minIdx, maxIdx, segId, iCOff, ijCOff, iNOff, ijNOff, ds, segm, ccCofA, ccCofB)
**********************************************************************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
subroutine turb_flolesgencocc(region)