Public Types | Public Member Functions | Static Public Member Functions | Static Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
cellCellStencil Class Referenceabstract

Calculation of interpolation stencils. More...

Inheritance diagram for cellCellStencil:
Inheritance graph
[legend]
Collaboration diagram for cellCellStencil:
Collaboration graph
[legend]

Public Types

enum  patchCellType { OTHER = 0, PATCH = 1, OVERSET = 2 }
 
enum  cellType { CALCULATED = 0, INTERPOLATED = 1, HOLE = 2 }
 

Public Member Functions

 TypeName ("cellCellStencil")
 
 declareRunTimeSelectionTable (autoPtr, cellCellStencil, mesh,(const fvMesh &mesh, const dictionary &dict, const bool update),(mesh, dict, update))
 
 cellCellStencil (const fvMesh &)
 
virtual ~cellCellStencil ()
 
virtual bool update ()=0
 
virtual const labelUListcellTypes () const =0
 
virtual const labelUListinterpolationCells () const =0
 
virtual const mapDistributecellInterpolationMap () const =0
 
virtual const labelListListcellStencil () const =0
 
virtual const List< scalarList > & cellInterpolationWeights () const =0
 
virtual const scalarListcellInterpolationWeight () const =0
 
virtual void stencilWeights (const point &sample, const pointList &donorCcs, scalarList &weights) const =0
 
virtual const wordHashSetnonInterpolatedFields () const
 
virtual wordHashSetnonInterpolatedFields ()
 
bool localStencil (const labelUList &) const
 
const labelIOListzoneID () const
 
template<class Type >
Foam::tmp< Foam::volScalarFieldcreateField (const fvMesh &mesh, const word &name, const UList< Type > &psi)
 

Static Public Member Functions

static autoPtr< cellCellStencilNew (const fvMesh &, const dictionary &dict, const bool update=true)
 
static const labelIOListzoneID (const fvMesh &)
 
static void globalCellCells (const globalIndex &gi, const polyMesh &mesh, const boolList &isValidDonor, const labelList &selectedCells, labelListList &cellCells, pointListList &cellCellCentres)
 

Static Protected Member Functions

static labelList count (const label size, const labelUList &lst)
 
template<class Type >
static tmp< volScalarFieldcreateField (const fvMesh &mesh, const word &name, const UList< Type > &)
 

Protected Attributes

const fvMeshmesh_
 
wordHashSet nonInterpolatedFields_
 

Static Protected Attributes

static const Enum< cellTypecellTypeNames_
 

Detailed Description

Calculation of interpolation stencils.

Looks up zoneID labelIOList to give the zoning. Wrapped in MeshObject as cellCellStencilObject. Kept separate so meshes can implement more clever methods (e.g. solid body motion does not require full recalculation)

Source files

Definition at line 57 of file cellCellStencil.H.

Member Enumeration Documentation

◆ patchCellType

Enumerator
OTHER 
PATCH 
OVERSET 

Definition at line 61 of file cellCellStencil.H.

◆ cellType

enum cellType
Enumerator
CALCULATED 
INTERPOLATED 
HOLE 

Definition at line 68 of file cellCellStencil.H.

Constructor & Destructor Documentation

◆ cellCellStencil()

cellCellStencil ( const fvMesh mesh)

Definition at line 49 of file cellCellStencil.C.

◆ ~cellCellStencil()

~cellCellStencil ( )
virtual

Definition at line 86 of file cellCellStencil.C.

Member Function Documentation

◆ count()

Foam::labelList count ( const label  size,
const labelUList lst 
)
staticprotected

Definition at line 136 of file cellCellStencil.C.

References Foam::BitOps::count(), forAll, Pstream::listCombineGather(), and Foam::Zero.

Here is the call graph for this function:

◆ createField() [1/2]

static tmp<volScalarField> createField ( const fvMesh mesh,
const word name,
const UList< Type > &   
)
staticprotected

◆ TypeName()

TypeName ( "cellCellStencil"  )

◆ declareRunTimeSelectionTable()

declareRunTimeSelectionTable ( autoPtr  ,
cellCellStencil  ,
mesh  ,
(const fvMesh &mesh, const dictionary &dict, const bool update ,
(mesh, dict, update  
)

◆ New()

Foam::autoPtr< Foam::cellCellStencil > New ( const fvMesh mesh,
const dictionary dict,
const bool  update = true 
)
static

Definition at line 57 of file cellCellStencil.C.

References DebugInFunction, dict, Foam::endl(), Foam::exit(), Foam::FatalIOError, FatalIOErrorInLookup, dictionary::get(), mesh, and update().

Here is the call graph for this function:

◆ update()

virtual bool update ( )
pure virtual

◆ cellTypes()

virtual const labelUList& cellTypes ( ) const
pure virtual

◆ interpolationCells()

virtual const labelUList& interpolationCells ( ) const
pure virtual

◆ cellInterpolationMap()

virtual const mapDistribute& cellInterpolationMap ( ) const
pure virtual

◆ cellStencil()

virtual const labelListList& cellStencil ( ) const
pure virtual

◆ cellInterpolationWeights()

virtual const List<scalarList>& cellInterpolationWeights ( ) const
pure virtual

◆ cellInterpolationWeight()

virtual const scalarList& cellInterpolationWeight ( ) const
pure virtual

◆ stencilWeights()

virtual void stencilWeights ( const point sample,
const pointList donorCcs,
scalarList weights 
) const
pure virtual

◆ nonInterpolatedFields() [1/2]

Foam::wordHashSet & nonInterpolatedFields ( ) const
virtual

Reimplemented in cellCellStencilObject.

Definition at line 151 of file cellCellStencil.C.

◆ nonInterpolatedFields() [2/2]

virtual wordHashSet& nonInterpolatedFields ( )
virtual

◆ localStencil()

bool localStencil ( const labelUList slots) const

Definition at line 163 of file cellCellStencil.C.

References forAll.

◆ zoneID() [1/2]

const Foam::labelIOList & zoneID ( const fvMesh mesh)
static

◆ zoneID() [2/2]

const labelIOList& zoneID ( ) const
inline

Definition at line 206 of file cellCellStencil.H.

References cellCellStencil::mesh_.

◆ globalCellCells()

void globalCellCells ( const globalIndex gi,
const polyMesh mesh,
const boolList isValidDonor,
const labelList selectedCells,
labelListList cellCells,
pointListList cellCellCentres 
)
static

◆ createField() [2/2]

Foam::tmp<Foam::volScalarField> createField ( const fvMesh mesh,
const word name,
const UList< Type > &  psi 
)

Definition at line 28 of file cellCellStencilTemplates.C.

References Foam::dimless, fld, forAll, mesh, Foam::name(), psi, tmp::ref(), and Foam::Zero.

Here is the call graph for this function:

Member Data Documentation

◆ cellTypeNames_

const Foam::Enum< Foam::cellCellStencil::cellType > cellTypeNames_
staticprotected

Definition at line 81 of file cellCellStencil.H.

◆ mesh_

const fvMesh& mesh_
protected

Definition at line 84 of file cellCellStencil.H.

Referenced by cellCellStencil::zoneID().

◆ nonInterpolatedFields_

wordHashSet nonInterpolatedFields_
protected

Definition at line 87 of file cellCellStencil.H.


The documentation for this class was generated from the following files: