IMPACT T
|
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 |
This class defines 3-D global and local computational domain in the parallel simulation.
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 |
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.
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 | ||
) |
subroutine compdomclass::destruct_compdom | ( | type (compdom), intent(out) | this | ) |
subroutine compdomclass::getlcmnum_compdom | ( | type (compdom), intent(in) | this, |
integer, dimension(:), intent(out) | mnum | ||
) |
subroutine compdomclass::getlcrange_compdom | ( | type (compdom), intent(in) | this, |
double precision, dimension(:), intent(out) | range | ||
) |
subroutine compdomclass::getlctabnm_compdom | ( | type (compdom), intent(in) | this, |
integer, dimension(:,:,:), intent(out) | lctable | ||
) |
subroutine compdomclass::getlctabrg_compdom | ( | type (compdom), intent(in) | this, |
double precision, dimension(:,:,:), intent(out) | lctable | ||
) |
subroutine compdomclass::getmnum_compdom | ( | type (compdom), intent(in) | this, |
integer, dimension(:), intent(out) | mnum | ||
) |
subroutine compdomclass::getmsize_compdom | ( | type (compdom), intent(in) | this, |
double precision, dimension(:), intent(out) | msize | ||
) |
subroutine compdomclass::getrange_compdom | ( | type (compdom), intent(in) | this, |
double precision, dimension(:), intent(out) | range | ||
) |
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.
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 | ||
) |
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 | ||
) |
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.
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.
|
private |