OGS
PhreeqcIOData/AqueousSolution.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
39#pragma once
40
41#include <iosfwd>
42#include <memory>
43#include <string>
44#include <vector>
45
47#include "Output.h"
48
49namespace MeshLib
50{
51template <typename PROP_VAL_TYPE>
52class PropertyVector;
53}
54
55namespace ChemistryLib
56{
57enum class ChargeBalance;
58
59namespace PhreeqcIOData
60{
62{
63 explicit Component(std::string name_, std::string chemical_formula_)
64 : name(std::move(name_)), chemical_formula(std::move(chemical_formula_))
65 {
66 }
67
68 std::string const name;
69 std::string const chemical_formula;
70 std::unique_ptr<GlobalVector> amount;
72};
73
75{
76 AqueousSolution(bool const fixing_pe_, double temperature_,
77 double pressure_, MeshLib::PropertyVector<double>* pe_,
78 double const pe0_, std::vector<Component>&& components_,
79 ChargeBalance charge_balance_)
80 : fixing_pe(fixing_pe_),
81 temperature(temperature_),
82 pressure(pressure_),
83 pe(pe_),
84 pe0(pe0_),
85 components(std::move(components_)),
86 charge_balance(charge_balance_)
87 {
88 }
89
90 void print(std::ostream& os, std::size_t const chemical_system_id) const;
91
94 bool const fixing_pe;
95 double const temperature;
96 double const pressure;
97 std::unique_ptr<GlobalVector> pH;
99 double const pe0;
100 std::vector<Component> components;
102};
103} // namespace PhreeqcIOData
104} // namespace ChemistryLib
ItemType
Category used to interpret a PHREEQC output column.
AqueousSolution(bool const fixing_pe_, double temperature_, double pressure_, MeshLib::PropertyVector< double > *pe_, double const pe0_, std::vector< Component > &&components_, ChargeBalance charge_balance_)
void print(std::ostream &os, std::size_t const chemical_system_id) const
Component(std::string name_, std::string chemical_formula_)