diff --git a/src/database/data_container.cpp b/src/database/data_container.cpp new file mode 100644 index 0000000..6e4b0c9 --- /dev/null +++ b/src/database/data_container.cpp @@ -0,0 +1,40 @@ +/*------------------------------------------------------- + + - Module : database + - File : data_container.cpp + - Author : Fabien Georget + + Copyright (c) 2014, Fabien Georget, Princeton University + +---------------------------------------------------------*/ + + +#include "data_container.hpp" + +namespace specmicp { +namespace database { + +//! \brief Return the molar mass (kg/mol) of a mineral +double DataContainer::molar_mass_mineral(int m) { + return 1e-3*nu_mineral.row(m).dot(molar_mass_basis); +} +//! \brief Return the molar mass (kg/mol) of a mineral governed by kinetic +double DataContainer::molar_mass_mineral_kinetic(int m) { + return 1e-3*nu_mineral_kinetic.row(m).dot(molar_mass_basis); +} + +//! \brief Return the molar volume (m^3/mol) of a mineral +double DataContainer::molar_volume_mineral(int m) +{ + if (_molar_volume_mineral(m) < 0) {throw db_noninitialized_value("molar volume", labels_minerals[m]);} + return 1e-6*_molar_volume_mineral(m); +} +//! \brief Return the molar volume (m^3/mol) of a mineral governed by kinetic +double DataContainer::molar_volume_mineral_kinetic(int m) +{ + if (_molar_volume_mineral_kinetic(m) < 0) {throw db_noninitialized_value("molar volume", labels_minerals_kinetic[m]);} + return 1e-6*_molar_volume_mineral_kinetic(m); +} + +} // end namespace database +} // end namespace specmicp