43 #ifndef Foam_cellCellStencil_H 44 #define Foam_cellCellStencil_H 57 class cellCellStencil;
61 Ostream& operator<<(Ostream&, const InfoProxy<cellCellStencil>&);
180 virtual bool update() = 0;
262 template<
class GeoField>
267 template<
class GeoField>
275 template<
class GeoField,
class SuppressBC>
282 const scalar layerRelax,
289 const label holeLayers,
312 const scalar wantedFraction,
virtual const wordHashSet & nonInterpolatedFields() const
Return the names of any (stencil or mesh specific) fields that.
virtual const List< scalarList > & cellInterpolationWeights() const =0
Weights for cellStencil.
A list of keyword definitions, which are a keyword followed by a number of values (eg...
void seedCell(const label cellI, const scalar wantedFraction, bitSet &isFront, scalarField &fraction) const
Seed faces of cell with wantedFraction (if higher than current)
static autoPtr< cellCellStencil > New(const fvMesh &, const dictionary &dict, const bool update=true)
New function which constructs and returns pointer to a.
void setUpFront(const labelList &allCellTypes, bitSet &isFront) const
Set up front using allCellTypes.
virtual ~cellCellStencil()
Destructor.
static void interpolate(Field< T > &psi, const fvMesh &mesh, const cellCellStencil &overlap, const List< scalarList > &wghts)
Interpolation of acceptor cells from donor cells.
wordHashSet nonInterpolatedFields_
Set of fields that should not be interpolated.
bool localStencil(const labelUList &) const
Helper: is stencil fully local.
void setUpFrontOnOversetPatch(const labelList &allCellTypes, bitSet &isFront) const
Set up front on overset patches.
virtual const scalarList & cellInterpolationWeight() const =0
Per interpolated cell the interpolation factor. (0 = use.
Calculates a unique integer (label so might not have enough room - 2G max) for processor + local inde...
static labelList count(const label size, const labelUList &lst)
Count occurrences (in parallel)
void suppressMotionFields()
Helper: populate nonInterpolatedFields_ with motion solver.
virtual const mapDistribute & cellInterpolationMap() const =0
Return a communication schedule.
word name(const expressions::valueTypeCode typeCode)
A word representation of a valueTypeCode. Empty for expressions::valueTypeCode::INVALID.
Calculation of interpolation stencils.
InfoProxy< cellCellStencil > info() const noexcept
Return info proxy, used to print stencil information to a stream.
A class for handling words, derived from Foam::string.
const cellCellStencilObject & overlap
static tmp< volScalarField > createField(const fvMesh &mesh, const word &name, const UList< Type > &)
Helper: create volScalarField for postprocessing.
virtual const labelUList & interpolationCells() const =0
Indices of interpolated cells.
const fvMesh & mesh_
Reference to the mesh.
static word baseName(const word &name)
Helper: strip off trailing _0.
virtual bool update()=0
Update stencils. Return false if nothing changed.
A Vector of values with scalar precision, where scalar is float/double depending on the compilation f...
TypeName("cellCellStencil")
Runtime type information.
virtual const labelListList & cellStencil() const =0
Per interpolated cell the neighbour cells (in terms of slots as.
virtual const labelUList & cellTypes() const =0
Return the cell type list.
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.
declareRunTimeSelectionTable(autoPtr, cellCellStencil, mesh,(const fvMesh &mesh, const dictionary &dict, const bool update),(mesh, dict, update))
const labelIOList & zoneID() const
Helper: get reference to registered zoneID. Loads volScalarField.
Class containing processor-to-processor mapping information.
A helper class for outputting values to Ostream.
A bitSet stores bits (elements with only two states) in packed internal format and supports a variety...
static const Enum< cellType > cellTypeNames_
Mode type names.
virtual void stencilWeights(const point &sample, const pointList &donorCcs, scalarList &weights) const =0
Calculate weights for a single acceptor.
Mesh data needed to do the Finite Volume discretisation.
static void correctBoundaryConditions(GeoField &psi)
Version of correctBoundaryConditions that excludes 'overset' bcs.
Pointer management similar to std::unique_ptr, with some additional methods and type checking...
const volScalarField & psi
Mesh consisting of general polyhedral cells.
void walkFront(const globalIndex &globalCells, const scalar layerRelax, const labelListList &allStencil, labelList &allCellTypes, scalarField &allWeight, const scalarList &compactCellVol, const labelListList &compactStencil, const labelList &zoneID, const label holeLayers, const label useLayer) const
Surround holes with layer(s) of interpolated cells.
A class for managing temporary objects.
Bookkeeping for patch definitions.
const dictionary dict_
Dictionary of motion control parameters.