Rocstar  1.0
Rocstar multiphysics simulation application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
RFLO_CalcGradDummy.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: extrapolate gradients from the interior domain or at the patch
26 ! to the dummy points depending on the boundary condition.
27 !
28 ! Description: dummy gradients of physical boundary copied from interior
29 ! dummy gradients of symmetry boundary mirrored from interior
30 ! outerst dummy gradients of connecting bnd copied from interior
31 !
32 ! Input: region = data of current region.
33 ! patch = current patch.
34 ! iBegV, iEndV = begin and end var index
35 ! iBegG, iEndG = begin and end gradient index
36 !
37 ! Output: gradi, gradj, gradk = gradients at dummy points of the current patch
38 ! plane
39 !
40 ! Notes: many parameters are passed as subroutine arguments to minimize
41 ! repetition of work
42 !
43 !******************************************************************************
44 !
45 ! $Id: RFLO_CalcGradDummy.F90,v 1.3 2008/12/06 08:44:06 mtcampbe Exp $
46 !
47 ! Copyright: (c) 2001 by the University of Illinois
48 !
49 !******************************************************************************
50 
51 SUBROUTINE rflo_calcgraddummy( region,patch,iBegV,iEndV,iBegG,iEndG, &
52  gradi,gradj,gradk )
53 
54  USE moddatatypes
55  USE modbndpatch, ONLY : t_patch
56  USE moddatastruct, ONLY : t_region
60  USE moderror
61  USE modparameters
62  IMPLICIT NONE
63 
64 ! ... parameters
65  TYPE(t_region) :: region
66  TYPE(t_patch) :: patch
67 
68  INTEGER :: ibegv, iendv, ibegg, iendg
69 
70  REAL(RFREAL), POINTER :: gradi(:,:), gradj(:,:), gradk(:,:)
71 
72 ! ... local variables
73  INTEGER :: ilev, lbound, bctype
74  INTEGER :: ibeg, iend, jbeg, jend, kbeg, kend
75  INTEGER :: indbeg, indend, jndbeg, jndend, kndbeg, kndend
76  INTEGER :: inode, jnode, knode, idir, jdir, kdir
77 
78 !******************************************************************************
79 
80  CALL registerfunction( region%global,'RFLO_CalcGradDummy',&
81  'RFLO_CalcGradDummy.F90' )
82 
83 ! get dimensions and pointers -------------------------------------------------
84 
85  ilev = region%currLevel
86  lbound = patch%lbound
87  bctype = patch%bcType
88 
89  CALL rflo_getpatchindices( region,patch,ilev,ibeg,iend,jbeg,jend,kbeg,kend )
91 
92 ! take the right face vector and make it point outwards ----------------------
93 
94  inode = 0
95  jnode = 0
96  knode = 0
97  IF (lbound==2 .OR. lbound==4 .OR. lbound==6) THEN
98  inode = -idir
99  jnode = -jdir
100  knode = -kdir
101  ENDIF
102 
103  indbeg = ibeg + inode
104  jndbeg = jbeg + jnode
105  kndbeg = kbeg + knode
106  indend = iend + inode + 1 - abs(idir)
107  jndend = jend + jnode + 1 - abs(jdir)
108  kndend = kend + knode + 1 - abs(kdir)
109 
110 ! call dummy extrapolation routines depending on bcType -----------------------
111 
112  IF ((bctype>=bc_slipwall .AND. bctype<=bc_slipwall +bc_range) .OR. &
113  (bctype>=bc_noslipwall .AND. bctype<=bc_noslipwall+bc_range) .OR. &
114  (bctype>=bc_injection .AND. bctype<=bc_injection +bc_range) .OR. &
115  (bctype>=bc_inflow .AND. bctype<=bc_inflow +bc_range) .OR. &
116  (bctype>=bc_outflow .AND. bctype<=bc_outflow +bc_range) .OR. &
117  (bctype>=bc_farfield .AND. bctype<=bc_farfield +bc_range)) THEN
118 
119 ! - complete dummy layers by zeroth extrapolation
120 
121  CALL rflo_calcgraddummyphys( region,lbound, &
122  idir ,jdir ,kdir , &
123  indbeg,indend,jndbeg,jndend,kndbeg,kndend, &
124  ibegv ,iendv ,ibegg ,iendg , &
125  gradi ,gradj ,gradk )
126 
127  ELSE IF (bctype>=bc_symmetry .AND. bctype<=bc_symmetry+bc_range) THEN
128 
129 ! - complete dummy layers by linear extrapolation
130 
131  CALL rflo_calcgraddummysymm( region,lbound, &
132  idir ,jdir ,kdir , &
133  inode ,jnode ,knode , &
134  ibeg ,iend ,jbeg ,jend ,kbeg ,kend , &
135  indbeg,indend,jndbeg,jndend,kndbeg,kndend, &
136  ibegv ,iendv ,ibegg ,iendg , &
137  gradi ,gradj ,gradk )
138 
139  ELSE IF ((bctype>=bc_tra_peri .AND. bctype<=bc_tra_peri +bc_range) .OR. &
140  (bctype>=bc_rot_peri .AND. bctype<=bc_rot_peri +bc_range) .OR. &
141  (bctype>=bc_regionconf .AND. bctype<=bc_regionconf+bc_range)) THEN
142 
143 ! - complete the outerst dummy layers by zeroth extrapolation
144 
145  CALL rflo_calcgraddummyconn( region,lbound, &
146  idir ,jdir ,kdir , &
147  indbeg,indend,jndbeg,jndend,kndbeg,kndend, &
148  ibegv ,iendv ,ibegg ,iendg , &
149  gradi ,gradj ,gradk )
150 
151  ELSE IF (bctype>=bc_regionint .AND. bctype<=bc_regionint+bc_range) THEN
152 
153  ELSE IF (bctype>=bc_regnonconf .AND. bctype<=bc_regnonconf+bc_range) THEN
154 
155 ! - everything else
156 
157  ELSE
158 
159  ENDIF
160 
161 ! finalize --------------------------------------------------------------------
162 
163  CALL deregisterfunction( region%global )
164 
165 END SUBROUTINE rflo_calcgraddummy
166 
167 !******************************************************************************
168 !
169 ! RCS Revision history:
170 !
171 ! $Log: RFLO_CalcGradDummy.F90,v $
172 ! Revision 1.3 2008/12/06 08:44:06 mtcampbe
173 ! Updated license.
174 !
175 ! Revision 1.2 2008/11/19 22:17:20 mtcampbe
176 ! Added Illinois Open Source License/Copyright
177 !
178 ! Revision 1.1 2004/11/29 21:25:16 wasistho
179 ! lower to upper case
180 !
181 ! Revision 1.7 2003/11/20 16:40:34 mdbrandy
182 ! Backing out RocfluidMP changes from 11-17-03
183 !
184 ! Revision 1.4 2003/05/15 02:57:01 jblazek
185 ! Inlined index function.
186 !
187 ! Revision 1.3 2002/09/27 00:57:09 jblazek
188 ! Changed makefiles - no makelinks needed.
189 !
190 ! Revision 1.2 2002/09/05 17:40:19 jblazek
191 ! Variable global moved into regions().
192 !
193 ! Revision 1.1 2002/09/02 22:58:54 wasistho
194 ! RFLO grad routines migrated from rocflo to libflo
195 !
196 ! Revision 1.3 2002/07/22 22:59:11 jblazek
197 ! Some more clean up.
198 !
199 ! Revision 1.2 2002/07/19 23:43:11 wasistho
200 ! made compliant with CODING RULE
201 !
202 !******************************************************************************
203 
204 
205 
206 
207 
208 
209 
**********************************************************************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)
subroutine rflo_calcgraddummysymm(region, lbound, idir, jdir, kdir, inode, jnode, knode, ibeg, iend, jbeg, jend, kbeg, kend, indBeg, indEnd, jndBeg, jndEnd, kndBeg, kndEnd, iBegV, iEndV, iBegG, iEndG, gradi, gradj, gradk)
**********************************************************************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
subroutine registerfunction(global, funName, fileName)
Definition: ModError.F90:449
subroutine rflo_getpatchindices(region, patch, iLev, ibeg, iend, jbeg, jend, kbeg, kend)
**********************************************************************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
**********************************************************************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
**********************************************************************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 iEndG gradi(:,:)
subroutine rflo_calcgraddummy(region, patch, iBegV, iEndV, iBegG, iEndG, gradi, gradj, gradk)
**********************************************************************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_calcgraddummyconn(region, lbound, idir, jdir, kdir, indBeg, indEnd, jndBeg, jndEnd, kndBeg, kndEnd, iBegV, iEndV, iBegG, iEndG, gradi, gradj, gradk)
subroutine rflo_calcgraddummyphys(region, lbound, idir, jdir, kdir, indBeg, indEnd, jndBeg, jndEnd, kndBeg, kndEnd, iBegV, iEndV, iBegG, iEndG, gradi, gradj, gradk)
**********************************************************************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
**********************************************************************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
**********************************************************************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 iEndG gradj(:,:)