Go to the documentation of this file.
34 namespace decompositionConstraints
39 decompositionConstraint,
57 patches_(coeffDict_.lookup(
"patches"))
59 if (decompositionConstraint::debug)
61 Info<<
type() <<
" : adding constraints to keep owner of faces"
62 <<
" in patches " << patches_
63 <<
" on same processor. This only makes sense for cyclics." <<
endl;
77 if (decompositionConstraint::debug)
79 Info<<
type() <<
" : adding constraints to keep owner of faces"
80 <<
" in patches " << patches_
81 <<
" on same processor. This only makes sense for cyclics." <<
endl;
103 label nUnblocked = 0;
111 if (blockedFace[pp.
start() + i])
113 blockedFace[pp.
start() + i] =
false;
119 if (decompositionConstraint::debug & 2)
122 Info<<
type() <<
" : unblocked " << nUnblocked <<
" faces" <<
endl;
158 destProc[bFaceI] = decomposition[faceCells[i]];
182 if (decomposition[faceCells[i]] != destProc[bFaceI])
184 decomposition[faceCells[i]] = destProc[bFaceI];
190 if (decompositionConstraint::debug & 2)
193 Info<<
type() <<
" : changed decomposition on " << nChanged
A class for handling words, derived from string.
addToRunTimeSelectionTable(decompositionConstraint, preserveBafflesConstraint, dictionary)
#define forAll(list, i)
Loop across all elements in list.
defineTypeName(preserveBafflesConstraint)
static const label labelMax
virtual void apply(const polyMesh &mesh, const boolList &blockedFace, const PtrList< labelList > &specifiedProcessorFaces, const labelList &specifiedProcessor, const List< labelPair > &explicitConnections, labelList &decomposition) const
Apply any additional post-decomposition constraints.
preservePatchesConstraint(const dictionary &constraintsDict, const word &type)
Construct with generic dictionary with optional entry for type.
Ostream & endl(Ostream &os)
Add newline and flush stream.
Mesh consisting of general polyhedral cells.
void reduce(const List< UPstream::commsStruct > &comms, T &Value, const BinaryOp &bop, const int tag, const label comm)
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
A patch is a list of labels that address the faces in the global face list.
A templated 1D list of pointers to objects of type <T>, where the size of the array is known and used...
A list of keyword definitions, which are a keyword followed by any number of values (e....
Macros for easy insertion into run-time selection tables.
const labelUList & faceCells() const
Return face-cell addressing.
List< Key > sortedToc() const
Return the table of contents as a sorted list.
label start() const
Return start label of this patch in the polyMesh face list.
virtual void add(const polyMesh &mesh, boolList &blockedFace, PtrList< labelList > &specifiedProcessorFaces, labelList &specifiedProcessor, List< labelPair > &explicitConnections) const
Add my constraints to list of constraints.
void setSize(const label)
Reset size of List.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
Constraint to keep owner and neighbour of (cyclic) patch on same processor.
labelHashSet patchSet(const UList< wordRe > &patchNames, const bool warnNotFound=true, const bool usePatchGroups=true) const
Return the set of patch IDs corresponding to the given names.
fileName::Type type(const fileName &)
Return the file type: DIRECTORY or FILE.