00001 // MixedReactionNetwork.h: interface for the CMixedReactionNetwork class. 00002 // 00004 00005 #if !defined(AFX_MIXEDREACTIONNETWORK_H__188826DA_57B1_4AC3_96A7_EFEF7F73E12A__INCLUDED_) 00006 #define AFX_MIXEDREACTIONNETWORK_H__188826DA_57B1_4AC3_96A7_EFEF7F73E12A__INCLUDED_ 00007 00008 #if _MSC_VER > 1000 00009 #pragma once 00010 #endif // _MSC_VER > 1000 00011 00012 #include <algorithm> 00013 #include "ReactionNetwork.h" 00014 #include "typedefs.h" 00015 00016 class CMixedReactionNetwork : public ReactionNetwork 00017 { 00018 public: 00019 CMixedReactionNetwork(); 00020 CMixedReactionNetwork(ReactionNetwork *pReactionNetwork, intVector stocReactionList); 00021 virtual ~CMixedReactionNetwork(); 00022 int GetNumberOfChemicals() const; 00023 int GetNumberOfReactions() const; 00024 int GetNumberOfRateConstants() const; 00025 Chemical *GetChemical(int chemicalNumber); 00026 RateConstant *GetRateConstant(int rateConstantNumber); 00027 void ChemicalReset(); 00028 void RateConstantReset(); 00029 void SetAmount(int chemicalNumber, double amount); 00030 vpReaction *GetReactions(); 00031 Reaction *GetReaction(int reactionNumber); 00032 vpReaction *GetStochasticReactions(); 00033 Reaction *GetStochasticReaction(int reactionNumber); 00034 vpReaction *GetDeterministicReactions(); 00035 Reaction *GetDeterministicReaction(int reactionNumber); 00036 vpChemical *GetChemicals(); 00037 vpRateConstant *GetRateConstants(); 00038 int GetNumberOfStochasticReactions() const; 00039 int GetNumberOfDeterministicReactions() const; 00040 dblVector *GetReactionRates(); 00041 dblVector *GetStochasticReactionRates(); 00042 dblVector *GetDeterministicReactionRates(); 00043 double GetTotalStochasticReactionProbability(); 00044 private: 00045 ReactionNetwork *m_pReactionNetwork; 00046 intVector m_viStochasticList; 00047 vpReaction m_vpStochasticReactions; 00048 vpReaction m_vpDeterministicReactions; 00049 dblVector m_dStochasticReactionRates; 00050 dblVector m_dDeterministicReactionRates; 00051 }; 00052 00053 #endif // !defined(AFX_MIXEDREACTIONNETWORK_H__188826DA_57B1_4AC3_96A7_EFEF7F73E12A__INCLUDED_)