numerical-collection-cpp 0.10.0
A collection of algorithms in numerical analysis implemented in C++
Loading...
Searching...
No Matches
num_collect::ode::solver_base< Derived, Formula > Class Template Reference

Base class of solvers of ODEs. More...

#include <num_collect/ode/solver_base.h>

+ Inheritance diagram for num_collect::ode::solver_base< Derived, Formula >:
+ Collaboration diagram for num_collect::ode::solver_base< Derived, Formula >:

Public Types

using formula_type = Formula
 Type of formula.
 
using problem_type = typename formula_type::problem_type
 Type of problem.
 
using scalar_type = typename problem_type::scalar_type
 Type of scalars.
 
using variable_type = typename problem_type::variable_type
 Type of variables.
 

Public Member Functions

 solver_base (const problem_type &problem)
 Constructor.
 
auto formula () -> formula_type &
 Get the formula.
 
auto formula () const -> const formula_type &
 Get the formula.
 
void init (scalar_type time, const variable_type &variable)
 Initialize.
 
auto problem () -> problem_type &
 Get the problem.
 
auto problem () const -> const problem_type &
 Get the problem.
 
void solve_till (scalar_type end_time)
 Compute the variable at the given time.
 
void step ()
 Compute the variable of the next step.
 
auto step_size () const -> scalar_type
 Get the step size.
 
auto step_size (scalar_type val) -> Derived &
 Set the step size.
 
auto steps () const -> index_type
 Get the number of steps.
 
auto time () const -> scalar_type
 Get the current time.
 
auto variable () const -> const variable_type &
 Get the current variable.
 
- Public Member Functions inherited from num_collect::logging::logging_mixin
 logging_mixin (log_tag_view tag)
 Constructor.
 
template<typename Child>
void configure_child_algorithm_logger_if_exists (Child &child)
 Configure a logger of a child algorithm if exists.
 
auto logger () const noexcept -> const num_collect::logging::logger &
 Access to the logger.
 
auto logger () noexcept -> num_collect::logging::logger &
 Access to the logger.
 
- Public Member Functions inherited from num_collect::logging::iterations::iteration_logger_mixin< Derived >
 iteration_logger_mixin ()=default
 Constructor.
 
void configure_iteration_logger (num_collect::logging::iterations::iteration_logger< Derived > &iteration_logger) const
 Configure an iteration logger.
 
auto initialize_iteration_logger () -> num_collect::logging::iterations::iteration_logger< Derived > &
 Get the iteration logger.
 

Static Public Attributes

static constexpr index_type order = formula_type::order
 Order of the formula.
 
static constexpr index_type stages = formula_type::stages
 Number of stages of the formula.
 

Protected Member Functions

auto derived () const noexcept -> const Derived &
 Access derived object.
 
auto derived () noexcept -> Derived &
 Access derived object.
 

Private Attributes

formula_type formula_
 Formula.
 

Detailed Description

template<typename Derived, concepts::formula Formula>
class num_collect::ode::solver_base< Derived, Formula >

Base class of solvers of ODEs.

Template Parameters
DerivedType of derived class.
FormulaType of formula.

Definition at line 36 of file solver_base.h.

Member Typedef Documentation

◆ formula_type

template<typename Derived, concepts::formula Formula>
using num_collect::ode::solver_base< Derived, Formula >::formula_type = Formula

Type of formula.

Definition at line 41 of file solver_base.h.

◆ problem_type

template<typename Derived, concepts::formula Formula>
using num_collect::ode::solver_base< Derived, Formula >::problem_type = typename formula_type::problem_type

Type of problem.

Definition at line 44 of file solver_base.h.

◆ scalar_type

template<typename Derived, concepts::formula Formula>
using num_collect::ode::solver_base< Derived, Formula >::scalar_type = typename problem_type::scalar_type

Type of scalars.

Definition at line 50 of file solver_base.h.

◆ variable_type

template<typename Derived, concepts::formula Formula>
using num_collect::ode::solver_base< Derived, Formula >::variable_type = typename problem_type::variable_type

Type of variables.

Definition at line 47 of file solver_base.h.

Constructor & Destructor Documentation

◆ solver_base()

template<typename Derived, concepts::formula Formula>
num_collect::ode::solver_base< Derived, Formula >::solver_base ( const problem_type & problem)
inlineexplicit

Constructor.

Parameters
[in]problemProblem.

Definition at line 63 of file solver_base.h.

Member Function Documentation

◆ derived() [1/2]

template<typename Derived, concepts::formula Formula>
auto num_collect::ode::solver_base< Derived, Formula >::derived ( ) const -> const Derived&
inlinenodiscardprotectednoexcept

