Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | Static Private Attributes
immersedBoundaryFvPatch Class Reference

Immersed boundary FV patch. More...

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

Public Member Functions

 TypeName (immersedBoundaryPolyPatch::typeName_())
 Runtime type information. More...
 
 immersedBoundaryFvPatch (const polyPatch &patch, const fvBoundaryMesh &bm)
 Construct from polyPatch. More...
 
virtual ~immersedBoundaryFvPatch ()
 Destructor. More...
 
const immersedBoundaryPolyPatchibPolyPatch () const
 Return reference to immersed boundary polyPatch. More...
 
const triSurfaceMeshibMesh () const
 Return immersed boundary surface mesh. More...
 
bool internalFlow () const
 
bool movingIb () const
 Is the immersed boundary patch moving? More...
 
const volScalarFieldgamma () const
 Get fluid cells indicator, marking only live fluid cells. More...
 
const volScalarFieldgammaExt () const
 Get extended flud cells indicator, including live and IB cells. More...
 
const surfaceScalarFieldsGamma () const
 Get fluid faces indicator, marking faces between live cells. More...
 
const labelListibCells () const
 Return list of fluid cells next to immersed boundary (IB cells) More...
 
const labelListibFaces () const
 Return list of faces for which one neighbour is an IB cell. More...
 
const labelListibFaceCells () const
 Return list of IB cell index for each ibFace. More...
 
const boolListibFaceFlips () const
 Return list of IB face flip: More...
 
const labelListibInsideFaces () const
 Return list of fluid faces for which one neighbour is an. More...
 
const labelListibInternalFaces () const
 Return list of internal faces in the region bounded by IB faces. More...
 
const vectorFieldibPoints () const
 Return IB points. More...
 
const vectorFieldibNormals () const
 Return IB normals. More...
 
const labelListhitFaces () const
 Return list of triangles in IB mesh nearest. More...
 
const vectorFieldibSamplingPoints () const
 Return IB sampling points. More...
 
const scalarListListibSamplingWeights () const
 Interpolation weights for sampling points. More...
 
const scalarListListibSamplingProcWeights () const
 Processor interpolation weights for sampling points. More...
 
const labelListListcellsToTriAddr () const
 Interpolation addressing from IB points to tri faces. More...
 
const scalarListListcellsToTriWeights () const
 Interpolation weights from IB points to tri faces. More...
 
const labelListListibCellCells () const
 Return IB cell extended stencil. More...
 
const FieldField< Field, vector > & ibProcCentres () const
 Return neighbour proc centres. More...
 
const FieldField< Field, scalar > & ibProcGamma () const
 Return neighbour proc gamma. More...
 
const List< List< labelPair > > & ibCellProcCells () const
 Return neighbour cell addressing. More...
 
const labelListListibProcCells () const
 Return neighbour proc cells. More...
 
const labelListdeadCells () const
 Return dead cells. More...
 
const labelListdeadCellsExt () const
 Return extended dead cells. More...
 
const labelListdeadFaces () const
 Return dead faces. More...
 
const labelListliveCells () const
 Return live cells. More...
 
const scalarFieldibCellSizes () const
 Return immersed boundary cell sizes. More...
 
const PtrList< scalarRectangularMatrix > & invDirichletMatrices () const
 Get inverse Dirichlet interpolation matrix. More...
 
const PtrList< scalarRectangularMatrix > & invNeumannMatrices () const
 Get inverse Neumann interpolation matrix. More...
 
const vectorFieldibSf () const
 Return IB face area vectors. More...
 
const scalarFieldibMagSf () const
 Return IB face area vector magnitudes. More...
 
const scalarFieldibDelta () const
 Return distance to IB. More...
 
const scalarFieldibSamplingPointDelta () const
 Return distance to IB. More...
 
const vectorFieldtriSf () const
 Return triangular surface face area vectors. More...
 
const vectorFieldtriCf () const
 Return triangular surface face centres. More...
 
const dynamicLabelList & triFacesInMesh () const
 Return labels of triangular faces which are inside the mesh. More...
 
template<class Type >
tmp< FieldField< Field, Type > > sendAndReceive (const Field< Type > &psi) const
 Send and receive. More...
 
template<class Type >
tmp< Field< Type > > toIbPoints (const Field< Type > &triValues) const
 Collect ibPoint values: from tri face fields onto intersection. More...
 
template<class Type >
tmp< Field< Type > > toIbPoints (const tmp< Field< Type > > &ttriValues) const
 Collect ibPoint values: from tri face fields onto intersection. More...
 
template<class Type >
tmp< Field< Type > > toTriFaces (const Field< Type > &ibValues) const
 triFace values: collect data from IB fields onto intersection More...
 
template<class Type >
tmp< Field< Type > > toTriFaces (const tmp< Field< Type > > &tibValues) const
 triFace values: collect data from IB fields onto intersection More...
 
template<class Type >
tmp< Field< Type > > toSamplingPoints (const Field< Type > &cellValues) const
 Interpolation functions to sampling points from mesh cell centres. More...
 
template<class Type >
const tmp< Field< Type > > renumberField (const Field< Type > &f) const
 Renumber Field to corespond to triangular faces contained. More...
 
template<class Type >
Foam::tmp< Foam::FieldField< Foam::Field, Type > > sendAndReceive (const Field< Type > &psi) const
 
template<class Type >
Foam::tmp< Foam::Field< Type > > toIbPoints (const Field< Type > &triValues) const
 
template<class Type >
Foam::tmp< Foam::Field< Type > > toIbPoints (const tmp< Field< Type > > &ttriValues) const
 
template<class Type >
Foam::tmp< Foam::Field< Type > > toTriFaces (const Field< Type > &ibValues) const
 
template<class Type >
Foam::tmp< Foam::Field< Type > > toTriFaces (const tmp< Field< Type > > &tibValues) const
 
template<class Type >
Foam::tmp< Foam::Field< Type > > toSamplingPoints (const Field< Type > &cellValues) const
 
