Scrambler  1
DistributionControl Module Reference
+ Collaboration diagram for DistributionControl:

List of all members.

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.

Detailed Description

Definition at line 23 of file distribution_control.f90.


Member Function/Subroutine Documentation

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.

Parameters:
nlevel

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.

Parameters:
mGlobalbox bounds
levelbox level

Definition at line 585 of file distribution_control.f90.

References closedformhilbert2d(), and closedformhilbert3d().

+ Here is the call graph for this function:

subroutine HilbertSort ( INTEGER, dimension(:,:,:), intent(inout), pointer  childgrids,
INTEGER, intent(in)  level 
)

Sorts childgrids by hilbert value.

Parameters:
childgridsarray of child bounds (in parent space)
levellevel 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.

Parameters:
childgridindices of grid to split
weightsdesired weights to split into
newgridsgrids created by splitting childgrid
indxcurrent range of newgrids, and weights to operate on
levelparent 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.

Parameters:
levellevel

Definition at line 835 of file distribution_control.f90.


Member Data Documentation

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.


The documentation for this module was generated from the following file:
 All Classes Files Functions Variables