Rocstar  1.0
Rocstar multiphysics simulation application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
RFLO_C2fAvgCoeffsPatch.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: Construct averaging coeffients at patches of physical and symmetry
26 ! boundaries
27 !
28 ! Description: For symmetry and physical bc with linear dummy extrapolation
29 ! the averaging coefficients are half-half, while for physical
30 ! bc with constant dummy extrapolation, they are one-zero.
31 !
32 ! Input: region = info of current region data
33 ! patch = current patch data
34 !
35 ! Output: Averaging coefficients c2fCoI, c2fCoJ, c2fCoK at boundary patches.
36 !
37 ! Notes: Mother routine = RFLO_C2fAvgCoeffs.
38 !
39 !******************************************************************************
40 !
41 ! $Id: RFLO_C2fAvgCoeffsPatch.F90,v 1.4 2008/12/06 08:44:26 mtcampbe Exp $
42 !
43 ! Copyright: (c) 2001 by the University of Illinois
44 !
45 !******************************************************************************
46 
47 SUBROUTINE rflo_c2favgcoeffspatch( region,patch )
48 
49  USE moddatatypes
50  USE modbndpatch, ONLY : t_patch
51  USE moddatastruct, ONLY : t_region
52  USE modglobal, ONLY : t_global
55  USE moderror
56  USE modparameters
57  IMPLICIT NONE
58 
59 #include "Indexing.h"
60 
61 ! ... parameters
62  TYPE(t_region) :: region
63  TYPE(t_patch) :: patch
64 
65 ! ... loop variables
66  INTEGER :: i, j, k
67 
68 ! ... local variables
69  TYPE(t_global), POINTER :: global
70 
71  INTEGER :: ilev, lbound, bctype
72  INTEGER :: ibeg, iend, jbeg, jend, kbeg, kend
73  INTEGER :: inode, jnode, knode, idir, jdir, kdir, coindx(2)
74  INTEGER :: inoff, ijnoff, ijkn
75  INTEGER :: iextrap_slipw,iextrap_inject
76 
77  REAL(RFREAL), POINTER :: avgco(:,:)
78 
79 !******************************************************************************
80 
81  global => region%global
82  CALL registerfunction( global,'RFLO_C2fAvgCoeffsPatch',&
83  'RFLO_C2fAvgCoeffsPatch.F90' )
84 
85 ! get dimensions and pointers-------------------------------------------------
86 
87  ilev = region%currLevel
88  lbound = patch%lbound
89  bctype = patch%bcType
90 
91  CALL rflo_getpatchindices( region,patch,ilev,ibeg,iend,jbeg,jend,kbeg,kend )
93  CALL rflo_getnodeoffset( region,ilev,inoff,ijnoff )
94 
95  inode = 0
96  jnode = 0
97  knode = 0
98  coindx(1) = 1
99  coindx(2) = 2
100  IF( lbound==2 .OR. lbound==4 .OR. lbound==6 ) THEN
101  inode = -idir
102  jnode = -jdir
103  knode = -kdir
104  coindx(1) = 2
105  coindx(2) = 1
106  ENDIF
107 
108  IF (lbound==1 .OR. lbound==2) THEN
109  avgco => region%levels(ilev)%grid%c2fCoI
110  ELSE IF (lbound==3 .OR. lbound==4) THEN
111  avgco => region%levels(ilev)%grid%c2fCoJ
112  ELSE IF (lbound==5 .OR. lbound==6) THEN
113  avgco => region%levels(ilev)%grid%c2fCoK
114  ENDIF
115 
116  IF (bctype>=bc_slipwall .AND. bctype<=bc_slipwall+bc_range) &
117  iextrap_slipw = patch%mixt%switches(bcswi_slipw_extrap)
118  IF (bctype>=bc_injection .AND. bctype<=bc_injection+bc_range) &
119  iextrap_inject = patch%mixt%switches(bcswi_inject_extrap)
120 
121  IF ((bctype>=bc_slipwall .AND. bctype<=bc_slipwall+bc_range &
122  .AND. iextrap_slipw==extrapol_linear) .OR. &
123  (bctype>=bc_noslipwall .AND. bctype<=bc_noslipwall+bc_range) .OR. &
124  (bctype>=bc_injection .AND. bctype<=bc_injection+bc_range &
125  .AND. iextrap_inject==extrapol_linear) .OR. &
126  (bctype>=bc_inflow .AND. bctype<=bc_inflow+bc_range) .OR. &
127  (bctype>=bc_outflow .AND. bctype<=bc_outflow+bc_range) .OR. &
128  (bctype>=bc_farfield .AND. bctype<=bc_farfield+bc_range) .OR. &
129  (bctype>=bc_symmetry .AND. bctype<=bc_symmetry+bc_range)) THEN
130 
131  CALL avgcopatchlinear
132 
133  ELSE IF ((bctype>=bc_slipwall .AND. bctype<=bc_slipwall+bc_range &
134  .AND. iextrap_slipw==extrapol_const ) .OR. &
135  (bctype>=bc_injection .AND. bctype<=bc_injection+bc_range &
136  .AND. iextrap_inject==extrapol_const )) THEN
137 
138  CALL avgcopatchconstant
139 
140  ELSE IF (bctype>=bc_regionint .AND. bctype<=bc_regionint+bc_range) THEN
141 
142  ELSE IF (bctype>=bc_regnonconf .AND. bctype<=bc_regnonconf+bc_range) THEN
143 
144 ! everything else
145 
146  ELSE
147 
148  ENDIF
149 
150 ! finalize --------------------------------------------------------------------
151 
152  CALL deregisterfunction( global )
153 
154 ! ==============================================================================
155 ! completion subroutines for linear and constant extrap. case
156 ! ==============================================================================
157 
158 CONTAINS
159 
160  SUBROUTINE avgcopatchlinear
161 
162 ! define averaging coefficient at patch with linearly extrapolated dummies
163 
164  DO k=kbeg,kend
165  DO j=jbeg,jend
166  DO i=ibeg,iend
167 
168  ijkn = indijk(i+inode ,j+jnode ,k+knode ,inoff,ijnoff)
169 
170  avgco(coindx(2),ijkn) = 0.5_rfreal
171  avgco(coindx(1),ijkn) = 0.5_rfreal
172 
173  ENDDO ! i
174  ENDDO ! j
175  ENDDO ! k
176 
177  END SUBROUTINE avgcopatchlinear
178 
179 ! ##############################################################################
180 
182 
183 ! define averaging coefficient at patch with linearly extrapolated dummies
184 
185  DO k=kbeg,kend
186  DO j=jbeg,jend
187  DO i=ibeg,iend
188 
189  ijkn = indijk(i+inode ,j+jnode ,k+knode ,inoff,ijnoff)
190 
191  avgco(coindx(2),ijkn) = 0._rfreal
192  avgco(coindx(1),ijkn) = 1._rfreal
193 
194  ENDDO ! i
195  ENDDO ! j
196  ENDDO ! k
197 
198  END SUBROUTINE avgcopatchconstant
199 
200 END SUBROUTINE rflo_c2favgcoeffspatch
201 
202 !******************************************************************************
203 !
204 ! RCS Revision history:
205 !
206 ! $Log: RFLO_C2fAvgCoeffsPatch.F90,v $
207 ! Revision 1.4 2008/12/06 08:44:26 mtcampbe
208 ! Updated license.
209 !
210 ! Revision 1.3 2008/11/19 22:17:37 mtcampbe
211 ! Added Illinois Open Source License/Copyright
212 !
213 ! Revision 1.2 2006/08/19 15:39:26 mparmar
214 ! Renamed patch variables
215 !
216 ! Revision 1.1 2004/11/29 20:51:38 wasistho
217 ! lower to upper case
218 !
219 ! Revision 1.3 2004/08/03 00:51:51 wasistho
220 ! changed avgCo to c2fCo in the description
221 !
222 ! Revision 1.2 2004/08/02 19:33:02 wasistho
223 ! changed grid%avgCo to grid%c2fCo
224 !
225 ! Revision 1.1 2004/07/30 17:30:31 wasistho
226 ! initial import routines starting with RFLO_c2fAvg...
227 !
228 !
229 !
230 !******************************************************************************
231 
232 
233 
234 
235 
236 
237 
subroutine rflo_c2favgcoeffspatch(region, patch)
**********************************************************************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 rflo_getpatchdirection(patch, idir, jdir, kdir)
**********************************************************************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 inode
j indices k indices k
Definition: Indexing.h:6
subroutine registerfunction(global, funName, fileName)
Definition: ModError.F90:449
subroutine rflo_getpatchindices(region, patch, iLev, ibeg, iend, jbeg, jend, kbeg, kend)
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 jdir
Definition: patch.h:74
**********************************************************************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
blockLoc i
Definition: read.cpp:79
**********************************************************************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 idir
j indices j
Definition: Indexing.h:6
subroutine avgcopatchconstant
**********************************************************************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 kdir
**********************************************************************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 avgcopatchlinear
**********************************************************************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 jnode