Flow123d  jenkins-Flow123d-linux-release-multijob-198
Public Member Functions | Static Public Attributes | Protected Attributes | List of all members
LinearODESolverBase Class Referenceabstract

Base class for linear ODE solver. More...

#include <linear_ode_solver.hh>

Inheritance diagram for LinearODESolverBase:
Inheritance graph
[legend]
Collaboration diagram for LinearODESolverBase:
Collaboration graph
[legend]

Public Member Functions

 LinearODESolverBase ()
 
virtual ~LinearODESolverBase ()
 
void set_system_matrix (const arma::mat &matrix)
 Sets the matrix of ODE system. More...
 
void set_step (double step)
 Sets the step of the numerical method. More...
 
virtual void update_solution (arma::vec &init_vec, arma::vec &output_vec)=0
 Updates solution of the ODEs system. More...
 
virtual void update_solution (arma::mat &init_vecs, arma::mat &output_vecs, const std::vector< unsigned int > &mask=std::vector< unsigned int >(0))=0
 Updates solution of the system with different initial vectors. More...
 

Static Public Attributes

static Input::Type::AbstractRecord input_type = AbstractRecord("LinearODESolver", "Solver of a linear system of ODEs.")
 

Protected Attributes

arma::mat system_matrix_
 the square matrix of ODE system More...
 
arma::vec rhs_
 the column vector of RHS values (not used currently) More...
 
double step_
 the step of the numerical method More...
 
bool step_changed_
 flag is true if the step has been changed More...
 

Detailed Description

Base class for linear ODE solver.

This class represents an interface to a solver of a system of linear ordinary differential equations with constant coefficients.

Definition at line 12 of file linear_ode_solver.hh.

Constructor & Destructor Documentation

LinearODESolverBase::LinearODESolverBase ( )

Definition at line 12 of file linear_ode_solver.cc.

LinearODESolverBase::~LinearODESolverBase ( )
virtual

Definition at line 17 of file linear_ode_solver.cc.

Member Function Documentation

void LinearODESolverBase::set_step ( double  step)

Sets the step of the numerical method.

Definition at line 27 of file linear_ode_solver.cc.

Here is the caller graph for this function:

void LinearODESolverBase::set_system_matrix ( const arma::mat &  matrix)

Sets the matrix of ODE system.

Definition at line 21 of file linear_ode_solver.cc.

Here is the caller graph for this function:

virtual void LinearODESolverBase::update_solution ( arma::vec &  init_vec,
arma::vec &  output_vec 
)
pure virtual

Updates solution of the ODEs system.

Parameters
init_vecis the column initial vector
output_vecis the column output vector containing the result

Implemented in LinearODEAnalytic, and PadeApproximant.

Here is the caller graph for this function:

virtual void LinearODESolverBase::update_solution ( arma::mat &  init_vecs,
arma::mat &  output_vecs,
const std::vector< unsigned int > &  mask = std::vector< unsigned int >(0) 
)
pure virtual

Updates solution of the system with different initial vectors.

Column initial init_vecs and output output_vecs vectors are grouped in the matrices. Parameter mask can be used to skip some of the vectors.

Implemented in LinearODESolver< Method >, LinearODESolver< PadeApproximant >, and LinearODESolver< LinearODEAnalytic >.

Member Data Documentation

AbstractRecord LinearODESolverBase::input_type = AbstractRecord("LinearODESolver", "Solver of a linear system of ODEs.")
static

Abstract record for the linear ODE solver.

Definition at line 18 of file linear_ode_solver.hh.

arma::vec LinearODESolverBase::rhs_
protected

the column vector of RHS values (not used currently)

Definition at line 43 of file linear_ode_solver.hh.

double LinearODESolverBase::step_
protected

the step of the numerical method

Definition at line 44 of file linear_ode_solver.hh.

bool LinearODESolverBase::step_changed_
protected

flag is true if the step has been changed

Definition at line 45 of file linear_ode_solver.hh.

arma::mat LinearODESolverBase::system_matrix_
protected

the square matrix of ODE system

Definition at line 42 of file linear_ode_solver.hh.


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