OGS
ChemistryLib::PhreeqcIOData::AqueousSolution Struct Reference

Detailed Description

Definition at line 46 of file AqueousSolution.h.

#include <AqueousSolution.h>

Collaboration diagram for ChemistryLib::PhreeqcIOData::AqueousSolution:
[legend]

Public Member Functions

 AqueousSolution (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
 

Public Attributes

double const temperature
 
double const pressure
 
std::unique_ptr< GlobalVectorpH
 
MeshLib::PropertyVector< double > * pe
 
double const pe0
 
std::vector< Componentcomponents
 
ChargeBalance const charge_balance
 

Constructor & Destructor Documentation

◆ AqueousSolution()

ChemistryLib::PhreeqcIOData::AqueousSolution::AqueousSolution ( double  temperature_,
double  pressure_,
MeshLib::PropertyVector< double > *  pe_,
double const  pe0_,
std::vector< Component > &&  components_,
ChargeBalance  charge_balance_ 
)
inline

Definition at line 48 of file AqueousSolution.h.

52  : temperature(temperature_),
53  pressure(pressure_),
54  pe(pe_),
55  pe0(pe0_),
56  components(std::move(components_)),
57  charge_balance(charge_balance_)
58  {
59  }
MeshLib::PropertyVector< double > * pe

Member Function Documentation

◆ print()

void ChemistryLib::PhreeqcIOData::AqueousSolution::print ( std::ostream &  os,
std::size_t const  chemical_system_id 
) const

Definition at line 23 of file AqueousSolution.cpp.

25 {
26  os << "temp " << temperature << "\n";
27 
28  os << "pressure " << pressure << "\n";
29 
30  switch (charge_balance)
31  {
32  case ChargeBalance::pH:
33  os << "pH " << -std::log10((*pH)[chemical_system_id]) << " charge"
34  << "\n";
35  os << "pe " << (*pe)[chemical_system_id] << "\n";
36  break;
37  case ChargeBalance::pe:
38  os << "pH " << -std::log10((*pH)[chemical_system_id]) << "\n";
39  os << "pe " << (*pe)[chemical_system_id] << " charge"
40  << "\n";
41  break;
43  os << "pH " << -std::log10((*pH)[chemical_system_id]) << "\n";
44  os << "pe " << (*pe)[chemical_system_id] << "\n";
45  break;
46  }
47 
48  os << "units mol/kgw\n";
49 
50  for (auto const& component : components)
51  {
52  os << component.name << " " << (*component.amount)[chemical_system_id];
53  component.chemical_formula.empty()
54  ? os << "\n"
55  : os << " as " << component.chemical_formula << "\n";
56  }
57 
58  os << "\n\n";
59 }
std::unique_ptr< GlobalVector > pH

References charge_balance, components, ChemistryLib::pe, ChemistryLib::pH, pH, pressure, temperature, and ChemistryLib::Unspecified.

Member Data Documentation

◆ charge_balance

ChargeBalance const ChemistryLib::PhreeqcIOData::AqueousSolution::charge_balance

Definition at line 69 of file AqueousSolution.h.

Referenced by print().

◆ components

std::vector<Component> ChemistryLib::PhreeqcIOData::AqueousSolution::components

◆ pe

MeshLib::PropertyVector<double>* ChemistryLib::PhreeqcIOData::AqueousSolution::pe

Definition at line 66 of file AqueousSolution.h.

◆ pe0

double const ChemistryLib::PhreeqcIOData::AqueousSolution::pe0

Definition at line 67 of file AqueousSolution.h.

◆ pH

std::unique_ptr<GlobalVector> ChemistryLib::PhreeqcIOData::AqueousSolution::pH

◆ pressure

double const ChemistryLib::PhreeqcIOData::AqueousSolution::pressure

Definition at line 64 of file AqueousSolution.h.

Referenced by print().

◆ temperature

double const ChemistryLib::PhreeqcIOData::AqueousSolution::temperature

Definition at line 63 of file AqueousSolution.h.

Referenced by print().


The documentation for this struct was generated from the following files: