MOOSE - Multiscale Object Oriented Simulation Environment
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
ZombieEnz Class Reference

#include <ZombieEnz.h>

+ Inheritance diagram for ZombieEnz:
+ Collaboration diagram for ZombieEnz:

Public Member Functions

void setSolver (Id solver, Id orig)
 Assign solver info. More...
 
double vGetConcK1 (const Eref &e) const
 
double vGetK1 (const Eref &e) const
 
double vGetK2 (const Eref &e) const
 
double vGetKcat (const Eref &e) const
 
double vGetKm (const Eref &e) const
 
double vGetNumKm (const Eref &e) const
 
double vGetRatio (const Eref &e) const
 
void vSetConcK1 (const Eref &e, double v)
 
void vSetK1 (const Eref &e, double v)
 
void vSetK2 (const Eref &e, double v)
 
void vSetKcat (const Eref &e, double v)
 
void vSetKm (const Eref &e, double v)
 
void vSetNumKm (const Eref &e, double v)
 
void vSetRatio (const Eref &e, double v)
 
 ZombieEnz ()
 
 ~ZombieEnz ()
 
- Public Member Functions inherited from CplxEnzBase
void cplx (double n)
 
 CplxEnzBase ()
 
double getConcK1 (const Eref &e) const
 
double getK1 (const Eref &e) const
 
double getK2 (const Eref &e) const
 
double getRatio (const Eref &e) const
 
void setConcK1 (const Eref &e, double v)
 
void setK1 (const Eref &e, double v)
 
void setK2 (const Eref &e, double v)
 
void setRatio (const Eref &e, double v)
 
virtual void vCplx (double n)
 
virtual ~CplxEnzBase ()
 
- Public Member Functions inherited from EnzBase
void enz (double n)
 
 EnzBase ()
 
double getKcat (const Eref &e) const
 
double getKm (const Eref &e) const
 
double getNumKm (const Eref &e) const
 
unsigned int getNumPrd (const Eref &e) const
 
unsigned int getNumSub (const Eref &e) const
 
void prd (double n)
 
void process (const Eref &e, ProcPtr p)
 
void reinit (const Eref &e, ProcPtr p)
 
void remesh (const Eref &e)
 
void setKcat (const Eref &e, double v)
 
void setKm (const Eref &e, double v)
 
void setNumKm (const Eref &e, double v)
 
void sub (double n)
 
virtual void vEnz (double n)
 
virtual void vProcess (const Eref &e, ProcPtr p)
 
virtual void vReinit (const Eref &e, ProcPtr p)
 
virtual void vRemesh (const Eref &e)
 
virtual void vSub (double n)
 
virtual ~EnzBase ()
 

Static Public Member Functions

static const CinfoinitCinfo ()
 
- Static Public Member Functions inherited from CplxEnzBase
static const CinfoinitCinfo ()
 
static void zombify (Element *original, const Cinfo *zClass, Id solver)
 
- Static Public Member Functions inherited from EnzBase
static const CinfoinitCinfo ()
 
static void zombify (Element *original, const Cinfo *zClass, Id solver)
 

Private Attributes

double concK1_
 
Stoichstoich_
 

Detailed Description

Definition at line 13 of file ZombieEnz.h.

Constructor & Destructor Documentation

ZombieEnz::ZombieEnz ( )

Definition at line 63 of file ZombieEnz.cpp.

64  :
65  stoich_( 0 ),
66  concK1_( 1.0 )
67 { ; }
Stoich * stoich_
Definition: ZombieEnz.h:64
double concK1_
Definition: ZombieEnz.h:65
ZombieEnz::~ZombieEnz ( )

Definition at line 69 of file ZombieEnz.cpp.

70 { ; }

Member Function Documentation

const Cinfo * ZombieEnz::initCinfo ( )
static

Definition at line 28 of file ZombieEnz.cpp.

References CplxEnzBase::initCinfo(), and zombieEnzCinfo.

29 {
31  // Field Definitions
34  // MsgDest Definitions
37  // Shared Msg Definitions
39 
40  static Dinfo< ZombieEnz > dinfo;
41  static Cinfo zombieEnzCinfo (
42  "ZombieEnz",
44  0,
45  0,
46  &dinfo
47  );
48 
49  return &zombieEnzCinfo;
50 }
Definition: Dinfo.h:60
static const Cinfo * zombieEnzCinfo
Definition: ZombieEnz.cpp:53
Definition: Cinfo.h:18
static const Cinfo * initCinfo()
Definition: CplxEnzBase.cpp:49

+ Here is the call graph for this function:

void ZombieEnz::setSolver ( Id  solver,
Id  orig 
)
virtual

Assign solver info.

Reimplemented from EnzBase.

Definition at line 216 of file ZombieEnz.cpp.

