Go to the documentation of this file.
43 #ifndef immersedBoundaryFvPatch_H
44 #define immersedBoundaryFvPatch_H
50 #include "dynamicLabelList.H"
339 TypeName(immersedBoundaryPolyPatch::typeName_());
surfaceScalarField * sGammaPtr_
Fluid faces indicator, marking faces between live cells.
FieldField< Field, scalar > * ibProcGammaPtr_
Gamma of cells from neighbour processors.
boolList * ibFaceFlipsPtr_
List of IB face flip:
static const debug::optimisationSwitch maxCellCellRows_
Maximum number of rows in cell-cell search.
const triSurfaceMesh & ibMesh() const
Return immersed boundary surface mesh.
volScalarField * gammaExtPtr_
Fluid cells indicator, marking live and IB cells.
const scalarField & ibSamplingPointDelta() const
Return distance to IB.
scalarField * ibDeltaPtr_
IB cell centre distances to IB.
vectorField * ibSamplingPointsPtr_
Sampling points for IB cells.
dynamicLabelList triFacesInMesh_
Tri surface face labels contained in this mesh.
const vectorField & ibSf() const
Return IB face area vectors.
void addIbCornerCells() const
Add corner points to IB cells list.
scalarField * ibCellSizesPtr_
Average IB cell sizes.
void makeDeadFaces() const
Make list of dead faces.
void makeGamma() const
Make fluid cells indicator, marking only live fluid cells.
const scalarField & ibCellSizes() const
Return immersed boundary cell sizes.
bool movingIb() const
Is the immersed boundary patch moving?
TypeName(immersedBoundaryPolyPatch::typeName_())
Runtime type information.
A class for managing temporary objects.
const labelList & hitFaces() const
Return list of triangles in IB mesh nearest.
const List< List< labelPair > > & ibCellProcCells() const
Return neighbour cell addressing.
scalarListList * ibSamplingProcWeightsPtr_
Interpolation weights for sampling processor weights.
const FieldField< Field, scalar > & ibProcGamma() const
Return neighbour proc gamma.
labelList * ibFacesPtr_
List of faces for which one neighbour is an IB cell.
const fvMesh & mesh_
Finite volume mesh reference.
void makeIbSf() const
Make face area vectors and magnitudes.
const vectorField & triSf() const
Return triangular surface face area vectors.
void makeIbSamplingWeights() const
Make sampling point weights.
const labelList & liveCells() const
Return live cells.
const scalarListList & cellsToTriWeights() const
Interpolation weights from IB points to tri faces.
labelList * ibFaceCellsPtr_
List of IB cell index for each ibFace.
const PtrList< scalarRectangularMatrix > & invNeumannMatrices() const
Get inverse Neumann interpolation matrix.
void clearOut()
Clear all demand-driven data.
virtual void movePoints()
Correct patches after moving points.
PtrList< scalarRectangularMatrix > * invDirichletMatricesPtr_
Inverse interpolation matrices for Dirichlet BC at the IB.
const vectorField & ibSamplingPoints() const
Return IB sampling points.
const labelList & ibFaceCells() const
Return list of IB cell index for each ibFace.
const surfaceScalarField & sGamma() const
Get fluid faces indicator, marking faces between live cells.
void makeDeadCells() const
Make list of dead cells.
IOoject and searching on triSurface.
labelListList * ibCellCellsPtr_
Neighbour cells for immersed boundary cells.
const labelList & deadCells() const
Return dead cells.
volScalarField * gammaPtr_
Fluid cells indicator, marking only live fluid cells.
FieldField< Field, vector > * ibProcCentresPtr_
Centres of cells from neighbour processors.
labelList * deadCellsPtr_
Dead cells list.
labelListList * ibProcCellsPtr_
List of cells needed by neighbour processors.
label findNearestCell(const point &location) const
Find nearest cell.
const volScalarField & gamma() const
Get fluid cells indicator, marking only live fluid cells.
void makeDeadCellsExt() const
Make extended list of dead cells.
bool internalFlow() const
Return true if solving for flow inside the immersed boundary.
const dynamicLabelList & triFacesInMesh() const
Return labels of triangular faces which are inside the mesh.
labelList * ibInternalFacesPtr_
List of internal faces in the region bounded by IB faces.
const labelList & ibFaces() const
Return list of faces for which one neighbour is an IB cell.
int optimisationSwitch(const char *name, const int defaultValue=0)
Lookup optimisation switch or add default value.
scalar cellProjection(label cellID, const vector &dir) const
Calc cell projection area.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
void makeSGamma() const
Make fluid faces indicator.
Pre-declare SubField and related Field type.
const labelList & ibCells() const
Return list of fluid cells next to immersed boundary (IB cells)
labelList * ibInsideFacesPtr_
List of fluid faces for which one neighbour is an IB cell.
Immersed boundary FV patch.
immersedBoundaryFvPatch(const polyPatch &patch, const fvBoundaryMesh &bm)
Construct from polyPatch.
virtual void initMovePoints()
Initialise the patches for moving points.
A patch is a list of labels that address the faces in the global face list.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
List< List< labelPair > > * ibCellProcCellsPtr_
Cell-proc-cell addressing.
scalarField * ibSamplingPointDeltaPtr_
IB cell centre distances to IB.
void makeGammaExt() const
Make extended fluid cells indicator, marking live and IB cells.
const scalarListList & ibSamplingProcWeights() const
Processor interpolation weights for sampling points.
void makeTriSf() const
Make triangular surface face area vectors.
const scalarField & ibDelta() const
Return distance to IB.
A templated 1D list of pointers to objects of type <T>, where the size of the array is known and used...
static const debug::tolerancesSwitch distFactor_
Sampling point distance factor.
const vectorField & triCf() const
Return triangular surface face centres.
label ibUpdateTimeIndex_
Time index for last update of mesh or moving boundary.
const scalarField & ibMagSf() const
Return IB face area vector magnitudes.
void makeInvDirichletMatrices() const
Make inverse Dirichlet interpolation matrices.
Mesh data needed to do the Finite Volume discretisation.
scalarField * ibMagSfPtr_
IB face area vector magnitudess.
vectorField * ibSfPtr_
IB face area vectors.
vectorField * ibPointsPtr_
Points at the immersed boundary (IB points)
void makeIbPointsAndNormals() const
Make immersed boundary points and normals.
const volScalarField & gammaExt() const
Get extended flud cells indicator, including live and IB cells.
void makeIbCellCells() const
Make extended IB cells stencils.
const labelList & ibInternalFaces() const
Return list of internal faces in the region bounded by IB faces.
void makeInvNeumannMatrices() const
Make inverse Neumann interpolation matrices.
const boolList & ibFaceFlips() const
Return list of IB face flip:
void makeIbInternalFaces() const
Make internal IB faces.
labelListList * cellsToTriAddrPtr_
Interpolation addressing from IB points to tri faces.
vectorField * ibNormalsPtr_
Normals at IB points.
const labelListList & ibCellCells() const
Return IB cell extended stencil.
const triSurfaceMesh & ibMesh() const
Return immersed boundary surface mesh.
vectorField * triSfPtr_
Tri surface face area vectors.
const volScalarField & psi
scalarListList * ibSamplingWeightsPtr_
Interpolation weights for sampling weights.
const immersedBoundaryPolyPatch & ibPolyPatch_
Reference to processor patch.
const vectorField & ibNormals() const
Return IB normals.
labelList * deadCellsExtPtr_
Extended dead cells list (dead cells + IB cells)
static const debug::tolerancesSwitch angleFactor_
Fitting angle rejection factor (deg)
labelList * ibCellsPtr_
List of fluid cells next to immersed boundary (IB cells)
tmp< Field< Type > > toIbPoints(const Field< Type > &triValues) const
Collect ibPoint values: from tri face fields onto intersection.
bool movingIb() const
Return true if immersed boundary is moving.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
const labelList & deadFaces() const
Return dead faces.
const scalarListList & ibSamplingWeights() const
Interpolation weights for sampling points.
void makeIbCells() const
Make list of cells next to immersed boundary.
static const debug::tolerancesSwitch radiusFactor_
Fitting radius factor.
const labelList & deadCellsExt() const
Return extended dead cells.
PtrList< scalarRectangularMatrix > * invNeumannMatricesPtr_
Inverse interpolation matrices for Neumann BC at the IB.
bool internalFlow() const
void makeIbFaces() const
Make IB faces.
const immersedBoundaryPolyPatch & ibPolyPatch() const
Return reference to immersed boundary polyPatch.
const labelList & ibInsideFaces() const
Return list of fluid faces for which one neighbour is an.
const polyPatch & patch() const
Return the polyPatch.
labelList * hitFacesPtr_
List of faces (triangles) which are part of IB mesh.
void makeIbInsideFaces() const
Make inside IB faces.
void makeLiveCells() const
Make list of live cells.
labelList * deadFacesPtr_
Dead faces list.
const vectorField & ibPoints() const
Return IB points.
void findCellCells(const vector &pt, const label cellID, labelList &cellCells) const
Return extended cell-cell addressing.
const labelListList & cellsToTriAddr() const
Interpolation addressing from IB points to tri faces.
tmp< Field< Type > > toSamplingPoints(const Field< Type > &cellValues) const
Interpolation functions to sampling points from mesh cell centres.
scalar cellSize(label cellID) const
Calc cell size.
void makeIbDelta() const
Make distance between IB cell centres.
const labelListList & ibProcCells() const
Return neighbour proc cells.
void makeIbCellSizes() const
Make immersed boundary cell sizes.
const tmp< Field< Type > > renumberField(const Field< Type > &f) const
Renumber Field to corespond to triangular faces contained.
Generic GeometricField class.
tmp< FieldField< Field, Type > > sendAndReceive(const Field< Type > &psi) const
Send and receive.
void makeIbSamplingPointDelta() const
Make distance between IB cell centres.
void makeTriAddressing() const
Make tri addressing.
scalarListList * cellsToTriWeightsPtr_
Interpolation weights from IB points to tri faces.
labelList * liveCellsPtr_
List of live cells.
tmp< Field< Type > > toTriFaces(const Field< Type > &ibValues) const
triFace values: collect data from IB fields onto intersection
virtual ~immersedBoundaryFvPatch()
Destructor.
const FieldField< Field, vector > & ibProcCentres() const
Return neighbour proc centres.
const PtrList< scalarRectangularMatrix > & invDirichletMatrices() const
Get inverse Dirichlet interpolation matrix.