template<class Type >
const Foam::tmp< Foam::Field< Type > > renumberField (const Field< Type > &f) const
 
- Public Member Functions inherited from fvPatch
 TypeName (polyPatch::typeName_())
 Runtime type information. More...
 
 declareRunTimeSelectionTable (autoPtr, fvPatch, polyPatch,(const polyPatch &patch, const fvBoundaryMesh &bm),(patch, bm))
 
 fvPatch (const polyPatch &, const fvBoundaryMesh &)
 Construct from polyPatch and fvBoundaryMesh. More...
 
virtual ~fvPatch ()
 Destructor. More...
 
const polyPatchpatch () const
 Return the polyPatch. More...
 
const wordname () const
 Return name. More...
 
label start () const
 Return start label of this patch in the polyMesh face list. More...
 
virtual label size () const
 Return size. More...
 
virtual bool coupled () const
 Return true if this patch is coupled. More...
 
label index () const
 Return the index of this patch in the fvBoundaryMesh. More...
 
const fvBoundaryMeshboundaryMesh () const
 Return boundaryMesh reference. More...
 
template<class T >
const List< T >::subList patchSlice (const List< T > &l) const
 Slice list to patch. More...
 
virtual const labelUListfaceCells () const
 Return faceCells. More...
 
const vectorFieldCf () const
 Return face centres. More...
 
tmp< vectorFieldCn () const
 Return neighbour cell centres. More...
 
const vectorFieldSf () const
 Return face area vectors. More...
 
const scalarFieldmagSf () const
 Return face area magnitudes. More...
 
tmp< vectorFieldnf () const
 Return face normals. More...
 
virtual tmp< vectorFielddelta () const
 Return cell-centre to face-centre vector. More...
 
const scalarFieldweights () const
 Return patch weighting factors. More...
 
const scalarFielddeltaCoeffs () const
 Return the face - cell distance coeffient. More...
 
template<class Type >
tmp< Field< Type > > patchInternalField (const UList< Type > &) const
 Return given internal field next to patch as patch field. More...
 
template<class Type >
void patchInternalField (const UList< Type > &, Field< Type > &) const
 Return given internal field next to patch as patch field. More...
 
template<class GeometricField , class Type >
const GeometricField::PatchFieldTypepatchField (const GeometricField &) const
 Return the corresponding patchField of the named field. More...
 
template<class GeometricField , class Type >
const GeometricField::PatchFieldTypelookupPatchField (const word &name, const GeometricField *=NULL, const Type *=NULL) const
 Lookup and return the patchField of the named field from the. More...
 
template<class Type >
Foam::tmp< Foam::Field< Type > > patchInternalField (const UList< Type > &f) const
 

Protected Member Functions

virtual void initMovePoints ()
 Initialise the patches for moving points. More...
 
virtual void movePoints ()
 Correct patches after moving points. More...
 
- Protected Member Functions inherited from fvPatch
virtual void makeWeights (scalarField &) const
 Make patch weighting factors. More...
 

Private Member Functions

void clearOut ()
 Clear all demand-driven data. More...
 
void makeGamma () const
 Make fluid cells indicator, marking only live fluid cells. More...
 
void makeGammaExt () const
 Make extended fluid cells indicator, marking live and IB cells. More...
 
void makeSGamma () const
 Make fluid faces indicator. More...
 
void makeIbCells () const
 Make list of cells next to immersed boundary. More...
 
void addIbCornerCells () const
 Add corner points to IB cells list. More...
 
void makeIbFaces () const
 Make IB faces. More...
 
void makeTriAddressing () const
 Make tri addressing. More...
 
void makeIbInsideFaces () const
 Make inside IB faces. More...
 
void makeIbInternalFaces () const
 Make internal IB faces. More...
 
void makeIbPointsAndNormals () const
 Make immersed boundary points and normals. More...
 
void makeIbSamplingWeights () const
 Make sampling point weights. More...
 
void makeIbCellCells () const
 Make extended IB cells stencils. More...
 
void makeDeadCells () const
 Make list of dead cells. More...
 
void makeDeadCellsExt () const
 Make extended list of dead cells. More...
 
void makeDeadFaces () const
 Make list of dead faces. More...
 
void makeLiveCells () const
 Make list of live cells. More...
 
void makeIbCellSizes () const
 Make immersed boundary cell sizes. More...
 
void makeIbSf () const
 Make face area vectors and magnitudes. More...
 
void makeIbDelta () const
 Make distance between IB cell centres. More...
 
void makeIbSamplingPointDelta () const
 Make distance between IB cell centres. More...
 
void makeTriSf () const
 Make triangular surface face area vectors. More...
 
label findNearestCell (const point &location) const
 Find nearest cell. More...
 
void findCellCells (const vector &pt, const label cellID, labelList &cellCells) const
 Return extended cell-cell addressing. More...
 
scalar cellSize (label cellID) const
 Calc cell size. More...
 
scalar cellProjection (label cellID, const vector &dir) const
 Calc cell projection area. More...
 
void makeInvDirichletMatrices () const
 Make inverse Dirichlet interpolation matrices. More...
 
void makeInvNeumannMatrices () const
 Make inverse Neumann interpolation matrices. More...
 

Private Attributes

const immersedBoundaryPolyPatchibPolyPatch_
 Reference to processor patch. More...
 
const fvMeshmesh_
 Finite volume mesh reference. More...
 
label ibUpdateTimeIndex_
 Time index for last update of mesh or moving boundary. More...
 
volScalarFieldgammaPtr_
 Fluid cells indicator, marking only live fluid cells. More...
 
volScalarFieldgammaExtPtr_
 Fluid cells indicator, marking live and IB cells. More...
 
surfaceScalarFieldsGammaPtr_
 Fluid faces indicator, marking faces between live cells. More...
 
labelListibCellsPtr_
 List of fluid cells next to immersed boundary (IB cells) More...
 
labelListibFacesPtr_
 List of faces for which one neighbour is an IB cell. More...
 
labelListibFaceCellsPtr_
 List of IB cell index for each ibFace. More...
 
boolListibFaceFlipsPtr_
 List of IB face flip: More...
 
labelListibInsideFacesPtr_
 List of fluid faces for which one neighbour is an IB cell. More...
 
labelListibInternalFacesPtr_
 List of internal faces in the region bounded by IB faces. More...
 
vectorFieldibPointsPtr_
 Points at the immersed boundary (IB points) More...
 
vectorFieldibNormalsPtr_
 Normals at IB points. More...
 
labelListhitFacesPtr_
 List of faces (triangles) which are part of IB mesh. More...
 
vectorFieldibSamplingPointsPtr_
 Sampling points for IB cells. More...
 
scalarListListibSamplingWeightsPtr_
 Interpolation weights for sampling weights. More...
 
scalarListListibSamplingProcWeightsPtr_
 Interpolation weights for sampling processor weights. More...
 
labelListListcellsToTriAddrPtr_
 Interpolation addressing from IB points to tri faces. More...
 
scalarListListcellsToTriWeightsPtr_
 Interpolation weights from IB points to tri faces. More...
 
labelListListibCellCellsPtr_
 Neighbour cells for immersed boundary cells. More...
 
labelListListibProcCellsPtr_
 List of cells needed by neighbour processors. More...
 
FieldField< Field, vector > * ibProcCentresPtr_
 Centres of cells from neighbour processors. More...
 
FieldField< Field, scalar > * ibProcGammaPtr_
 Gamma of cells from neighbour processors. More...
 
List< List< labelPair > > * ibCellProcCellsPtr_
 Cell-proc-cell addressing. More...
 
labelListdeadCellsPtr_
 Dead cells list. More...
 
labelListdeadCellsExtPtr_
 Extended dead cells list (dead cells + IB cells) More...
 
labelListdeadFacesPtr_
 Dead faces list. More...
 
labelListliveCellsPtr_
 List of live cells. More...
 
scalarFieldibCellSizesPtr_
 Average IB cell sizes. More...
 
PtrList< scalarRectangularMatrix > * invDirichletMatricesPtr_
 Inverse interpolation matrices for Dirichlet BC at the IB. More...
 
PtrList< scalarRectangularMatrix > * invNeumannMatricesPtr_
 Inverse interpolation matrices for Neumann BC at the IB. More...
 
vectorFieldibSfPtr_
 IB face area vectors. More...
 
scalarFieldibMagSfPtr_
 IB face area vector magnitudess. More...
 
scalarFieldibDeltaPtr_
 IB cell centre distances to IB. More...
 
scalarFieldibSamplingPointDeltaPtr_
 IB cell centre distances to IB. More...
 
vectorFieldtriSfPtr_
 Tri surface face area vectors. More...
 
dynamicLabelList triFacesInMesh_
 Tri surface face labels contained in this mesh. More...
 

Static Private Attributes

static const debug::tolerancesSwitch angleFactor_
 Fitting angle rejection factor (deg) More...
 
static const debug::tolerancesSwitch radiusFactor_
 Fitting radius factor. More...
 
static const debug::optimisationSwitch maxCellCellRows_
 Maximum number of rows in cell-cell search. More...
 
static const debug::tolerancesSwitch distFactor_
 Sampling point distance factor. More...
 

Additional Inherited Members

- Public Types inherited from fvPatch
typedef fvBoundaryMesh BoundaryMesh
 
- Static Public Member Functions inherited from fvPatch
static autoPtr< fvPatchNew (const polyPatch &, const fvBoundaryMesh &)
 Return a pointer to a new patch created on freestore from polyPatch. More...
 
static bool constraintType (const word &pt)
 Return true if the given type is a constraint type. More...
 
static wordList constraintTypes ()
 Return a list of all the constraint patch types. More...
 

Detailed Description

Immersed boundary FV patch.

Author Zeljko Tukovic Reorganisation by Hrvoje Jasak

Source files

Definition at line 66 of file immersedBoundaryFvPatch.H.

Constructor & Destructor Documentation

◆ immersedBoundaryFvPatch()

immersedBoundaryFvPatch ( const polyPatch patch,
const fvBoundaryMesh bm 
)

Construct from polyPatch.

Definition at line 2209 of file immersedBoundaryFvPatch.C.

◆ ~immersedBoundaryFvPatch()

virtual ~immersedBoundaryFvPatch ( )
inlinevirtual

Destructor.

Definition at line 352 of file immersedBoundaryFvPatch.H.

Member Function Documentation

◆ clearOut()

void clearOut ( )
private

Clear all demand-driven data.

Definition at line 2149 of file immersedBoundaryFvPatch.C.

References Foam::deleteDemandDrivenData().

Here is the call graph for this function:

◆ makeGamma()

void makeGamma ( ) const
private

◆ makeGammaExt()

void makeGammaExt ( ) const
private

Make extended fluid cells indicator, marking live and IB cells.

Definition at line 145 of file immersedBoundaryFvPatch.C.

References Foam::abort(), Foam::dimless, Foam::endl(), Foam::FatalError, FatalErrorIn, forAll, Foam::Info, InfoIn, Foam::name(), IOobject::NO_READ, and IOobject::NO_WRITE.

Here is the call graph for this function:

◆ makeSGamma()

void makeSGamma ( ) const
private

◆ makeIbCells()

void makeIbCells ( ) const
private

◆ addIbCornerCells()

void addIbCornerCells ( ) const
private

◆ makeIbFaces()

void makeIbFaces ( ) const
private

Make IB faces.

Definition at line 642 of file immersedBoundaryFvPatch.C.

References Foam::abort(), DynamicList::append(), Foam::endl(), Foam::FatalError, FatalErrorIn, forAll, InfoIn, Foam::mag(), Foam::name(), DynamicList::shrink(), List::size(), and DynamicList::xfer().

