Reaktoro 
A unified framework for modeling chemically reactive systems
AqueousChemicalModelDebyeHuckel.hpp
1 // Reaktoro is a unified framework for modeling chemically reactive systems.
2 //
3 // Copyright (C) 2014-2015 Allan Leal
4 //
5 // This program is free software: you can redistribute it and/or modify
6 // it under the terms of the GNU General Public License as published by
7 // the Free Software Foundation, either version 3 of the License, or
8 // (at your option) any later version.
9 //
10 // This program is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU General Public License for more details.
14 //
15 // You should have received a copy of the GNU General Public License
16 // along with this program. If not, see <http://www.gnu.org/licenses/>.
17 
18 #pragma once
19 
20 // C++ includes
21 #include <map>
22 #include <memory>
23 
24 // Reaktoro includes
25 #include <Reaktoro/Thermodynamics/Models/PhaseChemicalModel.hpp>
26 
27 namespace Reaktoro {
28 
29 // Forward declarations
30 class AqueousMixture;
31 class DebyeHuckelParams;
32 
38 auto aqueousChemicalModelDebyeHuckel(const AqueousMixture& mixture, const DebyeHuckelParams& params) -> PhaseChemicalModel;
39 
114 {
115 public:
118 
121  auto aiondefault(double value) -> void;
122 
124  auto aiondefault() const -> double;
125 
129  auto aion(std::string name, double value) -> void;
130 
133  auto aion(const std::map<std::string, double>& pairs) -> void;
134 
140  auto aion(double value) -> void;
141 
144  auto aion(std::string name) const -> double;
145 
148  auto biondefault(double value) -> void;
149 
151  auto biondefault() const -> double;
152 
156  auto bion(std::string name, double value) -> void;
157 
160  auto bion(const std::map<std::string, double>& pairs) -> void;
161 
167  auto bion(double value) -> void;
168 
171  auto bion(std::string name) const -> double;
172 
175  auto bneutraldefault(double value) -> void;
176 
178  auto bneutraldefault() const -> double;
179 
183  auto bneutral(std::string name, double value) -> void;
184 
187  auto bneutral(const std::map<std::string, double>& pairs) -> void;
188 
194  auto bneutral(double value) -> void;
195 
201  auto bneutral(std::string name) const -> double;
202 
215  auto setLimitingLaw() -> void;
216 
248  auto setKielland1937() -> void;
249 
295  auto setWATEQ4F() -> void;
296 
356  auto setPHREEQC() -> void;
357 
358 private:
359  struct Impl;
360 
361  std::shared_ptr<Impl> pimpl;
362 };
363 
364 } // namespace Reaktoro
auto setPHREEQC() -> void
Set the Debye–Hückel parameters å and b of the species according to PHREEQC v3. ...
Definition: AqueousChemicalModelDebyeHuckel.cpp:361
auto aion(std::string name, double value) -> void
Set the ion-size parameter value of a given ionic species (in units of Å).
Definition: AqueousChemicalModelDebyeHuckel.cpp:252
A class used to define the parameters in the Debye–Hückel activity model for aqueous mixtures...
Definition: AqueousChemicalModelDebyeHuckel.hpp:113
DebyeHuckelParams()
Construct a default DebyeHuckelParams instance.
Definition: AqueousChemicalModelDebyeHuckel.cpp:236
auto bneutral(std::string name, double value) -> void
Set the value of the b parameter of a given neutral species.
Definition: AqueousChemicalModelDebyeHuckel.cpp:320
auto setLimitingLaw() -> void
Set the Debye–Hückel limiting law model for the ionic species.
Definition: AqueousChemicalModelDebyeHuckel.cpp:344
auto setWATEQ4F() -> void
Set the Debye–Hückel parameters å and b of the ionic species according to WATEQ4F ...
Definition: AqueousChemicalModelDebyeHuckel.cpp:355
auto biondefault() const -> double
Return the default Debye–Hückel parameter b to be used for ionic species lacking such data...
Definition: AqueousChemicalModelDebyeHuckel.cpp:281
auto bion(std::string name, double value) -> void
Set the value of the Debye–Hückel parameter b of a given ionic species.
Definition: AqueousChemicalModelDebyeHuckel.cpp:286
std::function< PhaseChemicalModelResult(double, double, const Vector &)> PhaseChemicalModel
The signature of the chemical model function that calculates the chemical properties of a phase...
Definition: PhaseChemicalModel.hpp:70
auto bneutraldefault() const -> double
Return the default value of the b parameter to be used neutral species lacking such data...
Definition: AqueousChemicalModelDebyeHuckel.cpp:315
auto aqueousChemicalModelDebyeHuckel(const AqueousMixture &mixture, const DebyeHuckelParams &params) -> PhaseChemicalModel
Return an equation of state for an aqueous phase based on the Debye–Hückel activity model...
Definition: AqueousChemicalModelDebyeHuckel.cpp:36
auto setKielland1937() -> void
Set the ion-size parameters å according to the values given in Kielland (1937).
Definition: AqueousChemicalModelDebyeHuckel.cpp:350
auto aiondefault() const -> double
Return the default ion-size parameter value to be used for ionic species lacking such data...
Definition: AqueousChemicalModelDebyeHuckel.cpp:247
The namespace containing all components of the Reaktoro library.
Definition: ChemicalScalar.hpp:24