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

Algorithm based on the Godunov-type Scheme (explicit). We use a two-time steps integrator belongs to Runge-Kutta family and the HLL algorithm for convective flux evaluation. Order is achieved by MUSCL reconstruction procedure to extrapolate state variables at cell face j+1/2 (piecewise-constant state variable on each cell). This algorithm solve at cell-face a Riemann problem (system of conservation law coupled with 2-state tied by a discontinuity define a Riemann Problem). More...

#include <dbpp_RK2HLLScheme.h>

Inheritance diagram for dbpp::Rk2HllScheme:
dbpp::GodunovTypeScheme dbpp::NumericalMethod

Public Member Functions

 Rk2HllScheme ()
 default ctor
 Rk2HllScheme (dbpp::PhysicalSystem *aPhysys)
 ~Rk2HllScheme ()
 destructor
void setSweRhsAlgorithm (SweRhsAlgorithm *aRhsAlgo) override
 Set.
SweRhsAlgorithmgetSweRhsAlgorithm () const override final
 Right-hand-side disretization algorithm in use.
SweRhsAlgorithmgetSweRhsAlgorithm () override final
 Right-hand-side disretization algorithm in use.
void setSourceTerm (dbpp::SrcNumericalTreatment *aSrcTreatment) override final
 Set source term discretization.
void setFaceFluxAlgorithm () override final
 Set numerical flux algorithm.
Uh updatedValues () override final
 update nodal values
Public Member Functions inherited from dbpp::GodunovTypeScheme
 GodunovTypeScheme ()=default
virtual ~GodunovTypeScheme ()=default
 destructor
void mainLoop (const std::shared_ptr< dbpp::FiniteVolumeDiscretization > &aGblDiscr, Sfx::SfxTimePrm &aTime) override final
 update nodal value
virtual dbpp::FluxTensor calculFF (const dbpp::cellFace &aCellFace, const Sfx::StateVector &aUL, const Sfx::StateVector &aUR)
 Compute the numerical flux (solve Riemann problem at each cell face) default implementation is HLL (Harten-Lax-van Leer algorithm)
bool isGodunovType () const override final
 Approximate Riemann solver.
Public Member Functions inherited from dbpp::NumericalMethod
virtual void initialize (const std::shared_ptr< FiniteVolumeDiscretization > &aGlbDiscr)
 Initialization.
virtual void mainLoop (const std::shared_ptr< FiniteVolumeDiscretization > &aGlbDiscr, Sfx::SfxTimePrm &aTime)=0
 Main loop to update all nodal values.
virtual bool isFluxDiffSplitting () const
 Numerical method type.
virtual bool isSemiDiscreteMethod () const
 Numerical method type.
virtual bool isTimeDependent () const
 System time dependency.

Protected Member Functions

void advance (const std::shared_ptr< dbpp::FiniteVolumeDiscretization > &aGblDiscr, const double aDt) override final
 time stepping algorithm
Protected Member Functions inherited from dbpp::GodunovTypeScheme
 GodunovTypeScheme (const GodunovTypeScheme &aOther)=default
 implicit conversion only by subclass
 GodunovTypeScheme (GodunovTypeScheme &&aOther)=default

Private Member Functions

FluxTensorMap computeFaceFlux (const dbpp::Omega &aOmega, const std::vector< float64 > &aVecA, const std::vector< float64 > &aVecQ)
 Compute numerical face flux.
FluxTensorMap computeFaceFlux (const dbpp::Omega &aOmega, std::vector< float64 > &&aVecA, std::vector< float64 > &&aVecQ)
 Compute numerical face flux (move semantic)

Private Attributes

NujicIntegrator m_twoStepsIntegrator
 Physical boundary condition (deprecated)
dbpp::PhysicalSystemm_physys
dbpp::SweRhsAlgorithmm_rhsAlgo

Detailed Description

Algorithm based on the Godunov-type Scheme (explicit). We use a two-time steps integrator belongs to Runge-Kutta family and the HLL algorithm for convective flux evaluation. Order is achieved by MUSCL reconstruction procedure to extrapolate state variables at cell face j+1/2 (piecewise-constant state variable on each cell). This algorithm solve at cell-face a Riemann problem (system of conservation law coupled with 2-state tied by a discontinuity define a Riemann Problem).