Here is the call graph for this function:

◆ makeTriAddressing()

void makeTriAddressing ( ) const
private

◆ makeIbInsideFaces()

void makeIbInsideFaces ( ) const
private

◆ makeIbInternalFaces()

void makeIbInternalFaces ( ) const
private

◆ makeIbPointsAndNormals()

void makeIbPointsAndNormals ( ) const
private

◆ makeIbSamplingWeights()

void makeIbSamplingWeights ( ) const
private

◆ makeIbCellCells()

void makeIbCellCells ( ) const
private

◆ makeDeadCells()

void makeDeadCells ( ) const
private

Make list of dead cells.

Definition at line 1592 of file immersedBoundaryFvPatch.C.

References Foam::abort(), Foam::endl(), Foam::FatalError, FatalErrorIn, forAll, InfoIn, and Foam::sum().

Here is the call graph for this function:

◆ makeDeadCellsExt()

void makeDeadCellsExt ( ) const
private

Make extended list of dead cells.

Definition at line 1627 of file immersedBoundaryFvPatch.C.

References Foam::abort(), Foam::endl(), Foam::FatalError, FatalErrorIn, forAll, InfoIn, and Foam::sum().

Here is the call graph for this function:

◆ makeDeadFaces()

void makeDeadFaces ( ) const
private

Make list of dead faces.

Definition at line 1661 of file immersedBoundaryFvPatch.C.

References Foam::abort(), GeometricField::boundaryField(), Foam::endl(), Foam::FatalError, FatalErrorIn, forAll, InfoIn, GeometricField::internalField(), and List::setSize().

Here is the call graph for this function:

◆ makeLiveCells()

void makeLiveCells ( ) const
private

Make list of live cells.

Definition at line 1745 of file immersedBoundaryFvPatch.C.

References Foam::abort(), Foam::endl(), Foam::FatalError, FatalErrorIn, forAll, InfoIn, and Foam::sum().

Here is the call graph for this function:

◆ makeIbCellSizes()

void makeIbCellSizes ( ) const
private

Make immersed boundary cell sizes.

Definition at line 1779 of file immersedBoundaryFvPatch.C.

References Foam::abort(), delta, Foam::endl(), Foam::FatalError, FatalErrorIn, InfoIn, Foam::pow(), and Foam::sqrt().

Here is the call graph for this function:

◆ makeIbSf()

void makeIbSf ( ) const
private

Make face area vectors and magnitudes.

Definition at line 1842 of file immersedBoundaryFvPatch.C.

References Foam::abort(), Foam::endl(), Foam::FatalError, FatalErrorIn, InfoIn, and Foam::mag().

Here is the call graph for this function:

◆ makeIbDelta()

void makeIbDelta ( ) const
private

Make distance between IB cell centres.

and corresponding IB points

Definition at line 1868 of file immersedBoundaryFvPatch.C.

References Foam::abort(), Foam::endl(), Foam::FatalError, FatalErrorIn, InfoIn, and Foam::mag().

Here is the call graph for this function:

◆ makeIbSamplingPointDelta()

void makeIbSamplingPointDelta ( ) const
private

Make distance between IB cell centres.

and corresponding sample IB points

Definition at line 1894 of file immersedBoundaryFvPatch.C.

References Foam::abort(), Foam::endl(), Foam::FatalError, FatalErrorIn, InfoIn, and Foam::mag().

Here is the call graph for this function:

◆ makeTriSf()

void makeTriSf ( ) const
private

Make triangular surface face area vectors.

Definition at line 1922 of file immersedBoundaryFvPatch.C.

References Foam::abort(), Foam::endl(), Foam::FatalError, FatalErrorIn, forAll, InfoIn, PrimitivePatch< Face, FaceList, PointField, PointType >::points(), and List::size().

Here is the call graph for this function:

◆ findNearestCell()

Foam::label findNearestCell ( const point location) const
private

Find nearest cell.

Definition at line 1962 of file immersedBoundaryFvPatch.C.

References Foam::magSqr().

Here is the call graph for this function:

◆ findCellCells()

void findCellCells ( const vector pt,
const label  cellID,
labelList cellCells 
) const
private

Return extended cell-cell addressing.

Definition at line 1992 of file immersedBoundaryFvPatch.C.

References HashTable::erase(), forAll, HashTable::found(), SortableList::indices(), HashSet< Key, Hash >::insert(), Foam::mag(), List::size(), and HashTable::toc().

Here is the call graph for this function:

◆ cellSize()

Foam::scalar cellSize ( label  cellID) const
private

Calc cell size.

Definition at line 2086 of file immersedBoundaryFvPatch.C.

References delta, Foam::pow(), and Foam::sqrt().

Here is the call graph for this function:

◆ cellProjection()

Foam::scalar cellProjection ( label  cellID,
const vector dir 
) const
private

Calc cell projection area.

Definition at line 2115 of file immersedBoundaryFvPatch.C.

References forAll.

◆ makeInvDirichletMatrices()

void makeInvDirichletMatrices ( ) const
private

◆ makeInvNeumannMatrices()

void makeInvNeumannMatrices ( ) const
private

◆ initMovePoints()

void initMovePoints ( )
protectedvirtual

Initialise the patches for moving points.

Reimplemented from fvPatch.

Definition at line 2196 of file immersedBoundaryFvPatch.C.

◆ movePoints()

void movePoints ( )
protectedvirtual

Correct patches after moving points.

Reimplemented from fvPatch.

Definition at line 2200 of file immersedBoundaryFvPatch.C.

◆ TypeName()

TypeName ( immersedBoundaryPolyPatch::typeName_()  )

Runtime type information.

◆ ibPolyPatch()

const immersedBoundaryPolyPatch& ibPolyPatch ( ) const
inline

Return reference to immersed boundary polyPatch.

Definition at line 361 of file immersedBoundaryFvPatch.H.

References immersedBoundaryFvPatch::ibPolyPatch_.

