Rocstar  1.0
Rocstar multiphysics simulation application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PLAG_PatchGetBufferSize.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: obtains exact buffer size for patches.
26 !
27 ! Description: none.
28 !
29 ! Input: region = current region.
30 !
31 ! Output: regions(iReg)%levels%patch%buffPlag%nBuffSize = buffer size.
32 !
33 ! Notes: none.
34 !
35 !******************************************************************************
36 !
37 ! $Id: PLAG_PatchGetBufferSize.F90,v 1.4 2008/12/06 08:44:34 mtcampbe Exp $
38 !
39 ! Copyright: (c) 2002 by the University of Illinois
40 !
41 !******************************************************************************
42 
43 SUBROUTINE plag_patchgetbuffersize( region )
44 
45  USE moddatatypes
47  USE modbndpatch, ONLY : t_patch
48  USE moddatastruct, ONLY : t_region
49  USE modglobal, ONLY : t_global
52 
53  USE moderror
54  USE modparameters
56  IMPLICIT NONE
57 
58 #include "Indexing.h"
59 
60 ! ... parameters
61  TYPE(t_region) :: region
62 
63 ! ... loop variables
64  INTEGER :: i, idum, ipatch, ipcls, j,k
65 
66 ! ... local variables
67  CHARACTER(CHRLEN) :: rcsidentstring
68 
69  INTEGER :: bctype, ibeg, ic, icoff, idir, iend, ijcoff, ijnoff, &
70  ijkcpatch, ijkcplag, ijkdpatch,ilev, inode, inoff, &
71  jbeg, jc, jdir, jend, jnode, kbeg, kc, kdir, kend, knode, &
72  lbound, n1, n2, ndumcells, npatches, npcls, npclsbufftot, noff
73  INTEGER, POINTER, DIMENSION(:,:) :: paiv
74 
75 
76  TYPE(t_patch), POINTER :: ppatch
77  TYPE(t_plag), POINTER :: pplag
78  TYPE(t_buffer_plag), POINTER :: pbuffplag
79  TYPE(t_global), POINTER :: global
80 
81 !******************************************************************************
82 
83  rcsidentstring = '$RCSfile: PLAG_PatchGetBufferSize.F90,v $ $Revision: 1.4 $'
84 
85  global => region%global
86 
87  CALL registerfunction( global, 'PLAG_PatchGetBufferSize',&
88  'PLAG_PatchGetBufferSize.F90' )
89 
90 ! Get dimensions --------------------------------------------------------------
91 
92  ilev = region%currLevel
93  npatches = region%nPatches
94  ndumcells = region%nDumCells
95 
96  npcls = region%levels(ilev)%plag%nPcls
97  npclsbufftot = region%plagInput%nPclsBuffTot
98 
99 ! Set pointers ----------------------------------------------------------------
100 
101  pplag => region%levels(ilev)%plag
102  paiv => pplag%aiv
103 
104 ! Loop over patches -----------------------------------------------------------
105 
106  DO ipatch=1,npatches
107 
108  ppatch => region%levels(ilev)%patches(ipatch)
109 
110  bctype = ppatch%bcType
111 
112 ! - Get patch dimensions ------------------------------------------------------
113 
114  lbound = ppatch%lbound
115 
116  CALL rflo_getpatchindices( region,ppatch,ilev, &
117  ibeg,iend,jbeg,jend,kbeg,kend )
118  CALL rflo_getpatchdirection( ppatch,idir,jdir,kdir )
119  CALL rflo_getcelloffset( region,ilev,icoff,ijcoff )
120  CALL rflo_getnodeoffset( region,ilev,inoff,ijnoff )
121 
122  noff = abs(ppatch%l1end-ppatch%l1beg) + 1
123 
124  inode = 0
125  jnode = 0
126  knode = 0
127  IF (lbound==2 .OR. lbound==4 .OR. lbound==6) THEN
128  inode = -idir
129  jnode = -jdir
130  knode = -kdir
131  ENDIF ! lbound
132 
133 ! - Set pointers and initialize buffer sizes ----------------------------------
134 
135  IF ((bctype>=bc_regionconf .AND. bctype<=bc_regionconf+bc_range) .OR. &
136  (bctype>=bc_tra_peri .AND. bctype<=bc_tra_peri +bc_range) .OR. &
137  (bctype>=bc_rot_peri .AND. bctype<=bc_rot_peri +bc_range)) THEN
138 
139  pbuffplag => ppatch%bufferPlag
140 
141  pbuffplag%nBuffSize = 0
142 
143  pbuffplag%nSendBuffI = 0
144  pbuffplag%nSendBuffR = 0
145 
146  pbuffplag%nRecvBuffI = 0
147  pbuffplag%nRecvBuffR = 0
148 
149 !- Bypass loop for null number of particles -----------------------------------
150 
151  IF ( npcls == 0 ) goto 1999
152 
153 ! - Loop over particles -------------------------------------------------------
154 
155  DO ipcls = 1, npcls
156  ijkcplag = paiv(aiv_plag_icells,ipcls)
157  ic = paiv(aiv_plag_indexi,ipcls)
158  jc = paiv(aiv_plag_indexj,ipcls)
159  kc = paiv(aiv_plag_indexk,ipcls)
160 
161 ! -- Loop over patch and dummy cells ------------------------------------------
162 
163  DO idum=1,ndumcells
164  DO k=kbeg,kend
165  DO j=jbeg,jend
166  DO i=ibeg,iend
167  ijkcpatch = indijk(i-(idum-1)*idir,j-(idum-1)*jdir,k-(idum-1)*kdir, icoff,ijcoff)
168  ijkdpatch = indijk(i-idum*idir,j-idum*jdir,k-idum*kdir,icoff,ijcoff)
169  IF ( ijkcplag == ijkdpatch ) THEN
170  pbuffplag%nBuffSize = pbuffplag%nBuffSize + 1
171  END IF ! ijkCPlag
172 
173  END DO ! i
174  END DO ! j
175  END DO ! k
176  END DO ! idum
177 
178  END DO ! iPcls
179 
180 1999 CONTINUE
181  ENDIF ! bcType
182  ENDDO ! iPatch
183 
184 ! finalize --------------------------------------------------------------------
185 
186 999 CONTINUE
187 
188  CALL deregisterfunction( global )
189 
190 END SUBROUTINE plag_patchgetbuffersize
191 
192 !******************************************************************************
193 !
194 ! RCS Revision history:
195 !
196 ! $Log: PLAG_PatchGetBufferSize.F90,v $
197 ! Revision 1.4 2008/12/06 08:44:34 mtcampbe
198 ! Updated license.
199 !
200 ! Revision 1.3 2008/11/19 22:17:47 mtcampbe
201 ! Added Illinois Open Source License/Copyright
202 !
203 ! Revision 1.2 2006/04/07 15:19:23 haselbac
204 ! Removed tabs
205 !
206 ! Revision 1.1 2004/12/01 20:57:56 fnajjar
207 ! Initial revision after changing case
208 !
209 ! Revision 1.7 2004/04/09 23:14:00 fnajjar
210 ! Moved bypass of null particle size after setting buffer sizes to zero
211 !
212 ! Revision 1.6 2003/05/15 02:57:05 jblazek
213 ! Inlined index function.
214 !
215 ! Revision 1.5 2003/01/16 20:58:00 f-najjar
216 ! Reincluded missing CVS comments
217 !
218 ! Revision 1.4 2003/01/16 20:24:32 f-najjar
219 ! Removed iRegionGlobal
220 !
221 ! Revision 1.3 2003/01/13 19:52:10 f-najjar
222 ! Remove WRITE statement
223 !
224 ! Revision 1.2 2003/01/13 19:31:44 f-najjar
225 ! Included I8 in FORMAT call
226 !
227 ! Revision 1.1 2002/10/25 14:18:35 f-najjar
228 ! Initial Import of Rocpart
229 !
230 !
231 !******************************************************************************
232 
233 
234 
235 
236 
237 
238 
**********************************************************************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 kc
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
**********************************************************************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 ic
subroutine rflo_getpatchindices(region, patch, iLev, ibeg, iend, jbeg, jend, kbeg, kend)
subroutine plag_patchgetbuffersize(region)
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
**********************************************************************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
subroutine rflo_getcelloffset(region, iLev, iCellOffset, ijCellOffset)
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 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 jc