Page MenuHomec4science

chemistry.hpp
No OneTemporary

File Metadata

Created
Tue, Sep 3, 03:56

chemistry.hpp

#ifndef SPECMICP_REACTMICP_EQUILIBRIUMCURVE_CHEMISTRY_HPP
#define SPECMICP_REACTMICP_EQUILIBRIUMCURVE_CHEMISTRY_HPP
#include "specmicp/adimensional/equilibrium_curve.hpp"
#include "physics/units.hpp"
namespace specmicp {
namespace reactmicp {
//! \namespace eqcurve Equilibrium approach to reactive transport
namespace eqcurve {
class EquilibriumCurveSpeciation:
public EquilibriumCurve,
public units::UnitBaseClass
{
public:
EquilibriumCurveSpeciation(
RawDatabasePtr thedatabase,
AdimensionalSystemConstraints constraints,
index_t id_component,
AdimensionalSystemSolverOptions options
):
EquilibriumCurve(thedatabase, constraints),
UnitBaseClass(options.units_set),
m_data(thedatabase),
m_idc(id_component)
{
solver_options() = options;
}
void output();
void update_problem();
Matrix get_equilibrium_curve(scalar_t end_total_concentration, scalar_t delta);
Vector get_perturbation();
void error_handling(std::string msg) const;
private:
RawDatabasePtr m_data;
index_t m_idc;
Matrix m_eqcurve;
index_t m_cnt;
scalar_t m_delta;
};
} // end namespace eqcurve
} // end namespace reactmicp
} // end namespace specmicp
#endif // SPECMICP_REACTMICP_EQUILIBRIUMCURVE_CHEMISTRY_HPP

Event Timeline