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

Base class ODE Solver (under construction). More...

#include <dbpp_ODESolver1D.h>

Public Member Functions

 ODESolver1D ()
 default ctor
 ODESolver1D (DamBreakProblem aDbProb)
 Dam Break type (to solve)
 ODESolver1D (Sfx::LDeltaOperator *aLdeltaOp)
 Solve Dam Break problem.
void solve (const std::shared_ptr< dbpp::FiniteVolumeDiscretization > &aFVdiscr, float64 aTime)
 solve ODE (Ordinary Differential Equation)
void solve (const Sfx::StateVectorField &aUfield, float64 aTime)
 Solve ODE system.
pairvarray getSolution () const
 Solution vector.
void registerPhysicalSystem (PhysicalSystem *aPhysys) noexcept
 Set reference to physical system.
PhysicalSystemgetPhysicalSystem () const noexcept
 Getter.

Private Types

using pairvarray = std::pair<std::valarray<float64>, std::valarray<float64>>
 Alias pair of numerical array.

Private Attributes

DamBreakProblem m_dbProb
NujicIntegrator m_integrator
PhysicalSystemm_physSys
Sfx::LDeltaOperatorm_LdeltaOp

Detailed Description

Base class ODE Solver (under construction).

ODE solved in this simulation U_t = L_delta(U) (1) where L_delta is the spatial discretization operator. Semi-discrete equation (Method of Line MOL). Spatial and time discretization are done separately.

Time-Stepping is a two-steps integrator that belongs to Runge-Kutta family.

Member Typedef Documentation

◆ pairvarray

using dbpp::ODESolver1D::pairvarray = std::pair<std::valarray<float64>, std::valarray<float64>>
private

Alias pair of numerical array.

Constructor & Destructor Documentation

◆ ODESolver1D() [1/3]

dbpp::ODESolver1D::ODESolver1D ( )
inline

default ctor

◆ ODESolver1D() [2/3]

dbpp::ODESolver1D::ODESolver1D ( DamBreakProblem aDbProb)
inline

Dam Break type (to solve)

Parameters
aDbProbDam Break problem

◆ ODESolver1D() [3/3]

dbpp::ODESolver1D::ODESolver1D ( Sfx::LDeltaOperator * aLdeltaOp)
inline

Solve Dam Break problem.

Parameters
aLdeltaOpRHS discretization operator

Member Function Documentation

◆ getPhysicalSystem()

PhysicalSystem * dbpp::ODESolver1D::getPhysicalSystem ( ) const
inlinenoexcept

Getter.

Returns
physical system

◆ getSolution()

pairvarray dbpp::ODESolver1D::getSolution ( ) const
inline

Solution vector.

Returns
pair of array for each component

◆ registerPhysicalSystem()

void dbpp::ODESolver1D::registerPhysicalSystem ( PhysicalSystem * aPhysys)
inlinenoexcept

Set reference to physical system.

Parameters
aPhysysPhysical systemm to attach

◆ solve() [1/2]

void dbpp::ODESolver1D::solve ( const Sfx::StateVectorField & aUfield,
float64 aTime )

Solve ODE system.

Parameters
aUfieldstate variables field vector
aTimesimulation time

◆ solve() [2/2]

void dbpp::ODESolver1D::solve ( const std::shared_ptr< dbpp::FiniteVolumeDiscretization > & aFVdiscr,
float64 aTime )

solve ODE (Ordinary Differential Equation)

Parameters
aFVdiscrfinite volume discretization
aTimesimulation time

Member Data Documentation

◆ m_dbProb

DamBreakProblem dbpp::ODESolver1D::m_dbProb
private

◆ m_integrator

NujicIntegrator dbpp::ODESolver1D::m_integrator
private

numerical integrator

◆ m_LdeltaOp

Sfx::LDeltaOperator* dbpp::ODESolver1D::m_LdeltaOp
private

Rhs discr operator

◆ m_physSys

PhysicalSystem* dbpp::ODESolver1D::m_physSys
private

physical system


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