26 using namespace
Input::Type;
29 return Record(
"LinearODEAnalytic",
"Evaluate analytic solution of the system of ODEs.")
35 Input::register_class< LinearODEAnalytic, Input::Record >(
"LinearODEAnalytic") +
64 double exponential, temp;
91 time_constraint = 1 / time_constraint;
arma::mat system_matrix_
the square matrix of ODE system
arma::mat solution_matrix_
The solution is computed only by a matrix multiplication (standard fundamental matrix).
This class implements the analytic solution of a system of linear ODEs with constant matrix...
static const Input::Type::Record & get_input_type()
bool evaluate_time_constraint(double &time_constraint) override
Estimate upper bound for time step. Return true if constraint was set.
bool system_matrix_changed_
Indicates that the system_matrix_ was recently updated.
static Input::Type::Abstract & get_input_type()
void update_solution(arma::vec &init_vector, arma::vec &output_vec) override
Updates solution of the ODEs system.
#define START_TIMER(tag)
Starts a timer with specified tag.
static const int registrar
Registrar of class to factory.
bool step_changed_
flag is true if the step has been changed
~LinearODEAnalytic(void)
Destructor.
double step_
the step of the numerical method
LinearODEAnalytic()
Default constructor is possible because the input record is not needed.
#define FLOW123D_FORCE_LINK_IN_CHILD(x)