OGS
ChemicalSystem.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 <memory>
7
#include <variant>
8
#include <vector>
9
10
#include "
AqueousSolution.h
"
11
#include "
EquilibriumReactant.h
"
12
#include "
Exchange.h
"
13
#include "
KineticReactant.h
"
14
#include "
Surface.h
"
15
44
namespace
ChemistryLib
45
{
46
namespace
PhreeqcIOData
47
{
60
struct
ChemicalSystem
61
{
62
ChemicalSystem
(std::unique_ptr<AqueousSolution>&& aqueous_solution_,
63
std::vector<KineticReactant>&& kinetic_reactants_,
64
std::vector<EquilibriumReactant>&& equilibrium_reactants_,
65
std::vector<ExchangeSite>&& exchangers_,
66
std::vector<std::variant<
DensityBasedSurfaceSite
,
67
MoleBasedSurfaceSite
>>&& surface_)
68
:
aqueous_solution
(std::move(aqueous_solution_)),
69
kinetic_reactants
(std::move(kinetic_reactants_)),
70
equilibrium_reactants
(std::move(equilibrium_reactants_)),
71
exchangers
(std::move(exchangers_)),
72
surface
(std::move(surface_))
73
{
74
}
75
76
void
initialize
(std::size_t
const
num_chemical_systems);
77
78
std::unique_ptr<AqueousSolution>
aqueous_solution
;
79
std::vector<KineticReactant>
kinetic_reactants
;
80
std::vector<EquilibriumReactant>
equilibrium_reactants
;
81
std::vector<ExchangeSite>
exchangers
;
82
std::vector<std::variant<DensityBasedSurfaceSite, MoleBasedSurfaceSite>>
83
surface
;
84
};
85
}
// namespace PhreeqcIOData
86
}
// namespace ChemistryLib
Surface.h
EquilibriumReactant.h
Exchange.h
AqueousSolution.h
Per-system aqueous state exchanged with PHREEQC.
KineticReactant.h
ChemistryLib::PhreeqcIOData
Definition
PhreeqcIO.cpp:35
ChemistryLib
Definition
ChemicalSolverInterface.h:108
ChemistryLib::PhreeqcIOData::ChemicalSystem::aqueous_solution
std::unique_ptr< AqueousSolution > aqueous_solution
Definition
ChemicalSystem.h:78
ChemistryLib::PhreeqcIOData::ChemicalSystem::kinetic_reactants
std::vector< KineticReactant > kinetic_reactants
Definition
ChemicalSystem.h:79
ChemistryLib::PhreeqcIOData::ChemicalSystem::ChemicalSystem
ChemicalSystem(std::unique_ptr< AqueousSolution > &&aqueous_solution_, std::vector< KineticReactant > &&kinetic_reactants_, std::vector< EquilibriumReactant > &&equilibrium_reactants_, std::vector< ExchangeSite > &&exchangers_, std::vector< std::variant< DensityBasedSurfaceSite, MoleBasedSurfaceSite > > &&surface_)
Definition
ChemicalSystem.h:62
ChemistryLib::PhreeqcIOData::ChemicalSystem::equilibrium_reactants
std::vector< EquilibriumReactant > equilibrium_reactants
Definition
ChemicalSystem.h:80
ChemistryLib::PhreeqcIOData::ChemicalSystem::exchangers
std::vector< ExchangeSite > exchangers
Definition
ChemicalSystem.h:81
ChemistryLib::PhreeqcIOData::ChemicalSystem::surface
std::vector< std::variant< DensityBasedSurfaceSite, MoleBasedSurfaceSite > > surface
Definition
ChemicalSystem.h:83
ChemistryLib::PhreeqcIOData::ChemicalSystem::initialize
void initialize(std::size_t const num_chemical_systems)
Definition
ChemicalSystem.cpp:14
ChemistryLib::PhreeqcIOData::DensityBasedSurfaceSite
Definition
ChemistryLib/PhreeqcIOData/Surface.h:15
ChemistryLib::PhreeqcIOData::MoleBasedSurfaceSite
Definition
ChemistryLib/PhreeqcIOData/Surface.h:34
ChemistryLib
PhreeqcIOData
ChemicalSystem.h
Generated by
1.14.0