43#ifndef Foam_cellCellStencil_H
44#define Foam_cellCellStencil_H
130 cellCellStencil(
const cellCellStencil&) =
delete;
133 void operator=(
const cellCellStencil&) =
delete;
161 cellCellStencil(
const fvMesh&);
180 virtual bool update() = 0;
251 const cellCellStencil&
overlap,
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,
Enum is a wrapper around a list of names/values that represent particular enumeration (or int) values...
Generic templated field type that is much like a Foam::List except that it is expected to hold numeri...
Minimal example by using system/controlDict.functions:
A helper class for outputting values to Ostream.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
A bitSet stores bits (elements with only two states) in packed internal format and supports a variety...
Calculation of interpolation stencils.
virtual const labelUList & interpolationCells() const =0
Indices of interpolated cells.
static word baseName(const word &name)
Helper: strip off trailing _0.
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.
const fvMesh & mesh_
Reference to the mesh.
virtual const mapDistribute & cellInterpolationMap() const =0
Return a communication schedule.
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.
void setUpFront(const labelList &allCellTypes, bitSet &isFront) const
Set up front using allCellTypes.
bool localStencil(const labelUList &) const
Helper: is stencil fully local.
static labelList count(const label size, const labelUList &lst)
Count occurrences (in parallel).
void seedCell(const label cellI, const scalar wantedFraction, bitSet &isFront, scalarField &fraction) const
Seed faces of cell with wantedFraction (if higher than current).
const labelIOList & zoneID() const
Helper: get reference to registered zoneID. Loads volScalarField.
static void interpolate(Field< T > &psi, const fvMesh &mesh, const cellCellStencil &overlap, const List< scalarList > &wghts)
Interpolation of acceptor cells from donor cells.
virtual bool update()=0
Update stencils. Return false if nothing changed.
InfoProxy< cellCellStencil > info() const noexcept
Return info proxy, used to print stencil information to a stream.
virtual const labelUList & cellTypes() const =0
Return the cell type list.
static autoPtr< cellCellStencil > New(const fvMesh &, const dictionary &dict, const bool update=true)
New function which constructs and returns pointer to a.
static const labelIOList & zoneID(const fvMesh &)
Helper: get reference to registered zoneID. Loads volScalarField.
const dictionary dict_
Dictionary of motion control parameters.
void suppressMotionFields()
Helper: populate nonInterpolatedFields_ with motion solver.
virtual const wordHashSet & nonInterpolatedFields() const
Return the names of any (stencil or mesh specific) fields that.
virtual ~cellCellStencil()
Destructor.
virtual const List< scalarList > & cellInterpolationWeights() const =0
Weights for cellStencil.
static const Enum< cellType > cellTypeNames_
Mode type names.
static tmp< volScalarField > createField(const fvMesh &mesh, const word &name, const UList< Type > &)
Helper: create volScalarField for postprocessing.
wordHashSet nonInterpolatedFields_
Set of fields that should not be interpolated.
TypeName("cellCellStencil")
Runtime type information.
virtual void stencilWeights(const point &sample, const pointList &donorCcs, scalarList &weights) const =0
Calculate weights for a single acceptor.
declareRunTimeSelectionTable(autoPtr, cellCellStencil, mesh,(const fvMesh &mesh, const dictionary &dict, const bool update),(mesh, dict, update))
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.
virtual const labelListList & cellStencil() const =0
Per interpolated cell the neighbour cells (in terms of slots as.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Mesh data needed to do the Finite Volume discretisation.
Calculates a non-overlapping list of offsets based on an input size (eg, number of cells) from differ...
Class containing processor-to-processor mapping information.
Mesh consisting of general polyhedral cells.
A class for managing temporary objects.
A class for handling words, derived from Foam::string.
const volScalarField & psi
const cellCellStencilObject & overlap
HashSet< word, Hash< word > > wordHashSet
A HashSet of words, uses string hasher.
List< labelList > labelListList
List of labelList.
List< label > labelList
A List of labels.
IOList< label > labelIOList
IO for a List of label.
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
Ostream & operator<<(Ostream &, const boundaryPatch &p)
Write boundaryPatch as dictionary entries (without surrounding braces).
List< point > pointList
List of point.
vector point
Point is a vector.
List< bool > boolList
A List of bools.
word name(const expressions::valueTypeCode typeCode)
A word representation of a valueTypeCode. Empty for expressions::valueTypeCode::INVALID.
UList< label > labelUList
A UList of labels.
List< scalar > scalarList
List of scalar.
List< pointList > pointListList
List of pointList.
#define declareRunTimeSelectionTable(ptrWrapper, baseType, argNames, argList, parList)
Declare a run-time selection (variables and adder classes).
cellMask correctBoundaryConditions()
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.