48 { cellType::CALCULATED,
"calculated" },
49 { cellType::INTERPOLATED,
"interpolated" },
50 { cellType::HOLE,
"hole" },
59 nonInterpolatedFields_({
"zoneID"})
74 auto* ctorPtr = meshConstructorTable(stencilType);
83 *meshConstructorTablePtr_
133 zoneID[cellI] = label(volZoneID[cellI]);
160 return nonInterpolatedFields_;
166 return nonInterpolatedFields_;
174 if (slots[i] >= mesh_.nCells())
236 label celli = selectedCells[i];
240 pointList& stencilPoints = cellCellCentres[celli];
246 if (isValidCell[celli])
248 stencil[compacti] = globalCellIDs[celli];
249 stencilPoints[compacti++] = cellCentres[celli];
255 label facei = cFaces[i];
257 label own = faceOwner[facei];
260 bool isValid =
false;
263 nbrCelli = nbrGlobalCellIDs[bFacei];
264 nbrCc = nbrCellCentres[bFacei];
265 isValid = nbrIsValidCell[bFacei];
272 nbrCc = cellCentres[own];
273 isValid = isValidCell[own];
277 label nei = faceNeighbour[facei];
279 nbrCc = cellCentres[nei];
280 isValid = isValidCell[nei];
287 if (!current.
found(nbrCelli))
289 stencil[compacti] = nbrCelli;
290 stencilPoints[compacti++] = nbrCc;
295 stencilPoints.
setSize(compacti);
Macros for easy insertion into run-time selection tables.
Enum is a wrapper around a list of names/values that represent particular enumeration (or int) values...
Defines the attributes of an object for which implicit objectRegistry management is supported,...
void setSize(const label n)
Alias for resize()
static void listCombineGather(const List< commsStruct > &comms, List< T > &values, const CombineOp &cop, const int tag, const label comm)
A List obtained as a section of another List.
static autoPtr< Time > New()
Construct (dummy) Time - no functionObjects or libraries.
word findInstance(const fileName &dir, const word &name=word::null, const IOobject::readOption rOpt=IOobject::MUST_READ, const word &stopInstance=word::null) const
bool found(const T &val, label pos=0) const
True if the value if found in the list.
void size(const label n)
Older name for setAddressableSize.
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
Calculation of interpolation stencils.
bool localStencil(const labelUList &) const
Helper: is stencil fully local.
const labelIOList & zoneID() const
Helper: get reference to registered zoneID. Loads volScalarField.
virtual const wordHashSet & nonInterpolatedFields() const
Return the names of any (stencil or mesh specific) fields that.
virtual ~cellCellStencil()
Destructor.
static const Enum< cellType > cellTypeNames_
Mode type names.
static void globalCellCells(const globalIndex &gi, const polyMesh &mesh, const boolList &isValidDonor, const labelList &selectedCells, labelListList &cellCells, pointListList &cellCellCentres)
Helper: create cell-cell addressing in global numbering.
A cell is defined as a list of faces with extra functionality.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
T get(const word &keyword, enum keyType::option matchOpt=keyType::REGEX) const
Mesh data needed to do the Finite Volume discretisation.
const Time & time() const
Return the top-level database.
Calculates a unique integer (label so might not have enough room - 2G max) for processor + local inde...
label localSize() const
My local size.
label localStart() const
My local start.
label toGlobal(const label i) const
From local to global index.
bool foundObject(const word &name, const bool recursive=false) const
Is the named Type found?
const Type & lookupObject(const word &name, const bool recursive=false) const
Mesh consisting of general polyhedral cells.
const fileName & facesInstance() const
Return the current instance directory for faces.
virtual const fileName & dbDir() const
Override the objectRegistry dbDir for a single-region case.
virtual const labelList & faceOwner() const
Return face owner.
virtual const labelList & faceNeighbour() const
Return face neighbour.
static word meshSubDir
Return the mesh sub-directory name (usually "polyMesh")
label nInternalFaces() const noexcept
Number of internal faces.
const vectorField & cellCentres() const
label nCells() const noexcept
Number of mesh cells.
const cellList & cells() const
A class for handling words, derived from Foam::string.
#define defineTypeNameAndDebug(Type, DebugSwitch)
Define the typeName and debug information.
#define FatalIOErrorInLookup(ios, lookupTag, lookupName, lookupTable)
Report an error message using Foam::FatalIOError.
const labelIOList & zoneID
#define DebugInFunction
Report an information message using Foam::Info.
labelList identity(const label len, label start=0)
Return an identity map of the given length with (map[i] == i)
Ostream & endl(Ostream &os)
Add newline and flush stream.
IOList< label > labelIOList
Label container classes.
static constexpr const zero Zero
Global zero (0)
errorManipArg< error, int > exit(error &err, const int errNo=1)
#define defineRunTimeSelectionTable(baseType, argNames)
Define run-time selection table.
#define forAll(list, i)
Loop across all elements in list.