37 namespace decompositionConstraints
43 decompositionConstraint,
64 <<
" : adding constraints to keep owner and (coupled) neighbour" 65 <<
" of faces in patches " << patches_
66 <<
" on same processor. This only makes sense for cyclics" 67 <<
" and cyclicAMI." <<
endl;
83 <<
" : adding constraints to keep owner and (coupled) neighbour" 84 <<
" of faces in patches " << patches_
85 <<
" on same processor. This only makes sense for cyclics" 86 <<
" and cyclicAMI." <<
endl;
108 label nUnblocked = 0;
116 const label meshFacei =
pp.start() + i;
118 if (blockedFace[meshFacei])
120 blockedFace[meshFacei] =
false;
163 getMinBoundaryValue(
mesh, decomposition, destProc);
178 const label bFacei =
pp.offset()+i;
179 if (destProc[bFacei] < decomposition[
faceCells[i]])
181 decomposition[
faceCells[i]] = destProc[bFacei];
189 Info<<
type() <<
" : changed decomposition on " List< ReturnType > get(const UPtrList< T > &list, const AccessOp &aop)
List of values generated by applying the access operation to each list item.
const labelList patchIDs(pbm.indices(polyPatchNames, true))
const polyBoundaryMesh & pbm
Abstract class for handling decomposition constraints.
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.
preservePatches(const dictionary &dict)
Construct with constraint dictionary.
void resize(const label len)
Adjust allocated size of list.
A list of keyword definitions, which are a keyword followed by a number of values (eg...
Ostream & endl(Ostream &os)
Add newline and flush stream.
Smooth ATC in cells next to a set of patches supplied by type.
T returnReduce(const T &value, const BinaryOp &bop, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
Perform reduction on a copy, using specified binary operation.
Macros for easy insertion into run-time selection tables.
#define forAll(list, i)
Loop across all elements in list.
fileName::Type type(const fileName &name, const bool followLink=true)
Return the file type: DIRECTORY or FILE, normally following symbolic links.
A List of wordRe with additional matching capabilities.
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
A polyBoundaryMesh is a polyPatch list with additional search methods and registered IO...
int debug
Static debugging option.
A list of pointers to objects of type <T>, with allocation/deallocation management of the pointers...
addToRunTimeSelectionTable(decompositionConstraint, geometric, dictionary)
const polyBoundaryMesh & patches
virtual void add(const polyMesh &mesh, boolList &blockedFace, PtrList< labelList > &specifiedProcessorFaces, labelList &specifiedProcessor, List< labelPair > &explicitConnections) const
Add my constraints to list of constraints.
messageStream Info
Information stream (stdout output on master, null elsewhere)
Mesh consisting of general polyhedral cells.
A patch is a list of labels that address the faces in the global face list.
bool returnReduceOr(const bool value, const label comm=UPstream::worldComm)
Perform logical (or) MPI Allreduce on a copy. Uses UPstream::reduceOr.
defineTypeName(geometric)
uindirectPrimitivePatch pp(UIndirectList< face >(mesh.faces(), faceLabels), mesh.points())