Calculates/constains the extended cell-to-face stencil. More...
#include <finiteVolume/extendedCellToFaceStencil.H>
Calculates/constains the extended cell-to-face stencil.
The stencil is a list of indices into either cells or boundary faces in a compact way. (element 0 is owner, 1 is neighbour). The index numbering is
When used in evaluation is a two stage process:
Definition at line 66 of file extendedCellToFaceStencil.H.
Public Member Functions | |
ClassName ("extendedCellToFaceStencil") | |
extendedCellToFaceStencil (const polyMesh &) | |
Construct from mesh.
| |
template<class Type > | |
void | collectData (const mapDistribute &map, const labelListList &stencil, const GeometricField< Type, fvPatchField, volMesh > &fld, List< List< Type > > &stencilFld) |
Static Public Member Functions | |
static autoPtr< mapDistribute > | calcDistributeMap (const polyMesh &mesh, const globalIndex &globalNumbering, labelListList &faceStencil) |
Calculate distribute map.
| |
template<class T > | |
static void | collectData (const mapDistribute &map, const labelListList &stencil, const GeometricField< T, fvPatchField, volMesh > &fld, List< List< T > > &stencilFld) |
Use map to get the data into stencil order.
| |
template<class Type > | |
static tmp< GeometricField < Type, fvsPatchField, surfaceMesh > > | weightedSum (const mapDistribute &map, const labelListList &stencil, const GeometricField< Type, fvPatchField, volMesh > &fld, const List< List< scalar > > &stencilWeights) |
Sum vol field contributions to create face values.
| |
Static Protected Member Functions | |
static void | writeStencilStats (Ostream &os, const labelListList &stencil, const mapDistribute &map) |
Write some statistics about stencil.
| |
Protected Attributes | |
const polyMesh & | mesh_ |
extendedCellToFaceStencil | ( | const polyMesh & | mesh ) | [explicit]
|
Construct from mesh.
Definition at line 294 of file extendedCellToFaceStencil.C.
References polyMesh::boundaryMesh(), Foam::endl(), Foam::exit(), Foam::FatalError, FatalErrorIn, forAll, patchIdentifier::name(), coupledPolyPatch::parallel(), patches, and coupledPolyPatch::separated().
void writeStencilStats | ( | Ostream & | os, |
const labelListList & | stencil, | ||
const mapDistribute & | map | ||
) | [static, protected]
|
Write some statistics about stencil.
Definition at line 39 of file extendedCellToFaceStencil.C.
References Foam::endl(), forAll, Foam::max(), Foam::min(), Foam::nl, reduce(), Foam::returnReduce(), List< T >::size(), and mapDistribute::subMap().
Referenced by centredCECCellToFaceStencilObject::centredCECCellToFaceStencilObject(), centredCFCCellToFaceStencilObject::centredCFCCellToFaceStencilObject(), centredCPCCellToFaceStencilObject::centredCPCCellToFaceStencilObject(), centredFECCellToFaceStencilObject::centredFECCellToFaceStencilObject(), pureUpwindCFCCellToFaceStencilObject::pureUpwindCFCCellToFaceStencilObject(), upwindCECCellToFaceStencilObject::upwindCECCellToFaceStencilObject(), upwindCFCCellToFaceStencilObject::upwindCFCCellToFaceStencilObject(), upwindCPCCellToFaceStencilObject::upwindCPCCellToFaceStencilObject(), and upwindFECCellToFaceStencilObject::upwindFECCellToFaceStencilObject().
ClassName | ( | "extendedCellToFaceStencil" | ) |
Foam::autoPtr< Foam::mapDistribute > calcDistributeMap | ( | const polyMesh & | mesh, |
const globalIndex & | globalNumbering, | ||
labelListList & | faceStencil | ||
) | [static]
|
Calculate distribute map.
Definition at line 97 of file extendedCellToFaceStencil.C.
References polyMesh::boundaryMesh(), HashTable< T, Key, Hash >::find(), forAll, forAllConstIter, polyMesh::globalData(), Foam::identity(), globalIndex::localSize(), patches, ProcessorTopology< Patch, ProcPatch >::procPatchMap(), List< T >::resize(), List< T >::setSize(), List< T >::size(), HashTable< T, Key, Hash >::toc(), globalIndex::toLocal(), globalIndex::whichProcID(), and List< T >::xfer().
static void collectData | ( | const mapDistribute & | map, |
const labelListList & | stencil, | ||
const GeometricField< T, fvPatchField, volMesh > & | fld, | ||
List< List< T > > & | stencilFld | ||
) | [static]
|
Use map to get the data into stencil order.
Foam::tmp< Foam::GeometricField< Type, Foam::fvsPatchField, Foam::surfaceMesh > > weightedSum | ( | const mapDistribute & | map, |
const labelListList & | stencil, | ||
const GeometricField< Type, fvPatchField, volMesh > & | fld, | ||
const List< List< scalar > > & | stencilWeights | ||
) | [static]
|
Sum vol field contributions to create face values.
Definition at line 82 of file extendedCellToFaceStencilTemplates.C.
References fvsPatchField< Type >::coupled(), DimensionedField< Type, GeoMesh >::dimensions(), forAll, DimensionedField< Type, GeoMesh >::mesh(), mesh, IOobject::name(), primitiveMesh::nInternalFaces(), fvPatch::patch(), fvsPatchField< Type >::patch(), polyPatch::start(), fvMesh::time(), and Time::timeName().
Referenced by quadraticFitSnGrad< Type >::correction().
void collectData | ( | const mapDistribute & | map, |
const labelListList & | stencil, | ||
const GeometricField< Type, fvPatchField, volMesh > & | fld, | ||
List< List< Type > > & | stencilFld | ||
) |
Definition at line 32 of file extendedCellToFaceStencilTemplates.C.
References GeometricField< Type, PatchField, GeoMesh >::boundaryField(), mapDistribute::constructSize(), mapDistribute::distribute(), forAll, List< T >::setSize(), and List< T >::size().
Definition at line 72 of file extendedCellToFaceStencil.H.