Access derived object.

Returns
Reference to the derived object.

Definition at line 203 of file solver_base.h.

◆ derived() [2/2]

template<typename Derived, concepts::formula Formula>
auto num_collect::ode::solver_base< Derived, Formula >::derived ( ) -> Derived&
inlinenodiscardprotectednoexcept

Access derived object.

Returns
Reference to the derived object.

Definition at line 194 of file solver_base.h.

◆ formula() [1/2]

template<typename Derived, concepts::formula Formula>
auto num_collect::ode::solver_base< Derived, Formula >::formula ( ) -> formula_type&
inlinenodiscard

Get the formula.

Returns
Formula.

Definition at line 119 of file solver_base.h.

◆ formula() [2/2]

template<typename Derived, concepts::formula Formula>
auto num_collect::ode::solver_base< Derived, Formula >::formula ( ) const -> const formula_type&
inlinenodiscard

Get the formula.

Returns
Formula.

Definition at line 126 of file solver_base.h.

◆ init()

template<typename Derived, concepts::formula Formula>
void num_collect::ode::solver_base< Derived, Formula >::init ( scalar_type time,
const variable_type & variable )
inline

Initialize.

Parameters
[in]timeInitial time.
[in]variableInitial variable.

Definition at line 75 of file solver_base.h.

◆ problem() [1/2]

template<typename Derived, concepts::formula Formula>
auto num_collect::ode::solver_base< Derived, Formula >::problem ( ) -> problem_type&
inlinenodiscard

Get the problem.

Returns
Problem.

Definition at line 135 of file solver_base.h.

◆ problem() [2/2]

template<typename Derived, concepts::formula Formula>
auto num_collect::ode::solver_base< Derived, Formula >::problem ( ) const -> const problem_type&
inlinenodiscard

Get the problem.

Returns
Problem.

Definition at line 142 of file solver_base.h.

◆ solve_till()

template<typename Derived, concepts::formula Formula>
void num_collect::ode::solver_base< Derived, Formula >::solve_till ( scalar_type end_time)
inline

Compute the variable at the given time.

Warning
init function is assumed to have been called before call to solve_till function.
Parameters
[in]end_timeTime to compute the variable at.

Definition at line 95 of file solver_base.h.

◆ step()

template<typename Derived, concepts::formula Formula>
void num_collect::ode::solver_base< Derived, Formula >::step ( )
inline

Compute the variable of the next step.

Warning
init function is assumed to have been called before call to step function.

Definition at line 85 of file solver_base.h.

◆ step_size() [1/2]

template<typename Derived, concepts::formula Formula>
auto num_collect::ode::solver_base< Derived, Formula >::step_size ( ) const -> scalar_type
inlinenodiscard

Get the step size.

Returns
Step size.

Definition at line 167 of file solver_base.h.

◆ step_size() [2/2]

template<typename Derived, concepts::formula Formula>
auto num_collect::ode::solver_base< Derived, Formula >::step_size ( scalar_type val) -> Derived&
inline

Set the step size.

Parameters
[in]valValue.
Returns
This object.

Definition at line 184 of file solver_base.h.

◆ steps()

template<typename Derived, concepts::formula Formula>
auto num_collect::ode::solver_base< Derived, Formula >::steps ( ) const -> index_type
inlinenodiscard

Get the number of steps.

Returns
Number of steps.

Definition at line 176 of file solver_base.h.

◆ time()

template<typename Derived, concepts::formula Formula>
auto num_collect::ode::solver_base< Derived, Formula >::time ( ) const -> scalar_type
inlinenodiscard

Get the current time.

Returns
Current time.

Definition at line 151 of file solver_base.h.

◆ variable()

template<typename Derived, concepts::formula Formula>
auto num_collect::ode::solver_base< Derived, Formula >::variable ( ) const -> const variable_type&
inlinenodiscard

Get the current variable.

Returns
Current variable.

Definition at line 158 of file solver_base.h.

Member Data Documentation

◆ formula_

template<typename Derived, concepts::formula Formula>
formula_type num_collect::ode::solver_base< Derived, Formula >::formula_
private

Formula.

Definition at line 209 of file solver_base.h.

◆ order

template<typename Derived, concepts::formula Formula>
index_type num_collect::ode::solver_base< Derived, Formula >::order = formula_type::order
staticconstexpr

Order of the formula.

Definition at line 56 of file solver_base.h.

◆ stages

template<typename Derived, concepts::formula Formula>
index_type num_collect::ode::solver_base< Derived, Formula >::stages = formula_type::stages
staticconstexpr

Number of stages of the formula.

Definition at line 53 of file solver_base.h.


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