mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
Patches contributed by Mattijs Janssens:
splitMeshRegions: handle flipping of faces for surface fields
subsetMesh: subset dimensionedFields
decomposePar: use run-time selection of decomposition constraints. Used to
keep cells on particular processors. See the decomposeParDict in
$FOAM_UTILITIES/parallel/decomposePar:
- preserveBaffles: keep baffle faces on same processor
- preserveFaceZones: keep faceZones owner and neighbour on same processor
- preservePatches: keep owner and neighbour on same processor. Note: not
suitable for cyclicAMI since these are not coupled on the patch level
- singleProcessorFaceSets: keep complete faceSet on a single processor
- refinementHistory: keep cells originating from a single cell on the
same processor.
decomposePar: clean up decomposition of refinement data from snappyHexMesh
reconstructPar: reconstruct refinement data (refineHexMesh, snappyHexMesh)
reconstructParMesh: reconstruct refinement data (refineHexMesh, snappyHexMesh)
redistributePar:
- corrected mapping surfaceFields
- adding processor patches in order consistent with decomposePar
argList: check that slaves are running same version as master
fvMeshSubset: move to dynamicMesh library
fvMeshDistribute:
- support for mapping dimensionedFields
- corrected mapping of surfaceFields
parallel routines: allow parallel running on single processor
Field: support for
- distributed mapping
- mapping with flipping
mapDistribute: support for flipping
AMIInterpolation: avoid constructing localPoints
This commit is contained in:
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -36,8 +36,8 @@ SourceFiles
|
||||
#define decompositionMethod_H
|
||||
|
||||
#include "polyMesh.H"
|
||||
#include "pointField.H"
|
||||
#include "CompactListList.H"
|
||||
#include "decompositionConstraint.H"
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
@ -56,6 +56,8 @@ protected:
|
||||
const dictionary& decompositionDict_;
|
||||
label nProcessors_;
|
||||
|
||||
//- Optional constraints
|
||||
PtrList<decompositionConstraint> constraints_;
|
||||
|
||||
private:
|
||||
|
||||
@ -98,14 +100,7 @@ public:
|
||||
// Constructors
|
||||
|
||||
//- Construct given the decomposition dictionary
|
||||
decompositionMethod(const dictionary& decompositionDict)
|
||||
:
|
||||
decompositionDict_(decompositionDict),
|
||||
nProcessors_
|
||||
(
|
||||
readLabel(decompositionDict.lookup("numberOfSubdomains"))
|
||||
)
|
||||
{}
|
||||
decompositionMethod(const dictionary& decompositionDict);
|
||||
|
||||
|
||||
//- Destructor
|
||||
@ -226,6 +221,19 @@ public:
|
||||
CompactListList<label>& cellCells
|
||||
);
|
||||
|
||||
//- Helper: determine (local or global) cellCells and face weights
|
||||
// from mesh agglomeration.
|
||||
// Uses mag of faceArea as weights
|
||||
static void calcCellCells
|
||||
(
|
||||
const polyMesh& mesh,
|
||||
const labelList& agglom,
|
||||
const label nLocalCoarse,
|
||||
const bool parallel,
|
||||
CompactListList<label>& cellCells,
|
||||
CompactListList<scalar>& cellCellWeights
|
||||
);
|
||||
|
||||
//- Helper: extract constraints:
|
||||
// blockedface: existing faces where owner and neighbour on same
|
||||
// proc
|
||||
@ -241,6 +249,19 @@ public:
|
||||
List<labelPair>& explicitConnections
|
||||
);
|
||||
|
||||
//- Helper: apply constraints to a decomposition. This gives
|
||||
// constraints opportunity to modify decomposition in case
|
||||
// the native decomposition method has not obeyed all constraints
|
||||
void applyConstraints
|
||||
(
|
||||
const polyMesh& mesh,
|
||||
const boolList& blockedFace,
|
||||
const PtrList<labelList>& specifiedProcessorFaces,
|
||||
const labelList& specifiedProcessor,
|
||||
const List<labelPair>& explicitConnections,
|
||||
labelList& finalDecomp
|
||||
);
|
||||
|
||||
// Decompose a mesh with constraints:
|
||||
// - blockedFace : whether owner and neighbour should be on same
|
||||
// processor
|
||||
|
||||
Reference in New Issue
Block a user