|
Scrambler
1
|
Collaboration diagram for DistributionControl: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().
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.
| 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.