Page MenuHomec4science

data_container.hpp
No OneTemporary

File Metadata

Created
Sat, Aug 3, 14:33

data_container.hpp

/*-------------------------------------------------------
- Module : database
- File : data_container.hpp
- Author : Fabien Georget
Copyright (c) 2014, Fabien Georget, Princeton University
---------------------------------------------------------*/
#ifndef SPECMICP_DATABASE_DATACONTAINER_HPP
#define SPECMICP_DATABASE_DATACONTAINER_HPP
//! \file data_container.hpp Storage class for thermodynamics database
#include "common_def.hpp"
#include <map>
namespace specmicp {
namespace database {
//! \brief Storage class - Contains the database
//!
//! - Should not be accessed directly but through interfaces
//! Correct interfaces are subclasses of DatabaseModule
//! - Should be shared with a smart pointer
struct DataContainer
{
DataContainer():
is_canonical(false)
{}
int nb_component; //!< Number of components == size of the basis
int nb_aqueous; //!< Number of aqueous species (not taking into acount the basis)
int nb_mineral; //!< Number of minerals (used in computation)
int nb_mineral_kinetic; //!< Number of minerals (governed by kinetics)
vector_labels_t labels_basis; //!< labels of the components
std::map<std::string, int> map_labels_basis; //!< map labels <-> id
vector_labels_t labels_aqueous; //!< labels of the aqueous species
vector_labels_t labels_minerals; //!< labels of the minerals
vector_labels_t labels_minerals_kinetic; //!< labels of the minerals (governed by kinetics)
molar_mass_vector_t molar_mass_basis; //!< molar mass of the basis
reaction_mat_t nu_aqueous; //!< Stoechiometric coefficient for aqueous species
logK_vector_t logk_aqueous; //!< LogK for aqueous species
reaction_mat_t nu_mineral; //!< Stoichiometric coefficient for minerals
logK_vector_t logk_mineral; //!< LogK for minerals
reaction_mat_t nu_mineral_kinetic; //!< Stoichiometric coefficient for minerals (governed by kinetics)
logK_vector_t logk_mineral_kinetic; //!< LogK for minerals (governed by kinetics)
Eigen::Matrix<double, Eigen::Dynamic, 3> param_aq; //!< Aqueous parameters
bool is_canonical;
};
} // end namespace database
} // end namespace specmicp
#endif // SPECMICP_DATABASE_DATACONTAINER_HPP

Event Timeline