References Element::cinfo(), Eref::data(), Id::element(), Id::eref(), Cinfo::find(), Cinfo::findFinfo(), Element::getNeighbors(), Stoich::installEnzyme(), Cinfo::isA(), Id::path(), and stoich_.

217 {
218  static const Finfo* subFinfo = Cinfo::find("Enz")->findFinfo( "subOut");
219  static const Finfo* prdFinfo = Cinfo::find("Enz")->findFinfo( "prdOut");
220  static const Finfo* enzFinfo = Cinfo::find("Enz")->findFinfo( "enzOut");
221  static const Finfo* cplxFinfo= Cinfo::find("Enz")->findFinfo("cplxOut");
222 
223  assert( subFinfo );
224  assert( prdFinfo );
225  assert( enzFinfo );
226  assert( cplxFinfo );
227  vector< Id > enzMols;
228  vector< Id > cplxMols;
229  bool isOK = true;
230  unsigned int numReactants;
231  numReactants = enz.element()->getNeighbors( enzMols, enzFinfo );
232  bool hasEnz = ( numReactants == 1 );
233  vector< Id > subs;
234  numReactants = enz.element()->getNeighbors( subs, subFinfo );
235  bool hasSubs = ( numReactants > 0 );
236  numReactants = enz.element()->getNeighbors( cplxMols, cplxFinfo );
237  bool hasCplx = ( numReactants == 1 );
238  vector< Id > prds;
239  numReactants = enz.element()->getNeighbors( prds, prdFinfo );
240  bool hasPrds = ( numReactants > 0 );
241  assert( stoich.element()->cinfo()->isA( "Stoich" ) );
242  stoich_ = reinterpret_cast< Stoich* >( stoich.eref().data() );
243 
244  if ( hasEnz && hasSubs && hasCplx && hasPrds ) {
245  stoich_->installEnzyme( enz, enzMols[0], cplxMols[0], subs, prds );
246  } else {
247  stoich_->installDummyEnzyme( enz, Id() );
248  string msg = "";
249  if ( !hasEnz ) msg = msg + " enzyme";
250  if ( !hasCplx ) msg = msg + " enzyme-substrate complex";
251  if ( !hasSubs ) msg = msg + " substrates";
252  if ( !hasPrds ) msg = msg + " products";
253  cout << "Warning: ZombieEnz:setSolver: Dangling Enz '" <<
254  enz.path() << "':\nMissing " << msg << endl;
255  }
256 }
static const Cinfo * find(const std::string &name)
Definition: Cinfo.cpp:200
void installEnzyme(Id enzId, Id enzMolId, Id cplxId, const vector< Id > &subs, const vector< Id > &prds)
Definition: Stoich.cpp:1732
Definition: Stoich.h:49
void enz(double n)
Definition: EnzBase.cpp:187
Definition: Id.h:17
Stoich * stoich_
Definition: ZombieEnz.h:64
const Finfo * findFinfo(const string &name) const
Definition: Cinfo.cpp:224
Definition: Finfo.h:12

+ Here is the call graph for this function:

double ZombieEnz::vGetConcK1 ( const Eref e) const
virtual

Implements CplxEnzBase.

Definition at line 206 of file ZombieEnz.cpp.

References concK1_.

207 {
208  return concK1_;
209 }
double concK1_
Definition: ZombieEnz.h:65
double ZombieEnz::vGetK1 ( const Eref e) const
virtual

Implements CplxEnzBase.

Definition at line 99 of file ZombieEnz.cpp.

References concK1_, and convertConcToNumRateUsingMesh().

100 {
101  // return stoich_->getEnzNumK1( e );
102  double volScale =
104 
105  return concK1_ / volScale;
106 }
static const SrcFinfo2< double, double > * subOut
Definition: ZombieEnz.cpp:55
double convertConcToNumRateUsingMesh(const Eref &e, const SrcFinfo *pools, bool doPartialConversion)
double concK1_
Definition: ZombieEnz.h:65

+ Here is the call graph for this function:

double ZombieEnz::vGetK2 ( const Eref e) const
virtual

Implements CplxEnzBase.

Definition at line 113 of file ZombieEnz.cpp.

References Stoich::getEnzK2(), and stoich_.

Referenced by vGetNumKm().

114 {
115  return stoich_->getEnzK2( e );
116 }
double getEnzK2(const Eref &e) const
Get rate k2 (1/sec) for enzyme.
Definition: Stoich.cpp:1986
Stoich * stoich_
Definition: ZombieEnz.h:64

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

double ZombieEnz::vGetKcat ( const Eref e) const
virtual

Implements EnzBase.

Definition at line 136 of file ZombieEnz.cpp.

References Stoich::getEnzK3(), and stoich_.

Referenced by vGetNumKm().

