Creates upwind stencil by shifting a centred stencil to upwind and downwind faces and optionally removing all non-(up/down)wind faces ('pureUpwind'). More...
Public Member Functions | |
extendedUpwindCellToFaceStencil (const cellToFaceStencil &, const bool pureUpwind, const scalar minOpposedness) | |
Construct from mesh and uncompacted centred face stencil. More... | |
extendedUpwindCellToFaceStencil (const cellToFaceStencil &) | |
Construct from mesh and uncompacted centred face stencil. Splits. More... | |
bool | pureUpwind () const |
const mapDistribute & | ownMap () const |
Return reference to the parallel distribution map. More... | |
const mapDistribute & | neiMap () const |
Return reference to the parallel distribution map. More... | |
const labelListList & | ownStencil () const |
Return reference to the stencil. More... | |
const labelListList & | neiStencil () const |
Return reference to the stencil. More... | |
template<class Type > | |
tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > | weightedSum (const surfaceScalarField &phi, const GeometricField< Type, fvPatchField, volMesh > &fld, const List< List< scalar > > &ownWeights, const List< List< scalar > > &neiWeights) const |
Sum vol field contributions to create face values. More... | |
template<class Type > | |
Foam::tmp< Foam::GeometricField< Type, Foam::fvsPatchField, Foam::surfaceMesh > > | weightedSum (const surfaceScalarField &phi, const GeometricField< Type, fvPatchField, volMesh > &fld, const List< List< scalar > > &ownWeights, const List< List< scalar > > &neiWeights) const |
![]() | |
ClassName ("extendedCellToFaceStencil") | |
extendedCellToFaceStencil (const polyMesh &) | |
Construct from mesh. More... | |
template<class Type > | |
void | collectData (const mapDistribute &map, const labelListList &stencil, const GeometricField< Type, fvPatchField, volMesh > &fld, List< List< Type > > &stencilFld) |
template<class Type > | |
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) |
Additional Inherited Members | |
![]() | |
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. More... | |
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. More... | |
![]() | |
static void | writeStencilStats (Ostream &os, const labelListList &stencil, const mapDistribute &map) |
Write some statistics about stencil. More... | |
![]() | |
const polyMesh & | mesh_ |
Creates upwind stencil by shifting a centred stencil to upwind and downwind faces and optionally removing all non-(up/down)wind faces ('pureUpwind').
Note: the minOpposedness parameter is to decide which upwind and downwind faces to combine the stencils from. If myArea is the local area and upwindArea the area of the possible upwind candidate it will be included if (upwindArea & myArea)/magSqr(myArea) > minOpposedness so this includes both cosine and area. WIP.
Definition at line 61 of file extendedUpwindCellToFaceStencil.H.
extendedUpwindCellToFaceStencil | ( | const cellToFaceStencil & | stencil, |
const bool | pureUpwind, | ||
const scalar | minOpposedness | ||
) |
Construct from mesh and uncompacted centred face stencil.
Transports facestencil to create owner and neighbour versions. pureUpwind to remove any remaining downwind cells.
Definition at line 382 of file extendedUpwindCellToFaceStencil.C.
References DynamicList< T, SizeMin >::append(), fvMesh::C(), extendedCellToFaceStencil::collectData(), primitiveMesh::faceAreas(), primitiveMesh::faceCentres(), forAll, cellToFaceStencil::globalNumbering(), mesh, cellToFaceStencil::mesh(), PstreamBuffers::nProcs(), points, UList< T >::size(), and List< T >::transfer().
extendedUpwindCellToFaceStencil | ( | const cellToFaceStencil & | stencil | ) |
Construct from mesh and uncompacted centred face stencil. Splits.
stencil into owner and neighbour (so always pure upwind)
Definition at line 526 of file extendedUpwindCellToFaceStencil.C.
References DynamicList< T, SizeMin >::append(), fvMesh::C(), extendedCellToFaceStencil::collectData(), primitiveMesh::faceAreas(), primitiveMesh::faceCentres(), forAll, cellToFaceStencil::globalNumbering(), mesh, cellToFaceStencil::mesh(), PstreamBuffers::nProcs(), points, List< T >::setSize(), UList< T >::size(), and List< T >::transfer().
|
inline |
Definition at line 151 of file extendedUpwindCellToFaceStencil.H.
|
inline |
Return reference to the parallel distribution map.
Definition at line 157 of file extendedUpwindCellToFaceStencil.H.
Referenced by pureUpwindCFCCellToFaceStencilObject::pureUpwindCFCCellToFaceStencilObject(), upwindCECCellToFaceStencilObject::upwindCECCellToFaceStencilObject(), upwindCFCCellToFaceStencilObject::upwindCFCCellToFaceStencilObject(), upwindCPCCellToFaceStencilObject::upwindCPCCellToFaceStencilObject(), upwindFECCellToFaceStencilObject::upwindFECCellToFaceStencilObject(), and extendedUpwindCellToFaceStencil::weightedSum().
|
inline |
Return reference to the parallel distribution map.
Definition at line 163 of file extendedUpwindCellToFaceStencil.H.
Referenced by extendedUpwindCellToFaceStencil::weightedSum().
|
inline |
Return reference to the stencil.
Definition at line 169 of file extendedUpwindCellToFaceStencil.H.
Referenced by pureUpwindCFCCellToFaceStencilObject::pureUpwindCFCCellToFaceStencilObject(), upwindCECCellToFaceStencilObject::upwindCECCellToFaceStencilObject(), upwindCFCCellToFaceStencilObject::upwindCFCCellToFaceStencilObject(), upwindCPCCellToFaceStencilObject::upwindCPCCellToFaceStencilObject(), upwindFECCellToFaceStencilObject::upwindFECCellToFaceStencilObject(), and extendedUpwindCellToFaceStencil::weightedSum().
|
inline |
Return reference to the stencil.
Definition at line 175 of file extendedUpwindCellToFaceStencil.H.
Referenced by extendedUpwindCellToFaceStencil::weightedSum().
tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > weightedSum | ( | const surfaceScalarField & | phi, |
const GeometricField< Type, fvPatchField, volMesh > & | fld, | ||
const List< List< scalar > > & | ownWeights, | ||
const List< List< scalar > > & | neiWeights | ||
) | const |
Sum vol field contributions to create face values.
Referenced by PureUpwindFitScheme< Type, Polynomial, Stencil >::correction(), and UpwindFitScheme< Type, Polynomial, Stencil >::correction().
Foam::tmp< Foam::GeometricField< Type, Foam::fvsPatchField, Foam::surfaceMesh > > weightedSum | ( | const surfaceScalarField & | phi, |
const GeometricField< Type, fvPatchField, volMesh > & | fld, | ||
const List< List< scalar > > & | ownWeights, | ||
const List< List< scalar > > & | neiWeights | ||
) | const |
Definition at line 34 of file extendedUpwindCellToFaceStencilTemplates.C.
References GeometricField< Type, PatchField, GeoMesh >::boundaryField(), GeometricField< Type, PatchField, GeoMesh >::boundaryFieldRef(), extendedCellToFaceStencil::collectData(), fvsPatchField< Type >::coupled(), fld(), forAll, mesh, extendedUpwindCellToFaceStencil::neiMap(), extendedUpwindCellToFaceStencil::neiStencil(), primitiveMesh::nInternalFaces(), IOobject::NO_READ, IOobject::NO_WRITE, extendedUpwindCellToFaceStencil::ownMap(), extendedUpwindCellToFaceStencil::ownStencil(), fvsPatchField< Type >::patch(), phi, tmp< T >::ref(), fvPatch::start(), fvMesh::time(), Time::timeName(), and Foam::Zero.