DL_MG
|
derived data types that encapsulate information on grid setup, to be used at each multigrid level More...
Data Types | |
type | boundary_values_t |
type | mg_t |
type | map_array1_t |
Used in fd_t to allow variable length arrays which map distance between neighbouring MPI ranks to rank id / halo elements available dim (2,n_of_neighbourd) for fixed neighbour first element contains the rank of the neighbor, the second the size of the buffers to be transffered i.e. am(1,1) -> is the rank of the nearest neighbour am(2,1) -> the buffer size of nearest neighbour. More... | |
type | map_array2_t |
type | fd_t |
Type containing data for high-order finite differences, used in defect correction. More... | |
Functions/Subroutines | |
subroutine | mg_get_idx (mg, sx, ex, sy, ey, sz, ez) |
Variables | |
integer, parameter | north = 1 |
boundaries codes More... | |
integer, parameter | south = 2 |
integer, parameter | west = 3 |
integer, parameter | east = 4 |
integer, parameter | bottom = 5 |
integer, parameter | top = 6 |
integer, parameter | nw = 7 |
integer, parameter | ne = 8 |
integer, parameter | nb = 9 |
integer, parameter | nt = 10 |
integer, parameter | sw = 11 |
integer, parameter | se = 12 |
integer, parameter | sb = 13 |
integer, parameter | st = 14 |
integer, parameter | wb = 15 |
integer, parameter | wt = 16 |
integer, parameter | eb = 17 |
integer, parameter | et = 18 |
integer, parameter | nwb = 19 |
integer, parameter | neb = 20 |
integer, parameter | nwt = 21 |
integer, parameter | net = 22 |
integer, parameter | swb = 23 |
integer, parameter | seb = 24 |
integer, parameter | swt = 25 |
integer, parameter | set = 26 |
derived data types that encapsulate information on grid setup, to be used at each multigrid level
For MG calculation we need the following bits of information
start/end in local domain in terms of global index space -> sx,ex,sy,ye,sz,ez local grid start/end points must allow for halo or extra space needed when restricting the number of MPI ranks sxc,exc,syc,eyc,szc,ezc ( cg(3,2) ) data arrays p(sxc:exc,syc:eyc,szc:ezc), cof(:,:,:,8), f(...), r(...) boundary arrays ( save memory when BC=0 with a flag) communicator ( MPI_COMM_NULL if core is not active) should we have one more flag to signal active, inactive rank and a given MG level ? MPI coords myid global grid boundaries to take care of : N, S, W, E, B, T, NW, NE, NB, NT, SW, SE, SB, ST, WB, WT, EB, ET, NWB, NEB, NWT, NET, SWB, SEB, SWT, SET flag to mark that restriction at this level needs aggregation, i. e., the next coarse level has a reduced number of ranks, hence some ranks will receive data from the discarded ranks. timer storage usefull for performace tunning computation, communication, threads(?)
subroutine dl_mg_types::mg_get_idx | ( | type(mg_t), intent(in) | mg, |
integer, intent(out) | sx, | ||
integer, intent(out) | ex, | ||
integer, intent(out) | sy, | ||
integer, intent(out) | ey, | ||
integer, intent(out) | sz, | ||
integer, intent(out) | ez | ||
) |
integer, parameter dl_mg_types::bottom = 5 |
integer, parameter dl_mg_types::east = 4 |
integer, parameter dl_mg_types::eb = 17 |
integer, parameter dl_mg_types::et = 18 |
integer, parameter dl_mg_types::nb = 9 |
integer, parameter dl_mg_types::ne = 8 |
integer, parameter dl_mg_types::neb = 20 |
integer, parameter dl_mg_types::net = 22 |
integer, parameter dl_mg_types::north = 1 |
boundaries codes
integer, parameter dl_mg_types::nt = 10 |
integer, parameter dl_mg_types::nw = 7 |
integer, parameter dl_mg_types::nwb = 19 |
integer, parameter dl_mg_types::nwt = 21 |
integer, parameter dl_mg_types::sb = 13 |
integer, parameter dl_mg_types::se = 12 |
integer, parameter dl_mg_types::seb = 24 |
integer, parameter dl_mg_types::set = 26 |
integer, parameter dl_mg_types::south = 2 |
integer, parameter dl_mg_types::st = 14 |
integer, parameter dl_mg_types::sw = 11 |
integer, parameter dl_mg_types::swb = 23 |
integer, parameter dl_mg_types::swt = 25 |
integer, parameter dl_mg_types::top = 6 |
integer, parameter dl_mg_types::wb = 15 |
integer, parameter dl_mg_types::west = 3 |
integer, parameter dl_mg_types::wt = 16 |