Rocstar  1.0
Rocstar multiphysics simulation application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
RFLO_TimeStepViscous.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: calculate max. allowable local/global time step in the case
26 ! of viscous flow.
27 !
28 ! Description: none.
29 !
30 ! Input: regions = data of all grid regions.
31 !
32 ! Output: regions%levels%dt = local time step
33 ! regions%levels%srad = convective spectral radii
34 ! global%dtMin = global time step for all regions on this
35 ! processor(if unsteady flow).
36 !
37 ! Notes: none.
38 !
39 !******************************************************************************
40 !
41 ! $Id: RFLO_TimeStepViscous.F90,v 1.3 2008/12/06 08:44:28 mtcampbe Exp $
42 !
43 ! Copyright: (c) 2001 by the University of Illinois
44 !
45 !******************************************************************************
46 
47 SUBROUTINE rflo_timestepviscous( region )
48 
49  USE moddatatypes
50  USE moddatastruct, ONLY : t_region
51  USE modglobal, ONLY : t_global
56  USE moderror
57  USE modparameters
58  IMPLICIT NONE
59 
60 #include "Indexing.h"
61 
62 ! ... parameters
63  TYPE(t_region) :: region
64 
65 ! ... loop variables
66  INTEGER :: i, j, k
67 
68 ! ... local variables
69  INTEGER :: indcp, indmol, idcbeg, idcend, jdcbeg, jdcend, kdcbeg, kdcend
70  INTEGER :: ipcbeg, ipcend, jpcbeg, jpcend, kpcbeg, kpcend, turbmodel
71  INTEGER :: ilev, icoff, ijcoff, inoff, ijnoff, ijkc, ijkn, ijkn1, indsvel
72 
73  REAL(RFREAL) :: rgas, cpgas, gamma, f1, f2, fac, fmue, dtv, prlam, prturb
74  REAL(RFREAL) :: rrho, u, v, w, sx, sy, sz, svel, ds2, ds, vc, cs, sumsrad
75  REAL(RFREAL) :: srvi, srvj, srvk, dtmin
76  REAL(RFREAL), POINTER :: cv(:,:), dv(:,:), gv(:,:), tv(:,:), dt(:)
77  REAL(RFREAL), POINTER :: si(:,:), sj(:,:), sk(:,:), vol(:)
78  REAL(RFREAL), POINTER :: sivel(:), sjvel(:), skvel(:)
79  REAL(RFREAL), POINTER :: srad(:,:)
80 
81  TYPE(t_global), POINTER :: global
82 
83 !******************************************************************************
84 
85  global => region%global
86 
87  CALL registerfunction( global,'RFLO_TimeStepViscous',&
88  'RFLO_TimeStepViscous.F90' )
89 
90 ! get dimensions and pointers -------------------------------------------------
91 
92  ilev = region%currLevel
93 
94  CALL rflo_getdimensdummy( region,ilev,idcbeg,idcend,jdcbeg,jdcend, &
95  kdcbeg,kdcend )
96  CALL rflo_getdimensphys( region,ilev,ipcbeg,ipcend,jpcbeg,jpcend, &
97  kpcbeg,kpcend )
98  CALL rflo_getcelloffset( region,ilev,icoff,ijcoff )
99  CALL rflo_getnodeoffset( region,ilev,inoff,ijnoff )
100 
101  cv => region%levels(ilev)%mixt%cv
102  dv => region%levels(ilev)%mixt%dv
103  gv => region%levels(ilev)%mixt%gv
104  tv => region%levels(ilev)%mixt%tv
105  dt => region%levels(ilev)%dt
106 
107  si => region%levels(ilev)%grid%si
108  sj => region%levels(ilev)%grid%sj
109  sk => region%levels(ilev)%grid%sk
110  vol => region%levels(ilev)%grid%vol
111  sivel => region%levels(ilev)%grid%siVel
112  sjvel => region%levels(ilev)%grid%sjVel
113  skvel => region%levels(ilev)%grid%skVel
114  indsvel = region%levels(ilev)%grid%indSvel
115 
116  srad => region%levels(ilev)%mixt%srad
117 
118  prlam = region%levels(ilev)%mixt%prLam
119  prturb = region%levels(ilev)%mixt%prTurb
120  indcp = region%levels(ilev)%mixt%indCp
121  indmol = region%levels(ilev)%mixt%indMol
122  turbmodel = region%mixtInput%turbModel
123 
124 ! local time step, spectral radii ---------------------------------------------
125 
126  DO k=kdcbeg,kdcend
127  DO j=jdcbeg,jdcend
128  DO i=idcbeg,idcend
129  ijkc = indijk(i,j,k,icoff,ijcoff)
130  ijkn = indijk(i,j,k,inoff,ijnoff)
131  rrho = 1._rfreal/cv(cv_mixt_dens,ijkc)
132  u = cv(cv_mixt_xmom,ijkc)*rrho
133  v = cv(cv_mixt_ymom,ijkc)*rrho
134  w = cv(cv_mixt_zmom,ijkc)*rrho
135  rgas = 8314.3_rfreal/gv(gv_mixt_mol,ijkc*indmol)
136  cpgas = gv(gv_mixt_cp,ijkc*indcp)
137  gamma = cpgas/(cpgas-rgas)
138  f1 = 4._rfreal*rrho/3._rfreal
139  f2 = gamma*rrho
140  fac = max(f1,f2)
141  IF (turbmodel == turb_model_none) THEN
142  fmue = tv(tv_mixt_muel,ijkc)/prlam
143  ELSE
144  fmue = tv(tv_mixt_muel,ijkc)/prlam + tv(tv_mixt_muet,ijkc)/prturb
145  ENDIF
146  dtv = fac*fmue/vol(ijkc)
147 
148  ijkn1 = indijk(i+1,j,k,inoff,ijnoff)
149  sx = 0.5_rfreal*(si(xcoord,ijkn)+si(xcoord,ijkn1))
150  sy = 0.5_rfreal*(si(ycoord,ijkn)+si(ycoord,ijkn1))
151  sz = 0.5_rfreal*(si(zcoord,ijkn)+si(zcoord,ijkn1))
152  svel = 0.5_rfreal*(sivel(ijkn*indsvel)+sivel(ijkn1*indsvel))
153  ds2 = sx*sx + sy*sy + sz*sz
154  ds = sqrt(ds2)
155  vc = sx*u + sy*v + sz*w - svel
156  cs = dv(dv_mixt_soun,ijkc)*ds
157  srvi = dtv*ds2
158  srad(icoord,ijkc) = abs(vc) + cs
159 
160  ijkn1 = indijk(i,j+1,k,inoff,ijnoff)
161  sx = 0.5_rfreal*(sj(xcoord,ijkn)+sj(xcoord,ijkn1))
162  sy = 0.5_rfreal*(sj(ycoord,ijkn)+sj(ycoord,ijkn1))
163  sz = 0.5_rfreal*(sj(zcoord,ijkn)+sj(zcoord,ijkn1))
164  svel = 0.5_rfreal*(sjvel(ijkn*indsvel)+sjvel(ijkn1*indsvel))
165  ds2 = sx*sx + sy*sy + sz*sz
166  ds = sqrt(ds2)
167  vc = sx*u + sy*v + sz*w - svel
168  cs = dv(dv_mixt_soun,ijkc)*ds
169  srvj = dtv*ds2
170  srad(jcoord,ijkc) = abs(vc) + cs
171 
172  ijkn1 = indijk(i,j,k+1,inoff,ijnoff)
173  sx = 0.5_rfreal*(sk(xcoord,ijkn)+sk(xcoord,ijkn1))
174  sy = 0.5_rfreal*(sk(ycoord,ijkn)+sk(ycoord,ijkn1))
175  sz = 0.5_rfreal*(sk(zcoord,ijkn)+sk(zcoord,ijkn1))
176  svel = 0.5_rfreal*(skvel(ijkn*indsvel)+skvel(ijkn1*indsvel))
177  ds2 = sx*sx + sy*sy + sz*sz
178  ds = sqrt(ds2)
179  vc = sx*u + sy*v + sz*w - svel
180  cs = dv(dv_mixt_soun,ijkc)*ds
181  srvk = dtv*ds2
182  srad(kcoord,ijkc) = abs(vc) + cs
183 
184  sumsrad = srad(icoord,ijkc) + srad(jcoord,ijkc) + srad(kcoord,ijkc) &
185  + 4._rfreal*(srvi+srvj+srvk)
186  sumsrad = max(sumsrad,1.e-30_rfreal)
187  dt(ijkc) = vol(ijkc)/sumsrad
188  ENDDO ! i
189  ENDDO ! j
190  ENDDO ! k
191 
192 ! treat dummy cells -----------------------------------------------------------
193 
194  CALL rflo_copyvectorpatches( ilev,region,dt )
195  CALL rflo_copyvectoredges( ilev,region,dt )
196  CALL rflo_copyvectorcorners( ilev,region,dt )
197 
198  CALL rflo_copymatrixpatches( ilev,region,srad )
199  CALL rflo_copymatrixedges( ilev,region,srad )
200  CALL rflo_copymatrixcorners( ilev,region,srad )
201 
202 ! global time step (this processor) -------------------------------------------
203 
204  IF (global%flowType == flow_unsteady) THEN
205  dtmin = global%dtMin
206 
207  DO k=kpcbeg,kpcend
208  DO j=jpcbeg,jpcend
209  DO i=ipcbeg,ipcend
210  ijkc = indijk(i,j,k,icoff,ijcoff)
211  dtmin = min(dtmin,dt(ijkc))
212  ENDDO ! i
213  ENDDO ! j
214  ENDDO ! k
215 
216  global%dtMin = dtmin
217  ENDIF
218 
219 ! finalize --------------------------------------------------------------------
220 
221  CALL deregisterfunction( global )
222 
223 END SUBROUTINE rflo_timestepviscous
224 
225 !******************************************************************************
226 !
227 ! RCS Revision history:
228 !
229 ! $Log: RFLO_TimeStepViscous.F90,v $
230 ! Revision 1.3 2008/12/06 08:44:28 mtcampbe
231 ! Updated license.
232 !
233 ! Revision 1.2 2008/11/19 22:17:39 mtcampbe
234 ! Added Illinois Open Source License/Copyright
235 !
236 ! Revision 1.1 2004/11/29 20:51:40 wasistho
237 ! lower to upper case
238 !
239 ! Revision 1.17 2003/11/20 16:40:40 mdbrandy
240 ! Backing out RocfluidMP changes from 11-17-03
241 !
242 ! Revision 1.13 2003/10/01 23:52:10 jblazek
243 ! Corrected bug in moving noslip wall BC and grid speeds.
244 !
245 ! Revision 1.12 2003/05/15 02:57:04 jblazek
246 ! Inlined index function.
247 !
248 ! Revision 1.11 2002/09/05 17:40:22 jblazek
249 ! Variable global moved into regions().
250 !
251 ! Revision 1.10 2002/09/02 23:09:47 wasistho
252 ! RFLO grad routines migrated from rocflo to libflo
253 !
254 ! Revision 1.9 2002/08/30 18:25:55 jblazek
255 ! Forgot to multiply grid speeds by face area ...
256 !
257 ! Revision 1.8 2002/08/30 01:47:58 jblazek
258 ! Added support for moving grids.
259 !
260 ! Revision 1.7 2002/08/29 22:45:56 jblazek
261 ! Added support for moving grids.
262 !
263 ! Revision 1.6 2002/08/28 00:03:56 wasistho
264 ! mueT put back to consist only turbulent part
265 !
266 ! Revision 1.5 2002/08/24 03:17:15 wasistho
267 ! put safety within #ifdef TURB
268 !
269 ! Revision 1.4 2002/08/23 03:18:37 wasistho
270 ! due to mueT as Total instead of Turbulent
271 !
272 ! Revision 1.3 2002/03/18 23:11:33 jblazek
273 ! Finished multiblock and MPI.
274 !
275 ! Revision 1.2 2002/02/21 23:25:06 jblazek
276 ! Blocks renamed as regions.
277 !
278 ! Revision 1.1 2002/02/09 01:47:01 jblazek
279 ! Added multi-probe option, residual smoothing, physical time step.
280 !
281 !******************************************************************************
282 
283 
284 
285 
286 
287 
288 
**********************************************************************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
j indices k indices k
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 kpcbeg
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
subroutine rflo_copyvectorpatches(iLev, region, vec)
double sqrt(double d)
Definition: double.h:73
**********************************************************************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 jpcbeg
virtual int f2()
Definition: meshtest1.C:4115
**********************************************************************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 ipcend
virtual int f1()
Definition: meshtest1.C:4114
*********************************************************************Illinois Open Source License ****University of Illinois NCSA **Open Source License University of Illinois All rights reserved ****Developed free of to any person **obtaining a copy of this software and associated documentation to deal with the Software without including without limitation the rights to and or **sell copies of the and to permit persons to whom the **Software is furnished to do subject to the following this list of conditions and the following disclaimers ****Redistributions in binary form must reproduce the above **copyright this list of conditions and the following **disclaimers in the documentation and or other materials **provided with the distribution ****Neither the names of the Center for Simulation of Advanced the University of nor the names of its **contributors may be used to endorse or promote products derived **from this Software without specific prior written permission ****THE SOFTWARE IS PROVIDED AS 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 v
Definition: roccomf90.h:20
subroutine rflo_copymatrixpatches(iLev, region, mat)
subroutine rflo_getnodeoffset(region, iLev, iNodeOffset, ijNodeOffset)
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 kdcbeg
subroutine rflo_copymatrixcorners(iLev, region, mat)
**********************************************************************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 ipcbeg
subroutine rflo_copymatrixedges(iLev, region, mat)
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
Vector_n min(const Array_n_const &v1, const Array_n_const &v2)
Definition: Vector_n.h:346
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 jpcend
**********************************************************************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_timestepviscous(region)
subroutine rflo_copyvectorcorners(iLev, region, vec)
subroutine deregisterfunction(global)
Definition: ModError.F90:469
subroutine rflo_copyvectoredges(iLev, region, vec)
subroutine rflo_getdimensphys(region, iLev, ipcbeg, ipcend, jpcbeg, jpcend, kpcbeg, kpcend)