iphreeqc/SurfaceComp.h
David L Parkhurst d4721e493e Wrote rebalance_load for MPI_Bcast
However, now need 4 configurations for IPhreeqc Debug/Release USE_MPI.



git-svn-id: svn://136.177.114.72/svn_GW/phreeqc3/trunk@7036 1feff8c3-07ed-0310-ac33-dd36852eb9cd
2012-10-26 00:39:14 +00:00

74 lines
2.5 KiB
C++

#if !defined(SURFACECOMP_H_INCLUDED)
#define SURFACECOMP_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 cxxSurfaceComp: public PHRQ_base
{
public:
cxxSurfaceComp(PHRQ_io *io=NULL);
virtual ~cxxSurfaceComp();
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);
void add(const cxxSurfaceComp & comp, LDBLE extensive);
void multiply(LDBLE extensive);
const std::string &Get_formula() const {return this->formula;}
void Set_formula(const char * f) {this->formula = f ? f : "";}
LDBLE Get_formula_z(void) const {return formula_z;};
void Set_formula_z(LDBLE t) {this->formula_z = t;}
LDBLE Get_moles(void) const {return moles;}
void Set_moles(LDBLE t) {this->moles = t;}
cxxNameDouble & Get_totals() {return (this->totals);}
void Set_totals(cxxNameDouble & nd) {this->totals = nd;}
LDBLE Get_la(void) const {return la;};
void Set_la(LDBLE t) {this->la = t;}
LDBLE Get_charge_balance() const {return this->charge_balance;}
void Set_charge_balance(LDBLE d) {this->charge_balance = d;}
const std::string &Get_charge_name() const {return this->charge_name;}
void Set_charge_name(const char * f) {this->charge_name = f ? f : "";}
const std::string &Get_phase_name() const {return this->phase_name;}
void Set_phase_name(const char * f) {this->phase_name = f ? f : "";}
LDBLE Get_phase_proportion(void) const {return phase_proportion;}
void Set_phase_proportion(LDBLE d) {this->phase_proportion = d;}
const std::string &Get_rate_name() const {return this->rate_name;}
void Set_rate_name(const char * f) {this->rate_name = f ? f : "";}
LDBLE Get_Dw(void) const {return Dw;}
void Set_Dw(LDBLE d) {this->Dw = d;}
const std::string &Get_master_element() const {return this->master_element;}
void Set_master_element(const char * f) {this->master_element = f ? f : "";}
#ifdef USE_MPI_SKIP
void mpi_pack(std::vector < int >&ints, std::vector < LDBLE >&doubles);
void mpi_unpack(int *ints, int *ii, LDBLE *doubles, int *dd);
#endif
protected:
std::string formula;
LDBLE formula_z;
LDBLE moles;
cxxNameDouble totals;
LDBLE la;
std::string charge_name;
LDBLE charge_balance;
std::string phase_name;
LDBLE phase_proportion;
std::string rate_name;
LDBLE Dw;
std::string master_element;
const static std::vector < std::string > vopts;
public:
};
#endif // !defined(SURFACECOMP_H_INCLUDED)