◆ ibMesh()

const triSurfaceMesh& ibMesh ( ) const
inline

Return immersed boundary surface mesh.

Definition at line 367 of file immersedBoundaryFvPatch.H.

References immersedBoundaryPolyPatch::ibMesh(), and immersedBoundaryFvPatch::ibPolyPatch_.

Here is the call graph for this function:

◆ internalFlow()

bool internalFlow ( ) const
inline

Definition at line 372 of file immersedBoundaryFvPatch.H.

References immersedBoundaryFvPatch::ibPolyPatch_, and immersedBoundaryPolyPatch::internalFlow().

Here is the call graph for this function:

◆ movingIb()

bool movingIb ( ) const
inline

◆ gamma()

const Foam::volScalarField & gamma ( ) const

Get fluid cells indicator, marking only live fluid cells.

Definition at line 2256 of file immersedBoundaryFvPatch.C.

Referenced by immersedBoundaryFvPatch::makeIbSamplingWeights().

Here is the caller graph for this function:

◆ gammaExt()

const Foam::volScalarField & gammaExt ( ) const

Get extended flud cells indicator, including live and IB cells.

Definition at line 2267 of file immersedBoundaryFvPatch.C.

Referenced by refineImmersedBoundaryMesh::addIbCellCellFaces(), and immersedBoundaryFvPatch::makeGamma().

Here is the caller graph for this function:

◆ sGamma()

const Foam::surfaceScalarField & sGamma ( ) const

Get fluid faces indicator, marking faces between live cells.

Definition at line 2278 of file immersedBoundaryFvPatch.C.

◆ ibCells()

const Foam::labelList & ibCells ( ) const

Return list of fluid cells next to immersed boundary (IB cells)

Definition at line 2289 of file immersedBoundaryFvPatch.C.

Referenced by refineImmersedBoundaryMesh::addIbCells(), immersedBoundaryFvPatch::makeGamma(), immersedBoundaryFvPatch::makeIbSamplingWeights(), and immersedBoundaryFvPatch::makeInvDirichletMatrices().

Here is the caller graph for this function:

◆ ibFaces()

const Foam::labelList & ibFaces ( ) const

Return list of faces for which one neighbour is an IB cell.

and another neighbour is a live fluid cell (IB faces)

Definition at line 2300 of file immersedBoundaryFvPatch.C.

Referenced by Foam::immersedBoundaryAdjustPhi().

Here is the caller graph for this function:

◆ ibFaceCells()

const Foam::labelList & ibFaceCells ( ) const

Return list of IB cell index for each ibFace.

Definition at line 2311 of file immersedBoundaryFvPatch.C.

◆ ibFaceFlips()

const Foam::boolList & ibFaceFlips ( ) const

Return list of IB face flip:

false if IB face points into IB cell (out of the live cell) true if IB face points into a live cell

Definition at line 2322 of file immersedBoundaryFvPatch.C.

Referenced by Foam::immersedBoundaryAdjustPhi().

Here is the caller graph for this function:

◆ ibInsideFaces()

const Foam::labelList & ibInsideFaces ( ) const

Return list of fluid faces for which one neighbour is an.

IB cell and another neighbour is a dead cell (inside IB faces)

Definition at line 2333 of file immersedBoundaryFvPatch.C.

Referenced by refineImmersedBoundaryMesh::addIbCellCellFaces().

Here is the caller graph for this function:

◆ ibInternalFaces()

const Foam::labelList & ibInternalFaces ( ) const

Return list of internal faces in the region bounded by IB faces.

Definition at line 2344 of file immersedBoundaryFvPatch.C.

◆ ibPoints()

const Foam::vectorField & ibPoints ( ) const

Return IB points.

Definition at line 2355 of file immersedBoundaryFvPatch.C.

Referenced by immersedBoundaryFvPatch::makeInvDirichletMatrices(), and immersedBoundaryFvPatch::makeTriAddressing().

Here is the caller graph for this function:

◆ ibNormals()

const Foam::vectorField & ibNormals ( ) const

Return IB normals.

Definition at line 2366 of file immersedBoundaryFvPatch.C.

◆ hitFaces()

const Foam::labelList & hitFaces ( ) const

Return list of triangles in IB mesh nearest.

nearest to IB cell centres

Definition at line 2377 of file immersedBoundaryFvPatch.C.

Referenced by immersedBoundaryFvPatch::makeTriAddressing().

Here is the caller graph for this function:

◆ ibSamplingPoints()

const Foam::vectorField & ibSamplingPoints ( ) const

Return IB sampling points.

Definition at line 2389 of file immersedBoundaryFvPatch.C.

Referenced by immersedBoundaryFvPatch::makeIbSamplingWeights().

Here is the caller graph for this function:

◆ ibSamplingWeights()

const Foam::scalarListList & ibSamplingWeights ( ) const

Interpolation weights for sampling points.

Definition at line 184 of file immersedBoundaryFvPatchSamplingWeights.C.

◆ ibSamplingProcWeights()

const Foam::scalarListList & ibSamplingProcWeights ( ) const

Processor interpolation weights for sampling points.

Definition at line 196 of file immersedBoundaryFvPatchSamplingWeights.C.

◆ cellsToTriAddr()

const Foam::labelListList & cellsToTriAddr ( ) const

Interpolation addressing from IB points to tri faces.

Definition at line 211 of file immersedBoundaryFvPatchTriAddressing.C.

◆ cellsToTriWeights()

const Foam::scalarListList & cellsToTriWeights ( ) const

Interpolation weights from IB points to tri faces.

Definition at line 223 of file immersedBoundaryFvPatchTriAddressing.C.

◆ ibCellCells()

const Foam::labelListList & ibCellCells ( ) const

Return IB cell extended stencil.

Definition at line 2400 of file immersedBoundaryFvPatch.C.

Referenced by refineImmersedBoundaryMesh::addIbCellCells(), immersedBoundaryFvPatch::makeIbSamplingWeights(), and immersedBoundaryFvPatch::makeInvDirichletMatrices().

