IMPACT T
Data Types | Functions/Subroutines | Variables
compdomclass Module Reference

This class defines 3-D global and local computational domain in the parallel simulation. More...

Data Types

interface  balance_compdom
 
type  compdom
 
interface  construct_compdom
 
interface  setlctab_compdom
 

Functions/Subroutines

subroutine init_compdom (this, distparam, nparam, flg, nx, ny, nz, grid2d, nprocrow, nproccol, Flagbc, xrad, yrad, pe
 calculate the initial computational geometry parameters and double precision parameters. Here, computational domain is mapped onto a one dimension processor array in y direction. Load balance is achieved using density function integration. More...
 
subroutine update_compdom (this, ptrange, grid2d, Flagbc)
 update geometry parameters using new particle positions. More...
 
subroutine updateold_compdom (this, inrange, grid2d, nplc)
 update geometry parameters using new particle positions. More...
 
subroutine balance1_compdom (source, lctabnmz, lctabnmy, lctabrgz, lctabrgy, npz, npy, commrow, commcol, innx, inny, innz, inyglb,
 find the balanced local domain geometry so that the number of particles on this domain about equal. More...
 
subroutine balance2_compdom (source, lctabnmz, lctabrgz, npz, npy, commrow, commcol, innx, inny, innz, inyglb, inzglb, hz, zmin)
 
subroutine getmsize_compdom (this, msize)
 
subroutine getmnum_compdom (this, mnum)
 
subroutine getlcmnum_compdom (this, mnum)
 
subroutine getrange_compdom (this, range)
 
subroutine getlcrange_compdom (this, range)
 
subroutine getlctabrg_compdom (this, lctable)
 
subroutine getlctabnm_compdom (this, lctable)
 
subroutine setlctab1_compdom (this, lctabnmz, lctabnmy, lctabrgz, lctabrgy, npx, npy, myidx, myidy)
 
subroutine setlctab2_compdom (this, lctabnmz, lctabrgz, npx, npy, myidx, myidy)
 
subroutine destruct_compdom (this)
 

Variables

integer, parameter, private ndim = 3
 

Detailed Description

This class defines 3-D global and local computational domain in the parallel simulation.

Author
Ji Qiang

Data Type Documentation

◆ compdomclass::compdom

type compdomclass::compdom
Data Fields
integer, dimension(:,:,:), pointer lctabnm
double precision, dimension(:,:,:), pointer lctabrg ymin, ymax, num of y grids on local processor.
integer, dimension(ndim) meshnum num of mesh points in each dimension.
double precision, dimension(ndim) meshsize mesh size in each dimension.
integer, dimension(ndim) mshlocal
double precision, dimension(2 *ndim) spatrange spatial range in each dimenion.
double precision, dimension(2 *ndim) sptrnglocal

Function/Subroutine Documentation

◆ balance1_compdom()

subroutine compdomclass::balance1_compdom ( double precision, dimension(:,:,:)  source,
integer, dimension(0:npz-1), intent(inout)  lctabnmz,
integer, dimension(0:npy-1), intent(inout)  lctabnmy,
double precision, dimension(2,0:npz-1), intent(out)  lctabrgz,
double precision, dimension(2,0:npy-1), intent(out)  lctabrgy,
integer, intent(in)  npz,
integer, intent(in)  npy,
integer, intent(in)  commrow,
integer, intent(in)  commcol,
integer, intent(in)  innx,
integer, intent(in)  inny,
integer, intent(in)  innz,
integer, intent(in)  inyglb 
)

find the balanced local domain geometry so that the number of particles on this domain about equal.

◆ balance2_compdom()

subroutine compdomclass::balance2_compdom ( double precision, dimension(:,:,:)  source,
integer, dimension(0:npz-1), intent(inout)  lctabnmz,
double precision, dimension(2,0:npz-1), intent(out)  lctabrgz,
integer, intent(in)  npz,
integer, intent(in)  npy,
integer, intent(in)  commrow,
integer, intent(in)  commcol,
integer, intent(in)  innx,
integer, intent(in)  inny,
integer, intent(in)  innz,
integer, intent(in)  inyglb,
integer, intent(in)  inzglb,
double precision, intent(in)  hz,
double precision, intent(in)  zmin 
)

◆ destruct_compdom()

subroutine compdomclass::destruct_compdom ( type (compdom), intent(out)  this)
Here is the caller graph for this function:

◆ getlcmnum_compdom()

subroutine compdomclass::getlcmnum_compdom ( type (compdom), intent(in)  this,
integer, dimension(:), intent(out)  mnum 
)
Here is the caller graph for this function:

◆ getlcrange_compdom()

subroutine compdomclass::getlcrange_compdom ( type (compdom), intent(in)  this,
double precision, dimension(:), intent(out)  range 
)
Here is the caller graph for this function:

◆ getlctabnm_compdom()

subroutine compdomclass::getlctabnm_compdom ( type (compdom), intent(in)  this,
integer, dimension(:,:,:), intent(out)  lctable 
)
Here is the caller graph for this function:

◆ getlctabrg_compdom()

subroutine compdomclass::getlctabrg_compdom ( type (compdom), intent(in)  this,
double precision, dimension(:,:,:), intent(out)  lctable 
)

◆ getmnum_compdom()

subroutine compdomclass::getmnum_compdom ( type (compdom), intent(in)  this,
integer, dimension(:), intent(out)  mnum 
)
Here is the caller graph for this function:

◆ getmsize_compdom()

subroutine compdomclass::getmsize_compdom ( type (compdom), intent(in)  this,
double precision, dimension(:), intent(out)  msize 
)
Here is the caller graph for this function:

◆ getrange_compdom()

subroutine compdomclass::getrange_compdom ( type (compdom), intent(in)  this,
double precision, dimension(:), intent(out)  range 
)
Here is the caller graph for this function:

◆ init_compdom()

subroutine compdomclass::init_compdom ( type (compdom), intent(out)  this,
double precision, dimension(nparam), intent(in)  distparam,
integer, intent(in)  nparam,
integer, intent(in)  flg,
integer, intent(in)  nx,
integer, intent(in)  ny,
integer, intent(in)  nz,
type (pgrid2d), intent(in)  grid2d,
integer, intent(in)  nprocrow,
integer, intent(in)  nproccol,
  Flagbc,
double precision, intent(in)  xrad,
double precision, intent(in)  yrad,
  pe 
)

calculate the initial computational geometry parameters and double precision parameters. Here, computational domain is mapped onto a one dimension processor array in y direction. Load balance is achieved using density function integration.

Here is the call graph for this function:

◆ setlctab1_compdom()

subroutine compdomclass::setlctab1_compdom ( type (compdom), intent(inout)  this,
integer, dimension(0:npx-1), intent(in)  lctabnmz,
integer, dimension(0:npy-1), intent(in)  lctabnmy,
double precision, dimension(2,0:npx-1), intent(in)  lctabrgz,
double precision, dimension(2,0:npy-1), intent(in)  lctabrgy,
integer, intent(in)  npx,
integer, intent(in)  npy,
integer, intent(in)  myidx,
integer, intent(in)  myidy 
)

◆ setlctab2_compdom()

subroutine compdomclass::setlctab2_compdom ( type (compdom), intent(inout)  this,
integer, dimension(0:npx-1), intent(in)  lctabnmz,
double precision, dimension(2,0:npx-1), intent(in)  lctabrgz,
integer, intent(in)  npx,
integer, intent(in)  npy,
integer, intent(in)  myidx,
integer, intent(in)  myidy 
)

◆ update_compdom()

subroutine compdomclass::update_compdom ( type (compdom), intent(inout)  this,
double precision, dimension(6), intent(in)  ptrange,
type (pgrid2d), intent(in)  grid2d,
integer, intent(in)  Flagbc 
)

update geometry parameters using new particle positions.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ updateold_compdom()

subroutine compdomclass::updateold_compdom ( type (compdom), intent(inout)  this,
double precision, dimension(:,:), intent(in)  inrange,
type (pgrid2d), intent(in)  grid2d,
integer, intent(in)  nplc 
)

update geometry parameters using new particle positions.

Here is the call graph for this function:

Variable Documentation

◆ ndim

integer, parameter, private compdomclass::ndim = 3
private