OGS
PhreeqcKernelData/KineticReactant.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) OpenGeoSys Community (opengeosys.org)
2// SPDX-License-Identifier: BSD-3-Clause
3
4#pragma once
5
6#include <phreeqcpp/cxxKinetics.h>
7
8#include <string>
9#include <vector>
10
11namespace ChemistryLib
12{
13namespace PhreeqcKernelData
14{
15class KineticReactant final : private cxxKineticsComp
16{
17public:
18 KineticReactant(std::string name, double const initial_amount);
19
20 cxxKineticsComp const* castToBaseClass() const
21 {
22 return static_cast<cxxKineticsComp const*>(this);
23 }
24};
25
26class Kinetics final : private cxxKinetics
27{
28public:
29 explicit Kinetics(std::vector<KineticReactant> const& kinetic_reactants);
30
31 void setChemicalSystemID(std::size_t const chemical_system_id)
32 {
33 Set_n_user_both(chemical_system_id);
34 }
35
36 cxxKinetics const* castToBaseClass() const
37 {
38 return static_cast<cxxKinetics const*>(this);
39 }
40};
41} // namespace PhreeqcKernelData
42} // namespace ChemistryLib
KineticReactant(std::string name, double const initial_amount)
Kinetics(std::vector< KineticReactant > const &kinetic_reactants)
void setChemicalSystemID(std::size_t const chemical_system_id)