Here is the caller graph for this function:

◆ ibProcCentres()

const Foam::FieldField< Foam::Field, Foam::vector > & ibProcCentres ( ) const

Return neighbour proc centres.

These are centres from neighbouring processors the local processor needs to receive

Definition at line 2412 of file immersedBoundaryFvPatch.C.

Referenced by immersedBoundaryFvPatch::makeIbSamplingWeights(), and immersedBoundaryFvPatch::makeInvDirichletMatrices().

Here is the caller graph for this function:

◆ ibProcGamma()

const Foam::FieldField< Foam::Field, Foam::scalar > & ibProcGamma ( ) const

Return neighbour proc gamma.

These are gamma values from neighbouring processors the local processor needs to receive

Definition at line 2424 of file immersedBoundaryFvPatch.C.

Referenced by immersedBoundaryFvPatch::makeIbSamplingWeights().

Here is the caller graph for this function:

◆ ibCellProcCells()

const Foam::List< Foam::List< Foam::labelPair > > & ibCellProcCells ( ) const

Return neighbour cell addressing.

Definition at line 2436 of file immersedBoundaryFvPatch.C.

Referenced by immersedBoundaryFvPatch::makeIbSamplingWeights(), and immersedBoundaryFvPatch::makeInvDirichletMatrices().

Here is the caller graph for this function:

◆ ibProcCells()

const Foam::labelListList & ibProcCells ( ) const

Return neighbour proc cells.

These are cell data that other processors need from local processor

Definition at line 2447 of file immersedBoundaryFvPatch.C.

◆ deadCells()

const Foam::labelList & deadCells ( ) const

Return dead cells.

Definition at line 2458 of file immersedBoundaryFvPatch.C.

◆ deadCellsExt()

const Foam::labelList & deadCellsExt ( ) const

Return extended dead cells.

Definition at line 2469 of file immersedBoundaryFvPatch.C.

◆ deadFaces()

const Foam::labelList & deadFaces ( ) const

Return dead faces.

Definition at line 2480 of file immersedBoundaryFvPatch.C.

◆ liveCells()

const Foam::labelList & liveCells ( ) const

Return live cells.

Definition at line 2491 of file immersedBoundaryFvPatch.C.

◆ ibCellSizes()

const Foam::scalarField & ibCellSizes ( ) const

Return immersed boundary cell sizes.

Definition at line 2502 of file immersedBoundaryFvPatch.C.

◆ invDirichletMatrices()

const Foam::PtrList< Foam::scalarRectangularMatrix > & invDirichletMatrices ( ) const

Get inverse Dirichlet interpolation matrix.

Definition at line 570 of file immersedBoundaryFvPatchLeastSquaresFit.C.

◆ invNeumannMatrices()

const Foam::PtrList< Foam::scalarRectangularMatrix > & invNeumannMatrices ( ) const

Get inverse Neumann interpolation matrix.

Definition at line 582 of file immersedBoundaryFvPatchLeastSquaresFit.C.

◆ ibSf()

const Foam::vectorField & ibSf ( ) const

Return IB face area vectors.

Definition at line 2513 of file immersedBoundaryFvPatch.C.

◆ ibMagSf()

const Foam::scalarField & ibMagSf ( ) const

Return IB face area vector magnitudes.

Definition at line 2524 of file immersedBoundaryFvPatch.C.

◆ ibDelta()

const Foam::scalarField & ibDelta ( ) const

Return distance to IB.

Definition at line 2535 of file immersedBoundaryFvPatch.C.

◆ ibSamplingPointDelta()

const Foam::scalarField & ibSamplingPointDelta ( ) const

Return distance to IB.

Definition at line 2547 of file immersedBoundaryFvPatch.C.

◆ triSf()

const Foam::vectorField & triSf ( ) const

Return triangular surface face area vectors.

Definition at line 2558 of file immersedBoundaryFvPatch.C.

Referenced by immersedBoundaryForces::calcForcesMoment(), and Foam::immersedBoundaryAdjustPhi().

Here is the caller graph for this function:

◆ triCf()

const Foam::vectorField & triCf ( ) const

Return triangular surface face centres.

Definition at line 2569 of file immersedBoundaryFvPatch.C.

Referenced by immersedBoundaryForces::calcForcesMoment().

Here is the caller graph for this function:

◆ triFacesInMesh()

const Foam::dynamicLabelList & triFacesInMesh ( ) const

Return labels of triangular faces which are inside the mesh.

Definition at line 2576 of file immersedBoundaryFvPatch.C.

References forAll.

Referenced by immersedBoundaryFvPatch::makeTriAddressing().

Here is the caller graph for this function:

◆ sendAndReceive() [1/2]

tmp<FieldField<Field, Type> > sendAndReceive ( const Field< Type > &  psi) const

Send and receive.

◆ toIbPoints() [1/4]

tmp<Field<Type> > toIbPoints ( const Field< Type > &  triValues) const

Collect ibPoint values: from tri face fields onto intersection.

points on the IB surface

◆ toIbPoints() [2/4]

tmp<Field<Type> > toIbPoints ( const tmp< Field< Type > > &  ttriValues) const

Collect ibPoint values: from tri face fields onto intersection.

points on the IB surface with tmp

◆ toTriFaces() [1/4]

tmp<Field<Type> > toTriFaces ( const Field< Type > &  ibValues) const

triFace values: collect data from IB fields onto intersection

points on the IB surface

Referenced by immersedBoundaryForces::calcForcesMoment().

Here is the caller graph for this function:

◆ toTriFaces() [2/4]

tmp<Field<Type> > toTriFaces ( const tmp< Field< Type > > &  tibValues) const

triFace values: collect data from IB fields onto intersection

points on the IB surface with tmp

◆ toSamplingPoints() [1/2]

tmp<Field<Type> > toSamplingPoints ( const Field< Type > &  cellValues) const

