DamBreak++ Wave Simulator 0.3
DamBreak++ Simulation Framework
Loading...
Searching...
No Matches
dbpp::SemiDiscreteMethod Class Referencefinal

MOL (Method-of-lines) spatial and time discretization done separetly. Model of the following equation (ODE) U_t = L_delta(U;t);
where L_delta (spatial operator) contains derivative of some variable and describe the evolution of this variable (time evolution). ODE: Ordinary Differential Equation. More...

#include <dbpp_SemiDiscreteMethod.h>

Inheritance diagram for dbpp::SemiDiscreteMethod:
dbpp::NumericalMethod

Public Member Functions

 SemiDiscreteMethod ()
 Default ctor.
 SemiDiscreteMethod (SweRhsAlgorithm *aRhsAlgo)
 ~SemiDiscreteMethod ()
 Dtor.
void setSweRhsAlgorithm (SweRhsAlgorithm *aRhsAlgo) override final
 Set the RHS algorithm discretization.
SweRhsAlgorithmgetSweRhsAlgorithm () const override final
 getter
SweRhsAlgorithmgetSweRhsAlgorithm () override final
 getter
bool isSemiDiscreteMethod () const override final
 validate method
bool isTimeDependent () const override final
 validate time dependency
ODESolver1DgetODESolver1D () const
 getter
void mainLoop (const std::shared_ptr< dbpp::FiniteVolumeDiscretization > &aGlbDiscr, Sfx::SfxTimePrm &aTime) override final
 update nodal value
Uh updatedValues () override final
 Updating FiniteVolumeDiscretization global nodal values (Uh)
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 isGodunovType () const
 Numerical method type.
virtual bool isFluxDiffSplitting () const
 Numerical method type.

Private Member Functions

float64 timeStepUpdate (std::vector< float64 > &&aVecA, std::vector< float64 > &&aVecQ)
 compute simulation time step

Private Attributes

ODESolver1Dm_odeSolver1D
Sfx::LDeltaOperator m_ldeltaOp
SweRhsAlgorithmm_rhsAlgo

Detailed Description

MOL (Method-of-lines) spatial and time discretization done separetly. Model of the following equation (ODE) U_t = L_delta(U;t);
where L_delta (spatial operator) contains derivative of some variable and describe the evolution of this variable (time evolution). ODE: Ordinary Differential Equation.

Constructor & Destructor Documentation

◆ SemiDiscreteMethod() [1/2]

dbpp::SemiDiscreteMethod::SemiDiscreteMethod ( )

Default ctor.

◆ SemiDiscreteMethod() [2/2]

dbpp::SemiDiscreteMethod::SemiDiscreteMethod ( SweRhsAlgorithm * aRhsAlgo)
Parameters
aRhsAlgo

◆ ~SemiDiscreteMethod()

dbpp::SemiDiscreteMethod::~SemiDiscreteMethod ( )

Dtor.

Member Function Documentation

◆ getODESolver1D()

ODESolver1D * dbpp::SemiDiscreteMethod::getODESolver1D ( ) const
inline

getter

Returns
solver1D

◆ getSweRhsAlgorithm() [1/2]

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

getter

Returns
rhs algorithm

Implements dbpp::NumericalMethod.

◆ getSweRhsAlgorithm() [2/2]

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

getter

Returns
rhs algorithm

Implements dbpp::NumericalMethod.

◆ isSemiDiscreteMethod()

bool dbpp::SemiDiscreteMethod::isSemiDiscreteMethod ( ) const
inlinefinaloverridevirtual

validate method

Returns
true/false

Reimplemented from dbpp::NumericalMethod.

◆ isTimeDependent()

bool dbpp::SemiDiscreteMethod::isTimeDependent ( ) const
inlinefinaloverridevirtual

validate time dependency

Returns
true/false

Reimplemented from dbpp::NumericalMethod.

◆ mainLoop()

void dbpp::SemiDiscreteMethod::mainLoop ( const std::shared_ptr< dbpp::FiniteVolumeDiscretization > & aGlbDiscr,
Sfx::SfxTimePrm & aTime )
finaloverride

update nodal value

Parameters
aGlbDiscrfinite olume discretization
aTimesimulation logical time

◆ setSweRhsAlgorithm()

void dbpp::SemiDiscreteMethod::setSweRhsAlgorithm ( SweRhsAlgorithm * aRhsAlgo)
inlinefinaloverridevirtual

Set the RHS algorithm discretization.

Parameters
aRhsAlgorhs algorithm
Deprecated
not sure of the intent

Reimplemented from dbpp::NumericalMethod.

◆ timeStepUpdate()

float64 dbpp::SemiDiscreteMethod::timeStepUpdate ( std::vector< float64 > && aVecA,
std::vector< float64 > && aVecQ )
private

compute simulation time step

Parameters
aVecAvector of values (state variable A)
aVecQvector of values (state variable A)
Returns
time step

◆ updatedValues()

Uh dbpp::SemiDiscreteMethod::updatedValues ( )
inlinefinaloverridevirtual

Updating FiniteVolumeDiscretization global nodal values (Uh)

Returns
Nodal values updated

Implements dbpp::NumericalMethod.

Member Data Documentation

◆ m_ldeltaOp

Sfx::LDeltaOperator dbpp::SemiDiscreteMethod::m_ldeltaOp
private

RHS discretization operator

◆ m_odeSolver1D

ODESolver1D* dbpp::SemiDiscreteMethod::m_odeSolver1D
private

ODE solver

◆ m_rhsAlgo

SweRhsAlgorithm* dbpp::SemiDiscreteMethod::m_rhsAlgo
private

Swe right-hand side discr.


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