H2 Combustion
combustionprocess.h
00001 #ifndef zh2_combustionprocess
00002 #define zh2_combustionprocess
00003 
00004 #include "integrable.h"
00005 
00006 #include <vector>
00007 #include <unordered_map>
00008 
00009 namespace h2comb {
00010 
00011 class Reaction;
00012 class Compound;
00013 class Substance;
00014 
00019 class CombustionProcess : public Integrable
00020 {
00021 public:
00022     CombustionProcess(Compound *c, std::ostream *o);// : compound(c), output(o) {}
00023     
00024     virtual int getDim();
00025     
00026     void diffEq(const double *const x, const double t, double *const dx);
00027     
00028     double getState(double *const x); 
00029     void setState(const double *const x, const double t);
00030     virtual void peek(const double *const, const double);
00031     
00032     void listSubstances();
00033     
00034     void setAdiabatic(){adiabatic = true;}
00035     
00036 protected:
00037     std::unordered_map<Substance *, int> indices;
00038     int numberOfSubstances;
00039     
00040 private:
00041     Compound *compound;
00042     
00043     bool frozen = false;
00044     
00045     std::vector<Substance *> substances;
00046     int* quantities;
00047     
00048     std::ostream *output;
00049     double saytime;
00050     bool adiabatic;
00051 };
00052 
00053 } // namespace
00054 
00055 #endif
 All Classes Files Functions