Interpolation functions to sampling points from mesh cell centres.

◆ renumberField() [1/2]

const tmp<Field<Type> > renumberField ( const Field< Type > &  f) const

Renumber Field to corespond to triangular faces contained.

inside the mesh

Referenced by immersedBoundaryForces::calcForcesMoment().

Here is the caller graph for this function:

◆ sendAndReceive() [2/2]

Foam::tmp<Foam::FieldField<Foam::Field, Type> > sendAndReceive ( const Field< Type > &  psi) const

Definition at line 34 of file immersedBoundaryFvPatchTemplates.C.

References forAll, and psi.

◆ toIbPoints() [3/4]

Foam::tmp<Foam::Field<Type> > toIbPoints ( const Field< Type > &  triValues) const

Definition at line 111 of file immersedBoundaryFvPatchTemplates.C.

References Foam::abort(), Foam::FatalError, FatalErrorIn, forAll, Foam::name(), Foam::nl, and List::size().

Here is the call graph for this function:

◆ toIbPoints() [4/4]

Foam::tmp<Foam::Field<Type> > toIbPoints ( const tmp< Field< Type > > &  ttriValues) const

Definition at line 171 of file immersedBoundaryFvPatchTemplates.C.

◆ toTriFaces() [3/4]

Foam::tmp<Foam::Field<Type> > toTriFaces ( const Field< Type > &  ibValues) const

Definition at line 185 of file immersedBoundaryFvPatchTemplates.C.

References Foam::abort(), Foam::FatalError, FatalErrorIn, forAll, Foam::name(), Foam::nl, and List::size().

Here is the call graph for this function:

◆ toTriFaces() [4/4]

Foam::tmp<Foam::Field<Type> > toTriFaces ( const tmp< Field< Type > > &  tibValues) const

Definition at line 234 of file immersedBoundaryFvPatchTemplates.C.

◆ toSamplingPoints() [2/2]

Foam::tmp<Foam::Field<Type> > toSamplingPoints ( const Field< Type > &  cellValues) const

Definition at line 248 of file immersedBoundaryFvPatchTemplates.C.

References Foam::abort(), Foam::FatalError, FatalErrorIn, forAll, Foam::name(), Foam::nl, and List::size().

Here is the call graph for this function:

◆ renumberField() [2/2]

const Foam::tmp<Foam::Field<Type> > renumberField ( const Field< Type > &  f) const

Definition at line 326 of file immersedBoundaryFvPatchTemplates.C.

References f(), and forAll.

Here is the call graph for this function:

Field Documentation

◆ ibPolyPatch_

const immersedBoundaryPolyPatch& ibPolyPatch_
private

◆ mesh_

const fvMesh& mesh_
private

◆ ibUpdateTimeIndex_

label ibUpdateTimeIndex_
mutableprivate

Time index for last update of mesh or moving boundary.

Definition at line 79 of file immersedBoundaryFvPatch.H.

◆ angleFactor_

const Foam::debug::tolerancesSwitch angleFactor_
staticprivate

Fitting angle rejection factor (deg)

Cells within the the radius will be used for the fitting function

Definition at line 86 of file immersedBoundaryFvPatch.H.

◆ radiusFactor_

const Foam::debug::tolerancesSwitch radiusFactor_
staticprivate

Fitting radius factor.

Cells within the the radius will be used for the fitting function

Definition at line 90 of file immersedBoundaryFvPatch.H.

◆ maxCellCellRows_

const Foam::debug::optimisationSwitch maxCellCellRows_
staticprivate

Maximum number of rows in cell-cell search.

Definition at line 93 of file immersedBoundaryFvPatch.H.

◆ distFactor_

const Foam::debug::tolerancesSwitch distFactor_
staticprivate

Sampling point distance factor.

Sampling point is located distFactor further away from the wall from the immersed boundary cell centre

Definition at line 98 of file immersedBoundaryFvPatch.H.

◆ gammaPtr_

volScalarField* gammaPtr_
mutableprivate

Fluid cells indicator, marking only live fluid cells.

Definition at line 106 of file immersedBoundaryFvPatch.H.

Referenced by immersedBoundaryFvPatch::makeGamma().

◆ gammaExtPtr_

volScalarField* gammaExtPtr_
mutableprivate

Fluid cells indicator, marking live and IB cells.

Definition at line 109 of file immersedBoundaryFvPatch.H.

◆ sGammaPtr_

surfaceScalarField* sGammaPtr_
mutableprivate

Fluid faces indicator, marking faces between live cells.

Definition at line 112 of file immersedBoundaryFvPatch.H.

◆ ibCellsPtr_

labelList* ibCellsPtr_
mutableprivate

List of fluid cells next to immersed boundary (IB cells)

Definition at line 115 of file immersedBoundaryFvPatch.H.

◆ ibFacesPtr_

labelList* ibFacesPtr_
mutableprivate

List of faces for which one neighbour is an IB cell.

and another neighbour is a live fluid cell (IB faces)

Definition at line 119 of file immersedBoundaryFvPatch.H.

◆ ibFaceCellsPtr_

labelList* ibFaceCellsPtr_
mutableprivate

List of IB cell index for each ibFace.

Definition at line 122 of file immersedBoundaryFvPatch.H.

◆ ibFaceFlipsPtr_

boolList* ibFaceFlipsPtr_
mutableprivate

List of IB face flip:

false if IB face points into IB cell (out of the live cell) true if IB face points into a live cell

Definition at line 127 of file immersedBoundaryFvPatch.H.

◆ ibInsideFacesPtr_

labelList* ibInsideFacesPtr_
mutableprivate

List of fluid faces for which one neighbour is an IB cell.

and another neighbour is a dead cell (inside IB faces)

Definition at line 131 of file immersedBoundaryFvPatch.H.

◆ ibInternalFacesPtr_

labelList* ibInternalFacesPtr_
mutableprivate

List of internal faces in the region bounded by IB faces.

