mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: add simplified gather methods for globalIndex with default communicator
- when combining lists in processor order this simplifies code and
reduces memory overhead.
Write this:
----
labelList collected;
const globalIndex sizing(input.size());
sizing.gather(input, collected);
----
OR
----
labelList collected;
globalIndex::gatherOp(input, collected);
----
Instead of this:
----
labelList collected;
List<labelList> scratch(Pstream::nProcs());
scratch[Pstream::myProcNo()] = input;
Pstream::gatherList(scratch);
if (Pstream::master())
{
collected = ListListOps::combine<labelList>
(
scratch,
accessOp<labelList>()
);
}
scratch.clear();
----
This commit is contained in:
@ -1014,12 +1014,6 @@ Foam::label Foam::checkGeometry
|
||||
scalarField mergedWeights;
|
||||
globalFaces().gather
|
||||
(
|
||||
UPstream::worldComm,
|
||||
ListOps::create<label>
|
||||
(
|
||||
UPstream::procID(UPstream::worldComm),
|
||||
labelOp<int>() // int -> label
|
||||
),
|
||||
ami.srcWeightsSum(),
|
||||
mergedWeights
|
||||
);
|
||||
@ -1048,18 +1042,14 @@ Foam::label Foam::checkGeometry
|
||||
{
|
||||
const cyclicACMIPolyPatch& pp =
|
||||
refCast<const cyclicACMIPolyPatch>(pbm[patchi]);
|
||||
|
||||
scalarField mergedMask;
|
||||
globalFaces().gather
|
||||
(
|
||||
UPstream::worldComm,
|
||||
ListOps::create<label>
|
||||
(
|
||||
UPstream::procID(UPstream::worldComm),
|
||||
labelOp<int>() // int -> label
|
||||
),
|
||||
pp.mask(),
|
||||
mergedMask
|
||||
);
|
||||
|
||||
if (Pstream::master())
|
||||
{
|
||||
wr.write
|
||||
@ -1108,12 +1098,6 @@ Foam::label Foam::checkGeometry
|
||||
scalarField mergedWeights;
|
||||
globalFaces().gather
|
||||
(
|
||||
UPstream::worldComm,
|
||||
ListOps::create<label>
|
||||
(
|
||||
UPstream::procID(UPstream::worldComm),
|
||||
labelOp<int>() // int -> label
|
||||
),
|
||||
ami.tgtWeightsSum(),
|
||||
mergedWeights
|
||||
);
|
||||
@ -1145,12 +1129,6 @@ Foam::label Foam::checkGeometry
|
||||
scalarField mergedMask;
|
||||
globalFaces().gather
|
||||
(
|
||||
UPstream::worldComm,
|
||||
ListOps::create<label>
|
||||
(
|
||||
UPstream::procID(UPstream::worldComm),
|
||||
labelOp<int>() // int -> label
|
||||
),
|
||||
pp.neighbPatch().mask(),
|
||||
mergedMask
|
||||
);
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||
\\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
|
||||
\\/ M anipulation | Copyright (C) 2016-2019 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -78,19 +78,10 @@ void writeWeights
|
||||
mergedFaces,
|
||||
mergedPoints
|
||||
);
|
||||
|
||||
// Collect field
|
||||
scalarField mergedWeights;
|
||||
globalFaces().gather
|
||||
(
|
||||
UPstream::worldComm,
|
||||
ListOps::create<label>
|
||||
(
|
||||
UPstream::procID(UPstream::worldComm),
|
||||
labelOp<int>() // int -> label
|
||||
),
|
||||
wghtSum,
|
||||
mergedWeights
|
||||
);
|
||||
globalFaces().gather(wghtSum, mergedWeights);
|
||||
|
||||
instant inst(runTime.value(), runTime.timeName());
|
||||
|
||||
|
||||
Reference in New Issue
Block a user