Page MenuHomec4science

eqcurve_coupler.hpp
No OneTemporary

File Metadata

Created
Fri, Sep 13, 05:58

eqcurve_coupler.hpp

#ifndef SPECMICP_REACTMICP_EQCURVECOUPLER_HPP
#define SPECMICP_REACTMICP_EQCURVECOUPLER_HPP
#include "eqcurve_extractor.hpp"
#include "dfpm/meshes/mesh1dfwd.hpp"
#include "dfpm/1dtransport/diffusion.hpp"
#include "dfpmsolver/parabolic_driver.hpp"
namespace specmicp {
namespace dfpm {
class SaturatedDiffusion1DParameters;
} // end namespace dfpm
namespace reactmicp {
namespace eqcurve {
class EquilibriumCurveCoupler
{
public:
EquilibriumCurveCoupler(Matrix& eq_curve,
mesh::Mesh1DPtr the_mesh,
dfpmsolver::ParabolicDriverOptions options
);
void run_step(scalar_t timestep);
Vector& solid_concentrations() {return m_solid_concentrations;}
Vector& aqueous_concentrations() {return m_aqueous_concentrations;}
void chemistry_step();
private:
EquilibriumCurveExtractor m_eqcurve;
mesh::Mesh1DPtr m_mesh;
std::shared_ptr<dfpm::SaturatedDiffusion1DParameters> m_param;
Vector m_aqueous_concentrations;
Vector m_solid_concentrations;
dfpm::SaturatedDiffusion1D m_transport_program;
dfpmsolver::ParabolicDriver<dfpm::SaturatedDiffusion1D> m_transport_solver;
};
} // end namespace eqcurve
} // end namespace reactmicp
} // end namespace specmicp
#endif // SPECMICP_REACTMICP_EQCURVECOUPLER_HPP

Event Timeline