Definition at line 134 of file immersedBoundaryFvPatch.H.

◆ ibPointsPtr_

vectorField* ibPointsPtr_
mutableprivate

Points at the immersed boundary (IB points)

nearest to the IB cell centres

Definition at line 138 of file immersedBoundaryFvPatch.H.

◆ ibNormalsPtr_

vectorField* ibNormalsPtr_
mutableprivate

Normals at IB points.

Definition at line 141 of file immersedBoundaryFvPatch.H.

◆ hitFacesPtr_

labelList* hitFacesPtr_
mutableprivate

List of faces (triangles) which are part of IB mesh.

nearest to the IB cell centres

Definition at line 145 of file immersedBoundaryFvPatch.H.

◆ ibSamplingPointsPtr_

vectorField* ibSamplingPointsPtr_
mutableprivate

Sampling points for IB cells.

Definition at line 148 of file immersedBoundaryFvPatch.H.

◆ ibSamplingWeightsPtr_

scalarListList* ibSamplingWeightsPtr_
mutableprivate

Interpolation weights for sampling weights.

Definition at line 151 of file immersedBoundaryFvPatch.H.

Referenced by immersedBoundaryFvPatch::makeIbSamplingWeights().

◆ ibSamplingProcWeightsPtr_

scalarListList* ibSamplingProcWeightsPtr_
mutableprivate

Interpolation weights for sampling processor weights.

Definition at line 154 of file immersedBoundaryFvPatch.H.

Referenced by immersedBoundaryFvPatch::makeIbSamplingWeights().

◆ cellsToTriAddrPtr_

labelListList* cellsToTriAddrPtr_
mutableprivate

Interpolation addressing from IB points to tri faces.

Definition at line 157 of file immersedBoundaryFvPatch.H.

Referenced by immersedBoundaryFvPatch::makeTriAddressing().

◆ cellsToTriWeightsPtr_

scalarListList* cellsToTriWeightsPtr_
mutableprivate

Interpolation weights from IB points to tri faces.

Definition at line 160 of file immersedBoundaryFvPatch.H.

Referenced by immersedBoundaryFvPatch::makeTriAddressing().

◆ ibCellCellsPtr_

labelListList* ibCellCellsPtr_
mutableprivate

Neighbour cells for immersed boundary cells.

(extended stencil)

Definition at line 164 of file immersedBoundaryFvPatch.H.

◆ ibProcCellsPtr_

labelListList* ibProcCellsPtr_
mutableprivate

List of cells needed by neighbour processors.

Definition at line 167 of file immersedBoundaryFvPatch.H.

◆ ibProcCentresPtr_

FieldField<Field, vector>* ibProcCentresPtr_
mutableprivate

Centres of cells from neighbour processors.

Definition at line 170 of file immersedBoundaryFvPatch.H.

◆ ibProcGammaPtr_

FieldField<Field, scalar>* ibProcGammaPtr_
mutableprivate

Gamma of cells from neighbour processors.

Definition at line 173 of file immersedBoundaryFvPatch.H.

◆ ibCellProcCellsPtr_

List<List<labelPair> >* ibCellProcCellsPtr_
mutableprivate

Cell-proc-cell addressing.

Definition at line 176 of file immersedBoundaryFvPatch.H.

◆ deadCellsPtr_

labelList* deadCellsPtr_
mutableprivate

Dead cells list.

Definition at line 179 of file immersedBoundaryFvPatch.H.

◆ deadCellsExtPtr_

labelList* deadCellsExtPtr_
mutableprivate

Extended dead cells list (dead cells + IB cells)

Definition at line 182 of file immersedBoundaryFvPatch.H.

◆ deadFacesPtr_

labelList* deadFacesPtr_
mutableprivate

Dead faces list.

Definition at line 185 of file immersedBoundaryFvPatch.H.

◆ liveCellsPtr_

labelList* liveCellsPtr_
mutableprivate

List of live cells.

Definition at line 188 of file immersedBoundaryFvPatch.H.

◆ ibCellSizesPtr_

scalarField* ibCellSizesPtr_
mutableprivate

Average IB cell sizes.

Definition at line 191 of file immersedBoundaryFvPatch.H.

◆ invDirichletMatricesPtr_

PtrList<scalarRectangularMatrix>* invDirichletMatricesPtr_
mutableprivate

Inverse interpolation matrices for Dirichlet BC at the IB.

Definition at line 194 of file immersedBoundaryFvPatch.H.

Referenced by immersedBoundaryFvPatch::makeInvDirichletMatrices().

◆ invNeumannMatricesPtr_

PtrList<scalarRectangularMatrix>* invNeumannMatricesPtr_
mutableprivate

Inverse interpolation matrices for Neumann BC at the IB.

Definition at line 197 of file immersedBoundaryFvPatch.H.

◆ ibSfPtr_

vectorField* ibSfPtr_
mutableprivate

IB face area vectors.

Definition at line 200 of file immersedBoundaryFvPatch.H.

◆ ibMagSfPtr_

scalarField* ibMagSfPtr_
mutableprivate

IB face area vector magnitudess.

Definition at line 203 of file immersedBoundaryFvPatch.H.

◆ ibDeltaPtr_

scalarField* ibDeltaPtr_
mutableprivate

IB cell centre distances to IB.

Definition at line 206 of file immersedBoundaryFvPatch.H.

◆ ibSamplingPointDeltaPtr_

scalarField* ibSamplingPointDeltaPtr_
mutableprivate

IB cell centre distances to IB.

Definition at line 209 of file immersedBoundaryFvPatch.H.

◆ triSfPtr_

vectorField* triSfPtr_
mutableprivate

Tri surface face area vectors.

Definition at line 215 of file immersedBoundaryFvPatch.H.

◆ triFacesInMesh_

dynamicLabelList triFacesInMesh_
mutableprivate

Tri surface face labels contained in this mesh.

Definition at line 218 of file immersedBoundaryFvPatch.H.


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