Page MenuHomec4science

kinetic_system_solver.hpp
No OneTemporary

File Metadata

Created
Thu, Jul 11, 12:14

kinetic_system_solver.hpp

#ifndef SPECMICP_SPECMICP_KINETICS_KINETICSYSTEMSOLVER_HPP
#define SPECMICP_SPECMICP_KINETICS_KINETICSYSTEMSOLVER_HPP
#include "kinetic_system.hpp"
#include "kinetic_system_solver_structs.hpp"
#include "utils/options_handler.hpp"
namespace specmicp {
namespace kinetics {
class KineticModel;
class KineticSystemSolver: public OptionsHandler<KineticSystemSolverOptions>
{
public:
KineticSystemSolver(
std::shared_ptr<KineticModel> model,
const Vector& total_concentrations,
const Vector& mineral_moles,
RawDatabasePtr data
):
m_current_dt(-1),
m_system(model, total_concentrations, mineral_moles, data)
{}
KineticSystemSolver(
std::shared_ptr<KineticModel> model,
const Vector& total_concentrations,
const Vector& mineral_moles,
const EquilibriumState& equilibrium_solution
):
m_current_dt(-1),
m_system(model, total_concentrations, mineral_moles, equilibrium_solution)
{}
void solve(scalar_t dt, scalar_t total);
scalar_t current_dt() {return m_current_dt;}
KineticVariables& variables() {return m_system.variables();}
private:
scalar_t m_current_dt;
KineticSystem m_system;
};
} // end namespace kinetics
} // end namespace specmicp
#endif //SPECMICP_SPECMICP_KINETICS_KINETICSYSTEMSOLVER_HPP

Event Timeline