iphreeqc/cxxKinetics.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

61 lines
1.4 KiB
C++

#if !defined(CXXKINETICS_H_INCLUDED)
#define CXXKINETICS_H_INCLUDED
#include <cassert> // assert
#include <map> // std::map
#include <string> // std::string
#include <list> // std::list
#include <vector> // std::vector
#include "NumKeyword.h"
#include "KineticsComp.h"
class cxxMix;
class cxxKinetics:public cxxNumKeyword
{
public:
cxxKinetics();
cxxKinetics(struct kinetics *);
cxxKinetics(const std::map < int, cxxKinetics > &entity_map, cxxMix & mx,
int n_user);
~cxxKinetics();
struct kinetics *cxxKinetics2kinetics();
struct kinetics_comp *cxxKineticsComp2kinetics_comp();
//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);
bool get_related_phases(void);
bool get_related_rate(void);
#ifdef USE_MPI
void mpi_unpack(int *ints, int *ii, double *doubles, int *dd);
void mpi_pack(std::vector < int >&ints, std::vector < double >&doubles);
#endif
private:
void add(const cxxKinetics & addee, double extensive);
protected:
std::map < std::string, cxxKineticsComp > kineticsComps;
std::vector < double >steps;
cxxNameDouble totals;
double step_divide;
int rk;
int bad_step_max;
bool use_cvode;
int cvode_steps;
int cvode_order;
public:
//static std::map<int, cxxKinetics>& map;
};
#endif // !defined(CXXKINETICS_H_INCLUDED)