#if !defined(EXCHANGE_H_INCLUDED) #define EXCHANGE_H_INCLUDED #define EXTERNAL extern #include "global.h" #include // assert #include // std::map #include // std::string #include // std::list #include "ExchComp.h" #include "cxxMix.h" class cxxExchange : public cxxNumKeyword { public: cxxExchange(); cxxExchange(int n_user); cxxExchange(struct exchange *); cxxExchange(const std::map &exchange_map, cxxMix &mx, int n_user); ~cxxExchange(); struct exchange *cxxExchange2exchange(); struct exch_comp *cxxExchComp2exch_comp(); void dump_raw(std::ostream& s_oss, unsigned int indent)const; void read_raw(CParser& parser); bool get_related_phases(void); bool get_related_rate(void); bool get_pitzer_exchange_gammas() { return this->pitzer_exchange_gammas; } void set_pitzer_exchange_gammas(bool b) { this->pitzer_exchange_gammas = b; } std::list &get_exchComps(void) { return(this->exchComps); } void totalize(); const cxxNameDouble& get_totals()const { return totals; }; #ifdef USE_MPI void mpi_pack(std::vector& ints, std::vector& doubles); void mpi_unpack(int *ints, int *ii, double *doubles, int *dd); #endif private: void add(const cxxExchange &addee, double extensive); // not written void dump_xml(std::ostream& os, unsigned int indent = 0)const; protected: std::list exchComps; bool pitzer_exchange_gammas; cxxNameDouble totals; public: }; #endif // !defined(EXCHANGE_H_INCLUDED)