DL_MG
Data Types | Functions/Subroutines | Variables
dl_mg_types Module Reference

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
 

Detailed Description

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(?)

Function/Subroutine Documentation

◆ mg_get_idx()

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 
)

Variable Documentation

◆ bottom

integer, parameter dl_mg_types::bottom = 5

◆ east

integer, parameter dl_mg_types::east = 4

◆ eb

integer, parameter dl_mg_types::eb = 17

◆ et

integer, parameter dl_mg_types::et = 18

◆ nb

integer, parameter dl_mg_types::nb = 9

◆ ne

integer, parameter dl_mg_types::ne = 8

◆ neb

integer, parameter dl_mg_types::neb = 20

◆ net

integer, parameter dl_mg_types::net = 22

◆ north

integer, parameter dl_mg_types::north = 1

boundaries codes

◆ nt

integer, parameter dl_mg_types::nt = 10

◆ nw

integer, parameter dl_mg_types::nw = 7

◆ nwb

integer, parameter dl_mg_types::nwb = 19

◆ nwt

integer, parameter dl_mg_types::nwt = 21

◆ sb

integer, parameter dl_mg_types::sb = 13

◆ se

integer, parameter dl_mg_types::se = 12

◆ seb

integer, parameter dl_mg_types::seb = 24

◆ set

integer, parameter dl_mg_types::set = 26

◆ south

integer, parameter dl_mg_types::south = 2

◆ st

integer, parameter dl_mg_types::st = 14

◆ sw

integer, parameter dl_mg_types::sw = 11

◆ swb

integer, parameter dl_mg_types::swb = 23

◆ swt

integer, parameter dl_mg_types::swt = 25

◆ top

integer, parameter dl_mg_types::top = 6

◆ wb

integer, parameter dl_mg_types::wb = 15

◆ west

integer, parameter dl_mg_types::west = 3

◆ wt

integer, parameter dl_mg_types::wt = 16