#include <array>
#include <cassert>
#include <cmath>
#include <cstddef>
#include <limits>
#include <stack>
#include <vector>
#include "peclet/core/common/types.hpp"
Go to the source code of this file.
|
| template<int Dim> |
| Real | peclet::core::decomp::weightImbalance (const BlockDecomposer< Dim > &dec, const std::vector< Real > &weights) |
| | Weight imbalance of a decomposition — the balancer's own metric: the heaviest block's total weight over the mean, max_b W(b) / (W_total / numBlocks).
|
| |
| template<std::size_t N, int Dim = static_cast<int>(N)> |
| AlignedWeightedChoice< Dim > | peclet::core::decomp::chooseAlignedWeighted (std::size_t numBlocks, const std::array< Index, N > &G, const std::vector< Real > &weights, Real budget=1.05, int aMax=std::numeric_limits< int >::max()) |
| | Choose the alignment of a weighted ORB from an imbalance budget (amr/docs/ amr_mg_core_boundary.md §11.4): the LARGEST a whose coarse-first aligned weighted ORB (init(numBlocks, G, weights, {2^a,…})) has weightImbalance <= budget, else a = 0 with today's partition, init(numBlocks, G, weights), bit for bit — never worse than now.
|
| |