iphreeqc/SolutionIsotope.h
David L Parkhurst 91f650a5e9 Merged ErrorHandling 6119-6268 changes.
All reactant structs have been removed.
Tony's pressure uses mu in pressure term of log_k.
Test cases run, discriminant check at 1e-8.

Still want to optimize out some k_temp calls and checks for same T, P, mu.

git-svn-id: svn://136.177.114.72/svn_GW/phreeqc3/trunk@6269 1feff8c3-07ed-0310-ac33-dd36852eb9cd
2012-03-06 23:42:49 +00:00

82 lines
2.4 KiB
C++

#if !defined(SOLUTIONISOTOPE_H_INCLUDED)
#define SOLUTIONISOTOPE_H_INCLUDED
#include <ostream> // std::ostream
#include <string> // std::string
#include <list> // std::list
#include "Parser.h"
class cxxSolutionIsotope: public PHRQ_base
{
public:
cxxSolutionIsotope(PHRQ_io *io=NULL);
cxxSolutionIsotope(struct isotope *isotope_ptr, PHRQ_io *io=NULL);
virtual ~cxxSolutionIsotope(void);
void dump_xml(std::ostream & os, unsigned int indent) const;
void dump_raw(std::ostream & os, unsigned int indent) const;
//CParser::STATUS_TYPE read_raw(CParser & parser, std::istream::pos_type next_char);
void read_raw(CParser & parser, bool check);
LDBLE Get_isotope_number() const
{
return this->isotope_number;
}
void Set_isotope_number(LDBLE d)
{
this->isotope_number = d;
}
const std::string &Get_elt_name() const {return this->elt_name;}
void Set_elt_name(const char *cstring)
{
if (cstring != NULL)
this->elt_name = std::string(cstring);
else
this->elt_name.clear();
}
const std::string &Get_isotope_name() const {return this->isotope_name;}
void Set_isotope_name(const char *cstring)
{
if (cstring != NULL)
this->isotope_name = std::string(cstring);
else
this->isotope_name.clear();
}
LDBLE Get_total() const {return this->total;}
void Set_total(LDBLE d) {this->total = d;}
LDBLE Get_ratio() const {return this->ratio;}
void Set_ratio(LDBLE t) {this->ratio = t;}
LDBLE Get_ratio_uncertainty() const {return this->ratio_uncertainty;}
void Set_ratio_uncertainty(LDBLE t) {this->ratio_uncertainty = t;}
LDBLE Get_x_ratio_uncertainty() const {return this->x_ratio_uncertainty;}
void Set_x_ratio_uncertainty(LDBLE t) {this->x_ratio_uncertainty = t;}
bool Get_ratio_uncertainty_defined() const {return this->ratio_uncertainty_defined;}
void Set_ratio_uncertainty_defined(bool tf) {this->ratio_uncertainty_defined = tf;}
LDBLE Get_coef() const {return this->coef;}
void Set_coef(LDBLE t) {this->coef = t;}
bool operator<(const cxxSolutionIsotope & conc) const;
void add(const cxxSolutionIsotope & isotope_ptr, LDBLE intensive,
LDBLE extensive);
void multiply(LDBLE extensive);
protected:
LDBLE isotope_number;
std::string elt_name;
std::string isotope_name;
LDBLE total;
LDBLE ratio;
LDBLE ratio_uncertainty;
bool ratio_uncertainty_defined;
LDBLE x_ratio_uncertainty;
LDBLE coef; /* coefficient of element in phase */
};
#endif // SOLUTIONISOTOPE_H_INCLUDED