18template <MInt nDim, MInt nDist,
class SysEqn>
101 template <MInt nDim_, MInt nDist_,
class SysEqn_>
151 const MBool writeData)
override;
176 template <MInt direction>
237 template <MU
int type>
267 template <MInt direction>
276 template <MBool thermal>
285 template <MInt direction>
309 std::array<MFloat, nDist> wTPtr{};
310 for(
MInt d = 0; d < nDist; d++) {
318 std::array<MFloat, nDist> wCPtr{};
319 for(
MInt d = 0; d < nDist; d++) {
GridCell
Grid cell Property Labels.
void slidingWall(MInt index)
void heatFluxBc(MInt index, MInt bcMode)
LbBndCndDxQy(LbSolver< nDim > *solver)
void writeBoundaryVTK(MFloat **vertices, MInt num, MInt segmentId)
Writes the rim of a boundary as VTP to file.
void recalcRho(MInt index)
std::vector< MInt > ibbBndIds
void refillEmergedCell(const MInt)
void parabolicInflow(MInt index)
void extrapolateVelocities(MInt index, const MInt pCellId, MFloat *l_uu)
void charPressure2(MInt index, MInt direction)
void slipFlow(MInt index)
void charPressure(MInt index, MInt direction)
void refillEmergedCellNormalExtrapolationLinear(const MInt)
void calculateEqDistsTransport(const MInt pCellId, const MFloat l_rho, const MFloat squared_velocity, const MFloat l_uu[nDim], MFloat l_c)
void dnt(MInt index, MInt direction)
void interpolatedBounceBackSingleSpeciesThermal(const MInt cellId, const MFloat *const wTPtr, const MFloat *const uW)
void calculateWallForcesMb(MInt set)
void interpolatedBounceBackSingleSpeciesTransport(const MInt cellId, const MFloat wC, const MFloat *const uW)
void bc20501_init(MInt index)
void calculateSublayerDistances(MInt index)
MFloat firstMomentSourceTerm(const MFloat *const uW, const MFloat rho, const MInt dist)
Momentum source term used in bounce back schemes for moving boundaries.
void interpolatedBounceBackMb_Bouzidi_qua(const MInt cellIndex, const MInt set)
Interpolated bounce back for moving walls using the quadratic BFL scheme.
void getBoundaryVelocity(const MInt index, MFloat *uW)
Reads boundary velocity from properties.
std::vector< std::vector< MFloat > > noMissDistBndWeighted
void getBoundaryVelocityMb(const MInt cellId, MFloat *uW)
Reads boundary velocity from the moving boundary cell collector.
void calculateWallForces(MInt index)
void calculateEqDistsTotalEnergy(const MInt pCellId, const MFloat l_rho, const MFloat squared_velocity, const MFloat l_uu[nDim], const MFloat l_t)
void calculateEqDistsWallSingleSpeciesThermal(const MInt pCellId, MFloat wT)
MFloat getBoundaryTemperature(const MInt index)
Reads boundary temperature from properties.
void interpolatedBounceBackMb_Bouzidi_lin_thermal(const MInt cellIndex, const MInt set)
void calculateWallDistances2D()
void calculateWallInterface(MInt cellId, MFloat *wallConc, MFloat *wallTemp)
void(LbBndCndDxQy< nDim, nDist, SysEqn >::* bounceBackFunctionMb)(const MInt cellIndex, const MInt set)
void extrapolateVariable(const MInt index, const MInt pCellId, const MInt var, MFloat *const p_var)
void interpolatedBounceBackSingleSpecies(const MInt cellId, const MFloat *const uW)
MFloat getDistanceMb(const MInt cellId, const MInt mbCellId, const MInt distId)
LbSolverDxQy< nDim, nDist, SysEqn > * m_solver
void interpolatedBounceBackMb_Yu_qua(const MInt cellIndex, const MInt set)
Interpolated bounce back for moving walls using the quadratic scheme by Yu et al.
MInt ** m_distIntersectionElementId
void interpolatedBounceBackSingleSpeciesTransport(const MInt cellId, const MFloat *const wCPtr, const MFloat *const uW)
MFloat zerothMomentSourceTerm(const MInt pCellId, const MInt dist, const MFloat var, const MFloat *uW)
void interpolatedBounceBackMb_Bouzidi_lin_transport(const MInt cellIndex, const MInt set)
void calculateEqDistsWallSingleSpeciesTransport(const MInt pCellId, MFloat wC)
void extrapolateVelocitiesMb()
void calcCharValuesOnFace(const MInt index, const MInt direction, const MInt bndCellId, MFloat &rho_b, MFloat *u_b)
void bc40072_40082_init(MInt index)
void interpolatedBounceBackSingleSpeciesThermalFlux(const MInt cellId, const MFloat qT, MInt bcIndex)
void calculateEqDistsWallSingleSpecies(const MInt pCellId)
void incrementForces(const MInt cellId, const MInt j, const MFloat *uW, MFloat *forces)
void charVelocity(MInt index, MInt direction)
void interpolatedBounceBackMb_Bouzidi_lin(const MInt cellIndex, const MInt set)
Interpolated bounce back for moving walls using the linear BFL scheme.
MInt m_bounceBackFunctionMbCase
void outflowLinear(MInt index)
MFloat ** allOwnersGetBoundaryVertices(MInt segmentId, MInt *num)
Obtain all boundary vertices for a given segmentId.
void interpolatedAntiBounceBackMb_Bouzidi_qua(const MInt cellIndex, const MInt set)
void calculateWallDistances()
calculates the intersection point between the boundary wall and the trajectories of the distribution ...
MFloat m_zeroInflowVelocity
void addWallDistanceFieldToOutputFile(ParallelIo ¶llelIo, const MBool writeHeader, const MBool writeData) override
void refillEmergedCellNormalExtrapolationQuadratic(const MInt)
constexpr SysEqn sysEqn() const
typename LbBndCnd< nDim >::Cell Cell
virtual ~LbBndCndDxQy()
Destructor for the nDim/nDist specific boundary condition.
void calcCharValues(const MInt index, const MInt bndCellId, MFloat &rho_b, MFloat *u_b)
void writeBCOutput(MInt index)
void bcIBBNeumannInit(MInt index)
std::vector< MInt > noMissDistBnd
struct LbBndCndDxQy::@17 m_mucosaModel
void interpolatedBounceBackSingleSpeciesThermal(const MInt cellId, const MFloat wT, const MFloat *const uW)
MInt m_noReactivatedCells
MInt * m_inOutSegmentsIds
std::vector< MInt > m_localReCutCells
MInt m_noPeriodicSegments
MPrimitiveVariables< nDim > * PV
std::vector< MInt > m_BCWallMBNeighbors
std::vector< LbGridBoundaryCell< nDim > > m_bndCells
MInt * m_mapBndCndIdSegId
MString * m_BCOutputFileName
std::vector< MInt > m_bndCndIds
MInt m_localReCutInterval
MFloat * m_lbWallVelocity
MFloat ** m_initialVelocityVecs
std::vector< std::vector< MInt > > m_BCneighbors
std::vector< MInt > m_bndCndSegIds
MInt * m_segIdHeatedWalls
MbCellCollector m_boundaryCellsMb
MFloat m_localReCutDiameter
MInt m_calcWallForcesInterval
MBool m_outputWallDistanceField
MFloat m_omega
physical non-dimensional reference length
std::vector< MInt > m_mapSegIdsInOutCnd
MInt m_densityFluctuations
MFloat m_localReCutAdpPerc
MInt * m_segIdMovingWalls
std::ofstream * m_BCResidualStream
std::vector< MInt > m_bndCndOffsets
MInt m_solverId
index of the array where the boundary conditions are stored in
MInt ** m_allDomainsHaveBC
MFloat m_pulsatileFrequency
MFloat * m_lbWallTemperature
MInt * m_periodicSegmentsIds
std::map< MInt, MInt > m_boundaryCellMappingMb
MString m_interpolationDistMethod
MInt m_localReCutReportInterval
This class represents all LB models.
MFloat & distance(const MInt id, const MInt did)
Accessor for distances.
PARALLELIO_DEFAULT_BACKEND ParallelIo
MFloat dist(const Point< DIM > &p, const Point< DIM > &q)
LB lattice descriptor for arrays depending on D and Q.
static constexpr MInt distFld(MInt i)