137 {
138  return stoich_->getEnzK3( e );
139 }
double getEnzK3(const Eref &e) const
Get rate k3, aka kcat, for enzyme.
Definition: Stoich.cpp:1994
Stoich * stoich_
Definition: ZombieEnz.h:64

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

double ZombieEnz::vGetKm ( const Eref e) const
virtual

Implements EnzBase.

Definition at line 150 of file ZombieEnz.cpp.

References concK1_, CplxEnzBase::getK2(), and EnzBase::getKcat().

151 {
152  double k2 = getK2( e );
153  double k3 = getKcat( e );
154 
155  return ( k2 + k3 ) / concK1_;
156 }
double getK2(const Eref &e) const
double getKcat(const Eref &e) const
Definition: EnzBase.cpp:256
double concK1_
Definition: ZombieEnz.h:65

+ Here is the call graph for this function:

double ZombieEnz::vGetNumKm ( const Eref e) const
virtual

Implements EnzBase.

Definition at line 169 of file ZombieEnz.cpp.

References concK1_, convertConcToNumRateUsingMesh(), vGetK2(), and vGetKcat().

170 {
171  double k2 = vGetK2( e );
172  double k3 = vGetKcat( e );
173  double volScale =
175 
176  return volScale * ( k2 + k3 ) / concK1_;
177 }
double vGetKcat(const Eref &e) const
Definition: ZombieEnz.cpp:136
static const SrcFinfo2< double, double > * subOut
Definition: ZombieEnz.cpp:55
double convertConcToNumRateUsingMesh(const Eref &e, const SrcFinfo *pools, bool doPartialConversion)
double concK1_
Definition: ZombieEnz.h:65
double vGetK2(const Eref &e) const
Definition: ZombieEnz.cpp:113

+ Here is the call graph for this function:

double ZombieEnz::vGetRatio ( const Eref e) const
virtual

Implements CplxEnzBase.

Definition at line 193 of file ZombieEnz.cpp.

References CplxEnzBase::getK2(), and EnzBase::getKcat().

194 {
195  double k2 = getK2( e );
196  double k3 = getKcat( e );
197  return k2 / k3;
198 }
double getK2(const Eref &e) const
double getKcat(const Eref &e) const
Definition: EnzBase.cpp:256

+ Here is the call graph for this function:

void ZombieEnz::vSetConcK1 ( const Eref e,
double  v 
)
virtual

Implements CplxEnzBase.

Definition at line 200 of file ZombieEnz.cpp.

References concK1_, Stoich::setEnzK1(), and stoich_.

201 {
202  concK1_ = v;
203  stoich_->setEnzK1( e, v );
204 }
void setEnzK1(const Eref &e, double v) const
Later handle all the volumes when this conversion is done.
Definition: Stoich.cpp:1943
Stoich * stoich_
Definition: ZombieEnz.h:64
double concK1_
Definition: ZombieEnz.h:65

+ Here is the call graph for this function:

void ZombieEnz::vSetK1 ( const Eref e,
double  v 
)
virtual

Implements CplxEnzBase.

Definition at line 89 of file ZombieEnz.cpp.

References concK1_, convertConcToNumRateUsingMesh(), Stoich::setEnzK1(), and stoich_.

90 {
91  double volScale =
93 
94  concK1_ = v * volScale;
95  stoich_->setEnzK1( e, concK1_ );
96 }
void setEnzK1(const Eref &e, double v) const
Later handle all the volumes when this conversion is done.
Definition: Stoich.cpp:1943
static const SrcFinfo2< double, double > * subOut
Definition: ZombieEnz.cpp:55
double convertConcToNumRateUsingMesh(const Eref &e, const SrcFinfo *pools, bool doPartialConversion)
Stoich * stoich_
Definition: ZombieEnz.h:64
double concK1_
Definition: ZombieEnz.h:65

+ Here is the call graph for this function:

void ZombieEnz::vSetK2 ( const Eref e,
double  v 
)
virtual

Implements CplxEnzBase.

Definition at line 108 of file ZombieEnz.cpp.

References Stoich::setEnzK2(), and stoich_.

109 {
110  stoich_->setEnzK2( e, v );
111 }
void setEnzK2(const Eref &e, double v) const
Set rate k2 (1/sec) for enzyme.
Definition: Stoich.cpp:1951
Stoich * stoich_
Definition: ZombieEnz.h:64

+ Here is the call graph for this function:

void ZombieEnz::vSetKcat ( const Eref e,
double  v 
)
virtual

Implements EnzBase.

Definition at line 118 of file ZombieEnz.cpp.

References concK1_, EPSILON, CplxEnzBase::getK2(), EnzBase::getKcat(), Stoich::setEnzK1(), Stoich::setEnzK2(), Stoich::setEnzK3(), and stoich_.

