From 4d0b46677571d0f1856cde402a1aa0e9da5403ce Mon Sep 17 00:00:00 2001 From: Henry Weller Date: Wed, 29 May 2024 12:34:15 +0100 Subject: [PATCH] decompositionMethods: Added checks for multiple constraints Multi-constraint load-balancing is only supported by the Zoltan rcb method and ParMETIS. --- .../decompositionMethod/decompositionMethod.C | 54 +++++++++++++++++-- .../decompositionMethod/decompositionMethod.H | 18 +++++++ .../hierarchical/hierarchical.C | 6 ++- .../decompositionMethods/random/random.C | 2 + .../decompositionMethods/simple/simple.C | 2 + src/parallel/decompose/metis/metis.C | 7 ++- src/parallel/decompose/parMetis/parMetis.C | 25 +++++---- src/parallel/decompose/parMetis/parMetis.H | 1 + src/parallel/decompose/ptscotch/ptscotch.C | 3 ++ src/parallel/decompose/scotch/scotch.C | 5 ++ src/parallel/decompose/zoltan/zoltan.C | 16 +++++- 11 files changed, 121 insertions(+), 18 deletions(-) diff --git a/src/parallel/decompose/decompositionMethods/decompositionMethod/decompositionMethod.C b/src/parallel/decompose/decompositionMethods/decompositionMethod/decompositionMethod.C index 207b94defe..bb2593fb8f 100644 --- a/src/parallel/decompose/decompositionMethods/decompositionMethod/decompositionMethod.C +++ b/src/parallel/decompose/decompositionMethods/decompositionMethod/decompositionMethod.C @@ -49,6 +49,51 @@ namespace Foam } +// * * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * // + +Foam::label Foam::decompositionMethod::nWeights +( + const pointField& points, + const scalarField& pointWeights +) const +{ + const label localnWeights = + points.size() ? pointWeights.size()/points.size() : 0; + + const label nWeights = returnReduce(localnWeights, maxOp