iphreeqc/PPassemblageComp.h
David L Parkhurst 2b76f04a8b Cleaned up header files to remove unnecessary includes of .h files. Moved includes to source code where possible.
Moved some methods for .h to source files to avoid need for includes.

Debug and Release compile. 

Still need to get class version working. 

git-svn-id: svn://136.177.114.72/svn_GW/phreeqcpp/trunk@3868 1feff8c3-07ed-0310-ac33-dd36852eb9cd
2009-12-07 19:49:38 +00:00

83 lines
1.7 KiB
C++

#if !defined(PPASSEMBLAGECOMP_H_INCLUDED)
#define PPASSEMBLAGECOMP_H_INCLUDED
#include <cassert> // assert
#include <map> // std::map
#include <string> // std::string
#include <list> // std::list
#include <vector> // std::vector
#include "NameDouble.h"
class cxxPPassemblageComp
{
public:
cxxPPassemblageComp();
cxxPPassemblageComp(struct pure_phase *);
~cxxPPassemblageComp();
static struct pure_phase *cxxPPassemblageComp2pure_phase(std::map < std::string, cxxPPassemblageComp > &el);
void dump_xml(std::ostream & os, unsigned int indent = 0) const;
void dump_raw(std::ostream & s_oss, unsigned int indent) const;
void read_raw(CParser & parser, bool check = true);
const std::string &get_name() const
{
return this->name;
}
void set_name(char * s)
{
if(s != NULL)
this->name = std::string(s);
else
this->name.clear();
}
const std::string &get_add_formula() const
{
return this->add_formula;
}
void set_add_formula(char * s)
{
if(s != NULL)
this->add_formula = std::string(s);
else
this->add_formula.clear();
}
struct phase *get_phase();
void totalize();
const cxxNameDouble & get_totals() const
{
return (this->totals);
};
void add(const cxxPPassemblageComp & comp, double extensive);
void multiply(double extensive);
#ifdef USE_MPI
void mpi_pack(std::vector < int >&ints, std::vector < double >&doubles);
void mpi_unpack(int *ints, int *ii, double *doubles, int *dd);
#endif
protected:
std::string name;
std::string add_formula;
double si;
double moles;
double delta;
double initial_moles;
bool force_equality;
bool dissolve_only;
bool precipitate_only;
cxxNameDouble totals;
public:
};
#endif // !defined(PPASSEMBLAGECOMP_H_INCLUDED)