Constructor & Destructor Documentation

◆ Rk2HllScheme() [1/2]

dbpp::Rk2HllScheme::Rk2HllScheme ( )

default ctor

◆ Rk2HllScheme() [2/2]

dbpp::Rk2HllScheme::Rk2HllScheme ( dbpp::PhysicalSystem * aPhysys)
Parameters
aPhysys

◆ ~Rk2HllScheme()

dbpp::Rk2HllScheme::~Rk2HllScheme ( )

destructor

Member Function Documentation

◆ advance()

void dbpp::Rk2HllScheme::advance ( const std::shared_ptr< dbpp::FiniteVolumeDiscretization > & aGblDiscr,
const double aDt )
finaloverrideprotectedvirtual

time stepping algorithm

Parameters
aUstate vector (state variables)
aDttime step

Implements dbpp::GodunovTypeScheme.

◆ computeFaceFlux() [1/2]

FluxTensorMap dbpp::Rk2HllScheme::computeFaceFlux ( const dbpp::Omega & aOmega,
const std::vector< float64 > & aVecA,
const std::vector< float64 > & aVecQ )
private

Compute numerical face flux.

Parameters
aOmegacomputational domain
aVecAvector first state variable
aVecQvector second d state variable
Returns
flux tensor

◆ computeFaceFlux() [2/2]

FluxTensorMap dbpp::Rk2HllScheme::computeFaceFlux ( const dbpp::Omega & aOmega,
std::vector< float64 > && aVecA,
std::vector< float64 > && aVecQ )
private

Compute numerical face flux (move semantic)

Parameters
aOmegacomputational domain
aVecAvector first state variable
aVecQvector second d state variable
Returns
flux tensor

◆ getSweRhsAlgorithm() [1/2]

SweRhsAlgorithm * dbpp::Rk2HllScheme::getSweRhsAlgorithm ( ) const
inlinefinaloverridevirtual

Right-hand-side disretization algorithm in use.

Returns
Right-hand-side disretization algorithm

Implements dbpp::NumericalMethod.

◆ getSweRhsAlgorithm() [2/2]

SweRhsAlgorithm * dbpp::Rk2HllScheme::getSweRhsAlgorithm ( )
inlinefinaloverridevirtual

Right-hand-side disretization algorithm in use.

Returns
Right-hand-side disretization

Implements dbpp::NumericalMethod.

◆ setFaceFluxAlgorithm()

void dbpp::Rk2HllScheme::setFaceFluxAlgorithm ( )
inlinefinaloverridevirtual

Set numerical flux algorithm.

Reimplemented from dbpp::GodunovTypeScheme.

◆ setSourceTerm()

void dbpp::Rk2HllScheme::setSourceTerm ( dbpp::SrcNumericalTreatment * aSrcTreatment)
inlinefinaloverridevirtual

Set source term discretization.

Parameters
aSrcTreatment

Reimplemented from dbpp::GodunovTypeScheme.

◆ setSweRhsAlgorithm()

void dbpp::Rk2HllScheme::setSweRhsAlgorithm ( SweRhsAlgorithm * aSweAlgo)
inlineoverridevirtual

Set.

Parameters
aSweAlgoRhs disretization algorithm

Reimplemented from dbpp::NumericalMethod.

◆ updatedValues()

Uh dbpp::Rk2HllScheme::updatedValues ( )
finaloverridevirtual

update nodal values

Returns
nodal values

Implements dbpp::NumericalMethod.

Member Data Documentation

◆ m_physys

dbpp::PhysicalSystem* dbpp::Rk2HllScheme::m_physys
private

◆ m_rhsAlgo

dbpp::SweRhsAlgorithm* dbpp::Rk2HllScheme::m_rhsAlgo
private

◆ m_twoStepsIntegrator

NujicIntegrator dbpp::Rk2HllScheme::m_twoStepsIntegrator
private

Physical boundary condition (deprecated)


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