62 label bFacei = pp.offset()+i;
63 destProc[bFacei] = decomposition[
faceCells[i]];
71 for (
const auto& pp : pbm)
73 const auto* ppp = isA<cyclicAMIPolyPatch>(pp);
76 const auto& cycPp = *ppp;
77 const auto& nbrPp = cycPp.neighbPatch();
78 const labelList nbrDecomp(decomposition, nbrPp.faceCells());
79 labelList thisDecomp(decomposition, cycPp.faceCells());
83 cycPp.AMI().interpolateToSource
102 nbrPp.AMI().interpolateToTarget
122 label& proc = destProc[cycPp.offset()+i];
123 proc =
min(proc, thisDecomp[i]);
134 const dictionary& constraintDict
137 coeffDict_(constraintDict)
147 coeffDict_(constraintDict)
171 const word& modelType
174 Info<<
"Selecting decompositionConstraint " << modelType <<
endl;
176 auto* ctorPtr = dictionaryConstructorTable(modelType);
183 "decompositionConstraint",
185 *dictionaryConstructorTablePtr_
189 return autoPtr<decompositionConstraint>(ctorPtr(
dict));
Abstract class for handling decomposition constraints.
errorManipArg< error, int > exit(error &err, const int errNo=1)
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.
T get(const word &keyword, enum keyType::option matchOpt=keyType::REGEX) const
Find and return a T. FatalIOError if not found, or if the number of tokens is incorrect.
Smooth ATC in cells next to a set of patches supplied by type.
#define forAll(list, i)
Loop across all elements in list.
static autoPtr< decompositionConstraint > New(const dictionary &constraintDict)
Return a reference to the selected decompositionConstraint.
void setSize(const label n)
Alias for resize()
void getMinBoundaryValue(const polyMesh &mesh, const labelList &decomposition, labelList &destProc) const
Get minimum label across coupled boundary faces.
A class for handling words, derived from Foam::string.
label min(const labelHashSet &set, label minValue=labelMax)
Find the min value in labelHashSet, optionally limited by second argument.
decompositionConstraint(const decompositionConstraint &)=delete
No copy construct.
A polyBoundaryMesh is a polyPatch list with additional search methods and registered IO...
defineRunTimeSelectionTable(reactionRateFlameArea, dictionary)
defineTypeNameAndDebug(combustionModel, 0)
gmvFile<< "tracers "<< particles.size()<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().x()<< ' ';}gmvFile<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().y()<< ' ';}gmvFile<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().z()<< ' ';}gmvFile<< nl;for(const word &name :lagrangianScalarNames){ IOField< scalar > fld(IOobject(name, runTime.timeName(), cloud::prefix, mesh, IOobject::MUST_READ, IOobject::NO_WRITE))
messageStream Info
Information stream (stdout output on master, null elsewhere)
Pointer management similar to std::unique_ptr, with some additional methods and type checking...
Mesh consisting of general polyhedral cells.
List< label > labelList
A List of labels.
A patch is a list of labels that address the faces in the global face list.
#define FatalIOErrorInLookup(ios, lookupTag, lookupName, lookupTable)
Report an error message using Foam::FatalIOError.
IOerror FatalIOError
Error stream (stdout output on all processes), with additional 'FOAM FATAL IO ERROR' header text and ...