Page MenuHomec4science

canonicalizer.hpp
No OneTemporary

File Metadata

Created
Fri, Nov 15, 08:00

canonicalizer.hpp

/*-------------------------------------------------------
- Module : database
- File : canonicalizer
- Author : Fabien Georget
Copyright (c) 2014, Fabien Georget, Princeton University
---------------------------------------------------------*/
#ifndef SPECMICP_DATABASE_CANONICALIZER
#define SPECMICP_DATABASE_CANONICALIZER
//! \file canonicalizer.hpp Transform a database into canonical form
#include "module.hpp"
namespace specmicp {
namespace database {
//! \brief Transform a database into canonical form
//!
//! Canonical form means that every secondary species are written as function of the components
//!
//! P.S : what a great name
class DatabaseCanonicalizer: public DatabaseModule
{
public:
DatabaseCanonicalizer(RawDatabasePtr thedata):
DatabaseModule(thedata)
{}
//! \brief Transform the database into canonical form
//!
//! This process is necessary before any computation
void make_canonical();
private:
//! \brief transform the aqueous system into a canonical form
void make_aqueous_canonical();
//! \brief transform the mineral system into a canonical form
void make_mineral_canonical();
//! \brief transform the mineral (governed by kineticS) system into a canonical form
void make_mineral_kinetic_canonical();
//! \brief transform the gas system into a canonical form
void make_gas_canonical();
};
//! Set the database to canonical form
inline void canonicalize_database(DatabaseCanonicalizer::RawDatabasePtr data)
{
DatabaseCanonicalizer(data).make_canonical();
}
} // end namespace database
} // end namespace specmicp
#endif // SPECMICP_DATABASE_CANONICALIZER

Event Timeline