Least-squares-weighted interpolation stencil. More...
Public Member Functions | |
TypeName ("leastSquares") | |
leastSquares (const fvMesh &, const dictionary &, const bool) | |
virtual | ~leastSquares () |
virtual void | stencilWeights (const point &sample, const pointList &donorCcs, scalarList &weights) const |
![]() | |
TypeName ("inverseDistance") | |
inverseDistance (const fvMesh &, const dictionary &, const bool) | |
virtual | ~inverseDistance () |
virtual bool | update () |
virtual const labelUList & | cellTypes () const |
virtual const labelUList & | interpolationCells () const |
virtual const mapDistribute & | cellInterpolationMap () const |
virtual const labelListList & | cellStencil () const |
virtual const scalarListList & | cellInterpolationWeights () const |
virtual const scalarList & | cellInterpolationWeight () const |
![]() | |
TypeName ("cellCellStencil") | |
declareRunTimeSelectionTable (autoPtr, cellCellStencil, mesh,(const fvMesh &mesh, const dictionary &dict, const bool update),(mesh, dict, update)) | |
cellCellStencil (const fvMesh &) | |
virtual | ~cellCellStencil () |
virtual const wordHashSet & | nonInterpolatedFields () const |
virtual wordHashSet & | nonInterpolatedFields () |
bool | localStencil (const labelUList &) const |
const labelIOList & | zoneID () const |
template<class Type > | |
Foam::tmp< Foam::volScalarField > | createField (const fvMesh &mesh, const word &name, const UList< Type > &psi) |
Additional Inherited Members | |
![]() | |
enum | patchCellType { OTHER = 0, PATCH = 1, OVERSET = 2 } |
enum | cellType { CALCULATED = 0, INTERPOLATED = 1, HOLE = 2 } |
![]() | |
static autoPtr< cellCellStencil > | New (const fvMesh &, const dictionary &dict, const bool update=true) |
static const labelIOList & | zoneID (const fvMesh &) |
static void | globalCellCells (const globalIndex &gi, const polyMesh &mesh, const boolList &isValidDonor, const labelList &selectedCells, labelListList &cellCells, pointListList &cellCellCentres) |
![]() | |
void | markPatchesAsHoles (PstreamBuffers &pBufs, const PtrList< fvMeshSubset > &meshParts, const List< treeBoundBoxList > &patchBb, const List< labelVector > &patchDivisions, const PtrList< PackedList< 2 >> &patchParts, const label srcI, const label tgtI, labelList &allCellTypes) const |
bool | betterDonor (const label destMesh, const label currentDonorMesh, const label newDonorMesh) const |
void | markDonors (const globalIndex &globalCells, PstreamBuffers &pBufs, const PtrList< fvMeshSubset > &meshParts, const List< treeBoundBoxList > &meshBb, const labelList &allCellTypes, const label srcI, const label tgtI, labelListList &allStencil, labelList &allDonor) const |
void | uncompactedRegionSplit (const fvMesh &mesh, const globalIndex &globalFaces, const label nZones, const labelList &zoneID, const labelList &cellTypes, const boolList &isBlockedFace, labelList &cellRegion) const |
autoPtr< globalIndex > | compactedRegionSplit (const fvMesh &mesh, const globalIndex &globalFaces, labelList &cellRegion) const |
void | findHoles (const globalIndex &globalCells, const fvMesh &mesh, const labelList &zoneID, const labelListList &stencil, labelList &cellTypes) const |
void | seedCell (const label cellI, const scalar wantedFraction, bitSet &isFront, scalarField &fraction) const |
void | walkFront (const scalar layerRelax, const labelListList &allStencil, labelList &allCellTypes, scalarField &allWeight) const |
virtual void | createStencil (const globalIndex &) |
![]() | |
static label | index (const labelVector &nDivs, const labelVector &) |
static labelVector | index3 (const labelVector &nDivs, const label) |
static labelVector | index3 (const boundBox &bb, const labelVector &nDivs, const point &pt) |
static point | position (const boundBox &bb, const labelVector &nDivs, const label boxI) |
static void | fill (PackedList< 2 > &elems, const boundBox &bb, const labelVector &nDivs, const boundBox &subBb, const unsigned int val) |
static bool | overlaps (const boundBox &bb, const labelVector &nDivs, const PackedList< 2 > &voxels, const treeBoundBox &subBb, const unsigned int val) |
static void | markBoundaries (const fvMesh &mesh, const vector &smallVec, const boundBox &bb, const labelVector &nDivs, PackedList< 2 > &patchTypes, const labelList &cellMap, labelList &patchCellTypes) |
static treeBoundBox | cellBb (const primitiveMesh &mesh, const label celli) |
![]() | |
static labelList | count (const label size, const labelUList &lst) |
template<class Type > | |
static tmp< volScalarField > | createField (const fvMesh &mesh, const word &name, const UList< Type > &) |
![]() | |
const dictionary | dict_ |
vector | smallVec_ |
labelList | cellTypes_ |
labelList | interpolationCells_ |
autoPtr< mapDistribute > | cellInterpolationMap_ |
labelListList | cellStencil_ |
scalarListList | cellInterpolationWeights_ |
volScalarField | cellInterpolationWeight_ |
![]() | |
const fvMesh & | mesh_ |
wordHashSet | nonInterpolatedFields_ |
![]() | |
static const Enum< cellType > | cellTypeNames_ |
Least-squares-weighted interpolation stencil.
Base machinery is similar to inverse distance interpolation stencil but weights minimize error in LSQ sense recovering exact solution for linear solution problems. Gradient and values are found simultaneously.
Definition at line 54 of file leastSquaresCellCellStencil.H.
leastSquares | ( | const fvMesh & | mesh, |
const dictionary & | dict, | ||
const bool | doUpdate | ||
) |
Definition at line 151 of file leastSquaresCellCellStencil.C.
References update().
|
virtual |
Definition at line 168 of file leastSquaresCellCellStencil.C.
TypeName | ( | "leastSquares" | ) |
|
virtual |
Reimplemented from inverseDistance.
Definition at line 39 of file leastSquaresCellCellStencil.C.
References A, forAll, Foam::mag(), Foam::magSqr(), List::setSize(), dimensioned::T(), SVD::VSinvUt(), Vector< Cmpt >::x(), Vector< Cmpt >::y(), Vector< Cmpt >::z(), and Foam::Zero.
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.