Go to the documentation of this file.
37 namespace decompositionConstraints
43 decompositionConstraint,
59 patches_(coeffDict_.get<
wordRes>(
"patches"))
63 Info<<
type() <<
" : adding constraints to keep owner of faces"
64 <<
" in patches " << patches_
65 <<
" on same processor. This only makes sense for cyclics." <<
endl;
80 Info<<
type() <<
" : adding constraints to keep owner of faces"
81 <<
" in patches " << patches_
82 <<
" on same processor. This only makes sense for cyclics." <<
endl;
104 label nUnblocked = 0;
106 for (
const label patchi : patchIDs)
112 const label meshFacei = pp.
start() + i;
114 if (blockedFace[meshFacei])
116 blockedFace[meshFacei] =
false;
125 Info<<
type() <<
" : unblocked " << nUnblocked <<
" faces" <<
endl;
157 label bFaceI = pp.start()+i-
mesh.nInternalFaces();
158 destProc[bFaceI] = decomposition[
faceCells[i]];
168 const labelList patchIDs(pbm.patchSet(patches_).sortedToc());
172 for (
const label patchi : patchIDs)
180 const label bFaceI = pp.
start()+i-
mesh.nInternalFaces();
182 if (decomposition[
faceCells[i]] != destProc[bFaceI])
184 decomposition[
faceCells[i]] = destProc[bFaceI];
193 Info<<
type() <<
" : changed decomposition on " << nChanged
int debug
Static debugging option.
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.
Abstract class for handling decomposition constraints.
defineTypeName(geometric)
A polyBoundaryMesh is a polyPatch list with additional search methods and registered IO.
virtual void add(const polyMesh &mesh, boolList &blockedFace, PtrList< labelList > &specifiedProcessorFaces, labelList &specifiedProcessor, List< labelPair > &explicitConnections) const
Add my constraints to list of constraints.
Ostream & endl(Ostream &os)
Add newline and flush stream.
Mesh consisting of general polyhedral cells.
#define forAll(list, i)
Loop across all elements in list.
messageStream Info
Information stream (uses stdout - output is on the master only)
A patch is a list of labels that address the faces in the global face list.
A list of pointers to objects of type <T>, with allocation/deallocation management of the pointers....
void resize(const label newSize)
Adjust allocated size of list.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
reduce(hasMovingMesh, orOp< bool >())
Macros for easy insertion into run-time selection tables.
const labelUList & faceCells() const
Return face-cell addressing.
List< Key > sortedToc() const
The table of contents (the keys) in sorted order.
label start() const
Return start label of this patch in the polyMesh face list.
addToRunTimeSelectionTable(decompositionConstraint, geometric, dictionary)
preservePatches(const dictionary &dict)
Construct with constraint dictionary.
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
A List of wordRe with additional matching capabilities.
labelHashSet patchSet(const UList< wordRe > &patchNames, const bool warnNotFound=true, const bool useGroups=true) const
Return the set of patch IDs corresponding to the given names.
const polyBoundaryMesh & patches
Smooth ATC in cells next to a set of patches supplied by type.