Scrambler
1
|
Public Member Functions | |
subroutine | DistributionInit |
subroutine | GetLevelLoad (n) |
Updates workload per level per step g_l^p. | |
subroutine | ClearCompletedWorkLoads (n) |
subroutine | SortNodes (n) |
subroutine | DistributeChildrens (n, lsplitOpt) |
Creates and distributes new children of node. | |
REAL(KIND=qPREC) function | HilbertValue (mGlobal, level) |
Returns the hilbert value of a box. | |
subroutine | HilbertSort (childgrids, level) |
Sorts childgrids by hilbert value. | |
recursive subroutine | HilbertSplit (childgrid, weights, newgrids, indx, level) |
Splits childgrid into pieces based on size and number of weights. | |
subroutine | ClearParentProcs (level) |
Clears the Parent Processor lists for a level. | |
Public Attributes | |
REAL(KIND=qPREC), parameter | Safety_Fact = .9d0 |
REAL(KIND=qPREC) | TotalNewWorkLoad |
REAL(KIND=qPREC) | CoarserWorkLoad |
REAL(KIND=qPREC) | MeanWorkLoadByLevel = 0 |
REAL(KIND=qPREC) | SplitFactor = 1d0 |
LOGICAL | lDistVerbose = .false. |
Definition at line 23 of file distribution_control.f90.
subroutine DistributionInit | ( | ) |
Definition at line 43 of file distribution_control.f90.
subroutine GetLevelLoad | ( | INTEGER | n | ) |
Updates workload per level per step g_l^p.
Definition at line 70 of file distribution_control.f90.
subroutine ClearCompletedWorkLoads | ( | INTEGER | n | ) |
Definition at line 90 of file distribution_control.f90.
subroutine SortNodes | ( | INTEGER | n | ) |
Definition at line 96 of file distribution_control.f90.
subroutine DistributeChildrens | ( | INTEGER | n, |
LOGICAL, optional | lsplitOpt | ||
) |
Creates and distributes new children of node.
n | level |
Definition at line 134 of file distribution_control.f90.
REAL(KIND=qPREC) function HilbertValue | ( | INTEGER, dimension(:,:) | mGlobal, |
INTEGER | level | ||
) |
Returns the hilbert value of a box.
mGlobal | box bounds |
level | box level |
Definition at line 585 of file distribution_control.f90.
References closedformhilbert2d(), and closedformhilbert3d().
subroutine HilbertSort | ( | INTEGER, dimension(:,:,:), intent(inout), pointer | childgrids, |
INTEGER, intent(in) | level | ||
) |
Sorts childgrids by hilbert value.
childgrids | array of child bounds (in parent space) |
level | level of parent |
Definition at line 630 of file distribution_control.f90.
recursive subroutine HilbertSplit | ( | INTEGER, dimension(:,:), intent(in) | childgrid, |
REAL(KIND=qPREC), dimension(:), intent(in) | weights, | ||
INTEGER, dimension(:,:,:), intent(out), pointer | newgrids, | ||
INTEGER, dimension(2) | indx, | ||
INTEGER | level | ||
) |
Splits childgrid into pieces based on size and number of weights.
childgrid | indices of grid to split |
weights | desired weights to split into |
newgrids | grids created by splitting childgrid |
indx | current range of newgrids, and weights to operate on |
level | parent level |
Pieces are created to match weights and should represent grids that are also roughly in hilbert order
Definition at line 668 of file distribution_control.f90.
subroutine ClearParentProcs | ( | INTEGER | level | ) |
Clears the Parent Processor lists for a level.
level | level |
Definition at line 835 of file distribution_control.f90.
REAL(KIND=qPREC), parameter Safety_Fact = .9d0 |
Definition at line 34 of file distribution_control.f90.
REAL(KIND=qPREC) TotalNewWorkLoad |
Definition at line 35 of file distribution_control.f90.
REAL(KIND=qPREC) CoarserWorkLoad |
Definition at line 35 of file distribution_control.f90.
REAL(KIND=qPREC) MeanWorkLoadByLevel = 0 |
Definition at line 36 of file distribution_control.f90.
REAL(KIND=qPREC) SplitFactor = 1d0 |
Definition at line 37 of file distribution_control.f90.
LOGICAL lDistVerbose = .false. |
Definition at line 38 of file distribution_control.f90.