iphreeqc/ISolution.h
David L Parkhurst 7830f46d8d Merged 1727 through 2055 from orchestra/phreeqcpp_for_orch into phreeeqcpp trunk
git-svn-id: svn://136.177.114.72/svn_GW/phreeqcpp/trunk@2057 1feff8c3-07ed-0310-ac33-dd36852eb9cd
2007-05-30 23:43:59 +00:00

69 lines
2.2 KiB
C++

#if !defined(ISOLUTION_H_INCLUDED)
#define ISOLUTION_H_INCLUDED
//#include "Parser.h"
#include "ISolutionComp.h"
#include "NumKeyword.h"
#include "Solution.h"
//#include "Isotope.h"
#include <cassert> // assert
#include <map> // std::map
#include <string> // std::string
#include <list> // std::list
#include <vector> // std::vector
#include <set> // std::set
#include <iostream>
#include <sstream>
#include <fstream>
class cxxISolution : public cxxSolution
{
public:
cxxISolution();
cxxISolution(struct solution *);
//cxxISolution(const cxxISolution&);
~cxxISolution();
//static cxxISolution& read(CParser& parser);
//void add(cxxISolutionComp conc) { this->concs.push_back(conc); }
struct solution *cxxISolution2solution();
double get_density()const {return this->density;}
void set_density(double density) {this->density = density;}
std::string get_units()const {return units;}
void set_units(std::string units) {units = units;}
//char * get_redox()const {return this->pe[this->default_pe].get_name();}
//void dump_xml(std::ostream& os, unsigned int indent = 0)const;
void ConvertUnits();
void ORCH_write_chemistry(std::ostringstream &chemistry_dat);
void ORCH_write_input(std::ostringstream &input_dat);
void ORCH_write_output(std::ostringstream &input_dat);
void print();
protected:
friend class cxxISolutionComp; // for this->pe access
double density;
std::string units;
std::map<char *, cxxISolutionComp, CHARSTAR_LESS> comps;
struct pe_data *pes;
int default_pe;
public:
//static std::map<int, cxxISolution>& map;
private:
void ORCH_write_chemistry_water(std::ostringstream &chemistry_dat);
void ORCH_write_chemistry_primary(std::ostringstream &chemistry_dat);
void ORCH_write_chemistry_total_O_H(std::ostringstream &chemistry_dat);
void ORCH_write_chemistry_alkalinity(std::ostringstream &chemistry_dat);
void ORCH_write_chemistry_species(std::ostringstream &chemistry_dat);
void ORCH_write_chemistry_minerals(std::ostringstream &chemistry_dat);
};
#endif // !defined(ISOLUTION_H_INCLUDED)