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.
SweRhsAlgorithm * getSweRhsAlgorithm () const override final
 getter
SweRhsAlgorithm * getSweRhsAlgorithm () override final
 getter
bool isSemiDiscreteMethod () const override final
 validate method
bool isTimeDependent () const override final
 validate time dependency
ODESolver1D * getODESolver1D () 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

ODESolver1D * m_odeSolver1D
Sfx::LDeltaOperator m_ldeltaOp
SweRhsAlgorithm * m_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: