|
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 |
1.8.15