119 {
120  double k2 = getK2( e );
121  double k3 = getKcat( e );
122  double ratio = 4.0;
123  if ( v < EPSILON )
124  v = EPSILON;
125  if ( k3 > EPSILON ) {
126  ratio = k2/k3;
127  }
128  double Km = (k2 + k3) / concK1_;
129  concK1_ = v * (1.0 + ratio) / Km;
130 
131  stoich_->setEnzK1( e, concK1_ );
132  stoich_->setEnzK3( e, v );
133  stoich_->setEnzK2( e, v * ratio );
134 }
void setEnzK3(const Eref &e, double v) const
Set rate k3 (1/sec) for enzyme.
Definition: Stoich.cpp:1966
double getK2(const Eref &e) const
void setEnzK1(const Eref &e, double v) const
Later handle all the volumes when this conversion is done.
Definition: Stoich.cpp:1943
void setEnzK2(const Eref &e, double v) const
Set rate k2 (1/sec) for enzyme.
Definition: Stoich.cpp:1951
#define EPSILON
Definition: ZombieEnz.cpp:26
double getKcat(const Eref &e) const
Definition: EnzBase.cpp:256
Stoich * stoich_
Definition: ZombieEnz.h:64
double concK1_
Definition: ZombieEnz.h:65

+ Here is the call graph for this function:

void ZombieEnz::vSetKm ( const Eref e,
double  v 
)
virtual

Implements EnzBase.

Definition at line 142 of file ZombieEnz.cpp.

References concK1_, CplxEnzBase::getK2(), EnzBase::getKcat(), Stoich::setEnzK1(), and stoich_.

143 {
144  double k2 = getK2( e );
145  double k3 = getKcat( e );
146  concK1_ = ( k2 + k3 ) / v;
147  stoich_->setEnzK1( e, concK1_ );
148 }
double getK2(const Eref &e) const
void setEnzK1(const Eref &e, double v) const
Later handle all the volumes when this conversion is done.
Definition: Stoich.cpp:1943
double getKcat(const Eref &e) const
Definition: EnzBase.cpp:256
Stoich * stoich_
Definition: ZombieEnz.h:64
double concK1_
Definition: ZombieEnz.h:65

+ Here is the call graph for this function:

void ZombieEnz::vSetNumKm ( const Eref e,
double  v 
)
virtual

Implements EnzBase.

Definition at line 158 of file ZombieEnz.cpp.

References concK1_, convertConcToNumRateUsingMesh(), CplxEnzBase::getK2(), EnzBase::getKcat(), Stoich::setEnzK1(), and stoich_.

159 {
160  double k2 = getK2( e );
161  double k3 = getKcat( e );
162  double volScale =
164  concK1_ = ( k2 + k3 ) / ( v * volScale );
165 
166  stoich_->setEnzK1( e, concK1_ );
167 }
double getK2(const Eref &e) const
void setEnzK1(const Eref &e, double v) const
Later handle all the volumes when this conversion is done.
Definition: Stoich.cpp:1943
static const SrcFinfo2< double, double > * subOut
Definition: ZombieEnz.cpp:55
double convertConcToNumRateUsingMesh(const Eref &e, const SrcFinfo *pools, bool doPartialConversion)
double getKcat(const Eref &e) const
Definition: EnzBase.cpp:256
Stoich * stoich_
Definition: ZombieEnz.h:64
double concK1_
Definition: ZombieEnz.h:65

+ Here is the call graph for this function:

void ZombieEnz::vSetRatio ( const Eref e,
double  v 
)
virtual

Implements CplxEnzBase.

Definition at line 179 of file ZombieEnz.cpp.

References CplxEnzBase::getK2(), EnzBase::getKcat(), EnzBase::getKm(), CplxEnzBase::setConcK1(), Stoich::setEnzK2(), and stoich_.

180 {
181  double Km = getKm( e );
182  double k2 = getK2( e );
183  double k3 = getKcat( e );
184 
185  k2 = v * k3;
186 
187  stoich_->setEnzK2( e, k2 );
188  double k1 = ( k2 + k3 ) / Km;
189 
190  setConcK1( e, k1 );
191 }
double getK2(const Eref &e) const
double getKm(const Eref &e) const
Definition: EnzBase.cpp:235
void setConcK1(const Eref &e, double v)
void setEnzK2(const Eref &e, double v) const
Set rate k2 (1/sec) for enzyme.
Definition: Stoich.cpp:1951
double getKcat(const Eref &e) const
Definition: EnzBase.cpp:256
Stoich * stoich_
Definition: ZombieEnz.h:64

+ Here is the call graph for this function:

Member Data Documentation

double ZombieEnz::concK1_
private
Stoich* ZombieEnz::stoich_
private

The documentation for this class was generated from the following files: