00001 #ifndef _MY_FlashData_ 00002 #define _MY_FlashData_ 00003 #include "globals.h" 00004 #include "vecdouble.h" 00005 class FlashDataArray; 00006 00011 class FlashData 00012 { 00013 friend class FlashDataArray; 00014 private: 00015 protected: 00016 double *m_phaseCompositions; 00017 unsigned n_phases,n_comps; 00018 bool m_Del; 00019 public: 00020 FlashData(unsigned n_phases,unsigned n_comps,double *mem); 00021 FlashData(unsigned n_phases,unsigned n_comps); 00022 FlashData(const FlashData &data); 00023 00024 00025 00026 ~FlashData(); 00027 void allocateOwnMemory(); 00028 double getMoles(unsigned phase,unsigned comp) const; 00029 void setMoles(unsigned phase,unsigned comp,const double& value); 00030 void zeroEntries(); 00031 double getPhaseTotalMoles(unsigned n_phase) const; 00032 double getTotalMoles() const; 00033 unsigned getNPhases() const{return n_phases;} 00034 unsigned getNComponents() const{return n_comps;} 00035 void multiply(VecDouble &B,const VecDouble &X) const; 00036 void getPhasesTotalMoles(VecDouble &phases) const; 00037 void getPhaseConcentrationsAndTotalMoles(Matrix &phasesC, VecDouble &phases) const; 00038 void getMixtureComposition(VecDouble &vComp, double &nT); 00039 void getTotalComponentsMoles(VecDouble &totalComponentsMoles) const; 00040 void getPhasesDensities(VecDouble &vDensities,const VecDouble &componentsMolarMass,const VecDouble &phasesVol); 00041 const double* getData() const; 00042 void setData(double *); 00043 void setData(FlashData &data); 00044 00045 void print(std::ostream &out=std::cout); 00046 void deepCopy(const FlashData &data); 00047 void operator = (const FlashData &data); 00048 }; 00049 00050 #endif