Parallel load balancing: cannot use weights in field decomposition
This commit is contained in:
parent
b60b67ffb6
commit
324b129060
1 changed files with 8 additions and 7 deletions
|
@ -61,7 +61,10 @@ processorVolPatchFieldDecomposer
|
||||||
addressing_(addressingSlice.size()),
|
addressing_(addressingSlice.size()),
|
||||||
weights_(addressingSlice.size())
|
weights_(addressingSlice.size())
|
||||||
{
|
{
|
||||||
const scalarField& weights = mesh.weights().internalField();
|
// Cannot use weights due to parallel comms in load balancing
|
||||||
|
// Use 0.5 instead, as this is not precise mapping
|
||||||
|
// HJ, 21/Oct/2018
|
||||||
|
|
||||||
const labelList& own = mesh.faceOwner();
|
const labelList& own = mesh.faceOwner();
|
||||||
const labelList& neighb = mesh.faceNeighbour();
|
const labelList& neighb = mesh.faceNeighbour();
|
||||||
|
|
||||||
|
@ -75,14 +78,12 @@ processorVolPatchFieldDecomposer
|
||||||
// This is a regular face. it has been an internal face
|
// This is a regular face. it has been an internal face
|
||||||
// of the original mesh and now it has become a face
|
// of the original mesh and now it has become a face
|
||||||
// on the parallel boundary
|
// on the parallel boundary
|
||||||
|
// Use 0.5 weights
|
||||||
addressing_[i].setSize(2);
|
addressing_[i].setSize(2);
|
||||||
weights_[i].setSize(2);
|
weights_[i].setSize(2, 0.5);
|
||||||
|
|
||||||
addressing_[i][0] = own[ai];
|
addressing_[i][0] = own[ai];
|
||||||
addressing_[i][1] = neighb[ai];
|
addressing_[i][1] = neighb[ai];
|
||||||
|
|
||||||
weights_[i][0] = weights[ai];
|
|
||||||
weights_[i][1] = 1.0 - weights[ai];
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -155,8 +156,8 @@ fvFieldDecomposer::fvFieldDecomposer
|
||||||
static_cast<processorSurfacePatchFieldDecomposer*>(NULL)
|
static_cast<processorSurfacePatchFieldDecomposer*>(NULL)
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
// HR 25.06.18: Weights may be required for some mappings and might hang in parallel.
|
// HR 25.06.18: Weights cannot be used for mappings
|
||||||
completeMesh_.weights();
|
// HJ, 19/Oct/2018
|
||||||
|
|
||||||
forAll (boundaryAddressing_, patchi)
|
forAll (boundaryAddressing_, patchi)
|
||||||
{
|
{
|
||||||
|
|
Reference in a new issue