1 #ifndef LINEAR_ODE_SOLVER_H_
2 #define LINEAR_ODE_SOLVER_H_
31 virtual void update_solution(arma::vec &init_vec, arma::vec &output_vec) = 0;
38 virtual void update_solution(arma::mat &init_vecs, arma::mat &output_vecs,
58 template<
class Method>
69 virtual void update_solution(arma::mat &init_vecs, arma::mat &output_vecs,
75 template<
class Method>
78 ASSERT(0,
"Not implemented yet.");
82 for(
unsigned int j=0; j < init_vecs.n_cols; j++)
88 #endif // LINEAR_ODE_SOLVER_H_
arma::mat system_matrix_
the square matrix of ODE system
virtual ~LinearODESolverBase()
virtual ~LinearODESolver()
arma::vec rhs_
the column vector of RHS values (not used currently)
static Input::Type::AbstractRecord input_type
Template class of the linear ODE solver.
virtual void update_solution(arma::mat &init_vecs, arma::mat &output_vecs, const std::vector< unsigned int > &mask=std::vector< unsigned int >(0)) override
Updates solution of the system with different initial vectors.
void set_step(double step)
Sets the step of the numerical method.
Base class for linear ODE solver.
#define ASSERT_EQUAL(a, b)
bool step_changed_
flag is true if the step has been changed
virtual void update_solution(arma::vec &init_vec, arma::vec &output_vec)=0
Updates solution of the ODEs system.
void set_system_matrix(const arma::mat &matrix)
Sets the matrix of ODE system.
double step_
the step of the numerical method