Page MenuHomec4science

kinetic_system_euler_solver.hpp
No OneTemporary

File Metadata

Created
Mon, Sep 9, 07:21

kinetic_system_euler_solver.hpp

#ifndef SPECMICP_SPECMICP_ADIMKINETICS_KINETICSYSTEMEULERSOLVER_HPP
#define SPECMICP_SPECMICP_ADIMKINETICS_KINETICSYSTEMEULERSOLVER_HPP
#include "kinetic_system.hpp"
#include "kinetic_system_solver_structs.hpp"
#include "utils/options_handler.hpp"
namespace specmicp {
namespace kinetics {
class AdimKineticModel;
class AdimKineticSystemEulerSolver: public OptionsHandler<AdimKineticSystemSolverOptions>
{
public:
AdimKineticSystemEulerSolver(
std::shared_ptr<AdimKineticModel> model,
const Vector& total_concentrations,
const Vector& mineral_concentration,
AdimensionalSystemConstraints& constraints,
RawDatabasePtr database
):
m_current_dt(-1),
m_system(model, total_concentrations, mineral_concentration, constraints, database)
{}
AdimKineticSystemEulerSolver(
std::shared_ptr<AdimKineticModel> model,
const Vector& total_concentrations,
const Vector& mineral_concentration,
AdimensionalSystemConstraints& constraints,
const AdimensionalSystemSolution& equilibrium_solution,
RawDatabasePtr database
):
m_current_dt(-1),
m_system(model, total_concentrations, mineral_concentration, constraints, equilibrium_solution, database)
{}
void solve(scalar_t dt, scalar_t total);
scalar_t current_dt() {return m_current_dt;}
AdimKineticVariables& variables() {return m_system.variables();}
private:
scalar_t m_current_dt;
AdimKineticSystem m_system;
};
} // end namespace kinetics
} // end namespace specmicp
#endif //SPECMICP_SPECMICP_ADIMKINETICS_KINETICSYSTEMEULERSOLVER_HPP

Event Timeline