DamBreak++ Wave Simulator 0.3
DamBreak++ Simulation Framework
Loading...
Searching...
No Matches
dbpp::MUSCLReconstr Class Reference

#include <dbpp_MUSCLReconstr.hpp>

Public Member Functions

 MUSCLReconstr ()=default
 MUSCLReconstr (slopeLimiterFunc aFunction, unsigned aOrder)
void setFaceVariableOrder (short aOrder)
void setSlopeLimiter (slopeLimiterFunc aSlopeLimiterFunc)
void setDUOrder (short aDUOrder)
short getDUOrder () const
void setReconstrVariableOrder (short aVarOrder)
short getReconstrVariableOrder () const
void setPhysicalBndCnd ()
template<std::ranges::contiguous_range Range>
std::list< Sfx::cellFaceVariables > reconstr (const dbpp::Omega &aOmega, Range &&aA, Range &&aQ)
void setPhysicalBC (const dbpp::PhysicalBoundaryCnd &aPhysBC)
virtual std::vector< Sfx::cellFaceVariables > reconstr (const Sfx::StateVectorField &aU, const std::shared_ptr< FiniteVolumeDiscretization > &aGblDiscr)

Private Types

using CellId = short
using slopeLimiterFunc = std::function<float64(float64, float64)>
using mapcellfaceVar = std::map<short, std::pair<Sfx::StateVector, Sfx::StateVector>>

Private Attributes

short m_dUOrder {1}
short m_faceVarOrder {2}
PhyBCNdlConstraint m_upstreamBC
PhyBCNdlConstraint m_downstreamBC

Detailed Description

@Brief "Model of" the interpolating process of state variables at the cell interfaces.

Class that model the reconstruction process of the state variables at cell interface.

MUSCL reconstruction U_i+1/2 = U_i + dU_i where dU is the gradient function. We use a limiter function to control variation ... TVD process

USE CASE

MUSCLReconstr w_musclExtrapolation; // Monolitic Upstream System Conservation Law setReconstrVariableOrder(2); Reconstruction of state variables at cell face by using slope limiter and TVD method std::function<float64(float64, float64)> w_minmodFunc = HydroUtils::minmod; setSlopeLimiter(HydroUtils::minmod); // slope limiter gradient setDUOrder(1); // gradient over each cell at 1st order computeDU1stOrder( vectorField, GlobalDiscretization); gradient

Member Typedef Documentation

◆ CellId

using dbpp::MUSCLReconstr::CellId = short
private

◆ mapcellfaceVar

using dbpp::MUSCLReconstr::mapcellfaceVar = std::map<short, std::pair<Sfx::StateVector, Sfx::StateVector>>
private

◆ slopeLimiterFunc

Constructor & Destructor Documentation

◆ MUSCLReconstr() [1/2]

dbpp::MUSCLReconstr::MUSCLReconstr ( )
default

◆ MUSCLReconstr() [2/2]

dbpp::MUSCLReconstr::MUSCLReconstr ( slopeLimiterFunc aFunction,
unsigned aOrder )
inline

Member Function Documentation

◆ getDUOrder()

short dbpp::MUSCLReconstr::getDUOrder ( ) const
inline

◆ getReconstrVariableOrder()

short dbpp::MUSCLReconstr::getReconstrVariableOrder ( ) const
inline

◆ reconstr() [1/2]

template<std::ranges::contiguous_range Range>
std::list< Sfx::cellFaceVariables > dbpp::MUSCLReconstr::reconstr ( const dbpp::Omega & aOmega,
Range && aA,
Range && aQ )
inline

◆ reconstr() [2/2]

virtual std::vector< Sfx::cellFaceVariables > dbpp::MUSCLReconstr::reconstr ( const Sfx::StateVectorField & aU,
const std::shared_ptr< FiniteVolumeDiscretization > & aGblDiscr )
inlinevirtual

◆ setDUOrder()

void dbpp::MUSCLReconstr::setDUOrder ( short aDUOrder)
inline

◆ setFaceVariableOrder()

void dbpp::MUSCLReconstr::setFaceVariableOrder ( short aOrder)
inline

◆ setPhysicalBC()

void dbpp::MUSCLReconstr::setPhysicalBC ( const dbpp::PhysicalBoundaryCnd & aPhysBC)
inline

◆ setPhysicalBndCnd()

void dbpp::MUSCLReconstr::setPhysicalBndCnd ( )
inline

◆ setReconstrVariableOrder()

void dbpp::MUSCLReconstr::setReconstrVariableOrder ( short aVarOrder)
inline

◆ setSlopeLimiter()

void dbpp::MUSCLReconstr::setSlopeLimiter ( slopeLimiterFunc aSlopeLimiterFunc)
inline

Member Data Documentation

◆ m_downstreamBC

PhyBCNdlConstraint dbpp::MUSCLReconstr::m_downstreamBC
private

◆ m_dUOrder

short dbpp::MUSCLReconstr::m_dUOrder {1}
private

default value

◆ m_faceVarOrder

short dbpp::MUSCLReconstr::m_faceVarOrder {2}
private

default value

◆ m_upstreamBC

PhyBCNdlConstraint dbpp::MUSCLReconstr::m_upstreamBC
private

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