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

#include <ZombiePoolInterface.h>

+ Inheritance diagram for ZombiePoolInterface:
+ Collaboration diagram for ZombiePoolInterface:

Public Member Functions

virtual void getBlock (vector< double > &values) const =0
 
Id getCompartment () const
 
virtual double getDiffConst (const Eref &e) const =0
 Diffusion constant: Only one per pool, voxel number is ignored. More...
 
virtual double getN (const Eref &e) const =0
 Get # of molecules in given pool and voxel. Varies with time. More...
 
virtual double getNinit (const Eref &e) const =0
 get initial # of molecules in given pool and voxel. Bdry cond. More...
 
virtual unsigned int getNumLocalVoxels () const =0
 Number of voxels here. pools_.size() == getNumLocalVoxels. More...
 
virtual unsigned int getNumPools () const =0
 gets number of pools (species) handled by system. More...
 
virtual unsigned int getPoolIndex (const Eref &er) const =0
 Return pool index, using Stoich ptr to do lookup. More...
 
virtual VoxelPoolsBasepools (unsigned int i)=0
 Return a pointer to the specified VoxelPool. More...
 
virtual void setBlock (const vector< double > &values)=0
 
virtual void setCompartment (Id compartment)
 Assigns compartment. More...
 
virtual void setDiffConst (const Eref &e, double val)=0
 Diffusion constant: Only one per pool, voxel number is ignored. More...
 
virtual void setDsolve (Id dsolve)=0
 Assigns the diffusion solver. Used by the reac solvers. More...
 
virtual void setMotorConst (const Eref &e, double val)
 
virtual void setN (const Eref &e, double val)=0
 Set # of molecules in given pool and voxel. Varies with time. More...
 
virtual void setNinit (const Eref &e, double val)=0
 Set initial # of molecules in given pool and voxel. Bdry cond. More...
 
virtual void setNumAllVoxels (unsigned int numVoxels)=0
 Assign number of voxels (size of pools_ vector ) More...
 
virtual void setNumPools (unsigned int num)=0
 Specifies number of pools (species) handled by system. More...
 
virtual void setPrev ()
 Used to tell Dsolver to assign 'prev' values. More...
 
virtual void setStoich (Id stoich)=0
 
virtual void updateJunctions (double dt)
 Used for telling Dsolver to handle all ops across Junctions. More...
 
virtual void updateRateTerms (unsigned int index=~0U)=0
 
virtual double volume (unsigned int i) const =0
 Return volume of voxel i. More...
 
 ZombiePoolInterface ()
 

Protected Attributes

Id compartment_
 Id of Chem compartment used to figure out volumes of voxels. More...
 
bool isBuilt_
 Flag: True when solver setup has been completed. More...
 
Id stoich_
 

Detailed Description

This pure virtual base class is for solvers that want to talk to the zombie pool. The Eref specifies both the pool identity and the voxel number within the pool.

Definition at line 19 of file ZombiePoolInterface.h.

Constructor & Destructor Documentation

ZombiePoolInterface::ZombiePoolInterface ( )

Definition at line 32 of file ZombiePoolInterface.cpp.

33  : stoich_(), compartment_(),
34  isBuilt_( false )
35 {;}
bool isBuilt_
Flag: True when solver setup has been completed.
Id compartment_
Id of Chem compartment used to figure out volumes of voxels.

Member Function Documentation

virtual void ZombiePoolInterface::getBlock ( vector< double > &  values) const
pure virtual

Gets block of data. The first 4 entries are passed in on the 'values' vector: the start voxel, numVoxels, start pool#, numPools. These are followed by numVoxels * numPools of data values which are filled in by the function. We assert that the entire requested block is present in this ZombiePoolInterface. The block is organized as an array of arrays of voxels; values[pool#][voxel#]

Note that numVoxels and numPools are the number in the current block, not the upper limit of the block. So values.size() == 4 + numPools * numVoxels.

Implemented in Dsolve, Ksolve, and Gsolve.

Referenced by Gsolve::process(), and Ksolve::process().

+ Here is the caller graph for this function:

Id ZombiePoolInterface::getCompartment ( ) const

Definition at line 44 of file ZombiePoolInterface.cpp.

References compartment_.

Referenced by Ksolve::initCinfo(), and Dsolve::initCinfo().

45 {
46  return compartment_;
47 }
Id compartment_
Id of Chem compartment used to figure out volumes of voxels.

+ Here is the caller graph for this function:

virtual double ZombiePoolInterface::getDiffConst ( const Eref e) const
pure virtual

Diffusion constant: Only one per pool, voxel number is ignored.

Implemented in Dsolve, Ksolve, and Gsolve.

virtual double ZombiePoolInterface::getN ( const Eref e) const
pure virtual

Get # of molecules in given pool and voxel. Varies with time.

Implemented in Dsolve, Ksolve, and Gsolve.

Referenced by ZombiePool::vGetN().

+ Here is the caller graph for this function:

virtual double ZombiePoolInterface::getNinit ( const Eref e) const
pure virtual

get initial # of molecules in given pool and voxel. Bdry cond.

Implemented in Dsolve, Ksolve, and Gsolve.

Referenced by ZombiePool::vGetNinit().

+ Here is the caller graph for this function:

virtual unsigned int ZombiePoolInterface::getNumLocalVoxels ( ) const
pure virtual

Number of voxels here. pools_.size() == getNumLocalVoxels.

Implemented in Dsolve, Ksolve, and Gsolve.

virtual unsigned int ZombiePoolInterface::getNumPools ( ) const
pure virtual

gets number of pools (species) handled by system.

Implemented in Dsolve, Ksolve, and Gsolve.

virtual unsigned int ZombiePoolInterface::getPoolIndex ( const Eref er) const
pure virtual

Return pool index, using Stoich ptr to do lookup.

Implemented in Dsolve, Ksolve, and Gsolve.

virtual VoxelPoolsBase* ZombiePoolInterface::pools ( unsigned int  i)
pure virtual

Return a pointer to the specified VoxelPool.

Implemented in Dsolve, Ksolve, and Gsolve.

Referenced by Stoich::scaleBufsAndRates(), and setCompartment().

+ Here is the caller graph for this function:

virtual void ZombiePoolInterface::setBlock ( const vector< double > &  values)
pure virtual

Sets block of data. The first 4 entries on the 'values' vector are the start voxel, numVoxels, start pool#, numPools. These are followed by numVoxels * numPools of data values.

Implemented in Dsolve, Ksolve, and Gsolve.

Referenced by Gsolve::process(), and Ksolve::process().

+ Here is the caller graph for this function:

void ZombiePoolInterface::setCompartment ( Id  compartment)
virtual

Assigns compartment.

Reimplemented in Dsolve, and Gsolve.

Definition at line 49 of file ZombiePoolInterface.cpp.

References Element::cinfo(), compartment_, Id::element(), Cinfo::isA(), isBuilt_, pools(), setNumAllVoxels(), and VoxelPoolsBase::setVolume().

Referenced by Ksolve::initCinfo(), and Stoich::setElist().

50 {
51  isBuilt_ = false; // We will have to now rebuild the whole thing.
52  if ( compt.element()->cinfo()->isA( "ChemCompt" ) ) {
53  compartment_ = compt;
54  vector< double > vols =
55  Field< vector < double > >::get( compt, "voxelVolume" );
56  if ( vols.size() > 0 ) {
57  setNumAllVoxels( vols.size() );
58  for ( unsigned int i = 0; i < vols.size(); ++i ) {
59  pools(i)->setVolume( vols[i] );
60  }
61  }
62  }
63 }
virtual void setNumAllVoxels(unsigned int numVoxels)=0
Assign number of voxels (size of pools_ vector )
Definition: SetGet.h:236
virtual VoxelPoolsBase * pools(unsigned int i)=0
Return a pointer to the specified VoxelPool.
bool isBuilt_
Flag: True when solver setup has been completed.
void setVolume(double vol)
Just assigns the volume without any cascading to other values.
Id compartment_
Id of Chem compartment used to figure out volumes of voxels.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

virtual void ZombiePoolInterface::setDiffConst ( const Eref e,
double  val 
)
pure virtual

Diffusion constant: Only one per pool, voxel number is ignored.

Implemented in Dsolve, Ksolve, and Gsolve.

Referenced by ZombiePool::vSetDiffConst().

+ Here is the caller graph for this function:

virtual void ZombiePoolInterface::setDsolve ( Id  dsolve)
pure virtual

Assigns the diffusion solver. Used by the reac solvers.

Implemented in Gsolve, Dsolve, and Ksolve.

Referenced by Stoich::setElist().

+ Here is the caller graph for this function:

virtual void ZombiePoolInterface::setMotorConst ( const Eref e,
double  val 
)
inlinevirtual

Motor constant: Only one per pool, voxel number is ignored. Used only in Dsolves, so here I put in a dummy.

Reimplemented in Dsolve.

Definition at line 41 of file ZombiePoolInterface.h.

Referenced by ZombiePool::vSetMotorConst().

42  {;}

+ Here is the caller graph for this function:

virtual void ZombiePoolInterface::setN ( const Eref e,
double  val 
)
pure virtual

Set # of molecules in given pool and voxel. Varies with time.

Implemented in Dsolve, Ksolve, and Gsolve.

Referenced by ZombiePool::vSetN().

+ Here is the caller graph for this function:

virtual void ZombiePoolInterface::setNinit ( const Eref e,
double  val 
)
pure virtual

Set initial # of molecules in given pool and voxel. Bdry cond.

Implemented in Dsolve, Ksolve, and Gsolve.

Referenced by ZombiePool::vSetNinit().

+ Here is the caller graph for this function:

virtual void ZombiePoolInterface::setNumAllVoxels ( unsigned int  numVoxels)
pure virtual

Assign number of voxels (size of pools_ vector )

Implemented in Dsolve, Ksolve, and Gsolve.

Referenced by setCompartment().

+ Here is the caller graph for this function:

virtual void ZombiePoolInterface::setNumPools ( unsigned int  num)
pure virtual

Specifies number of pools (species) handled by system.

Implemented in Dsolve, Ksolve, and Gsolve.

Referenced by Stoich::resizeArrays().

+ Here is the caller graph for this function:

void ZombiePoolInterface::setPrev ( )
virtual

Used to tell Dsolver to assign 'prev' values.

Reimplemented in Dsolve.

Definition at line 39 of file ZombiePoolInterface.cpp.

Referenced by Gsolve::process(), and Ksolve::process().

40 {;}

+ Here is the caller graph for this function:

virtual void ZombiePoolInterface::setStoich ( Id  stoich)
pure virtual

Informs the ZPI about the stoich, used during subsequent computations. Called to wrap up the model building. The Stoich does this call after it has set up its own path.

Implemented in Dsolve, Ksolve, and Gsolve.

Referenced by Stoich::setElist().

+ Here is the caller graph for this function:

void ZombiePoolInterface::updateJunctions ( double  dt)
virtual

Used for telling Dsolver to handle all ops across Junctions.

Reimplemented in Dsolve.

Definition at line 37 of file ZombiePoolInterface.cpp.

Referenced by Gsolve::process(), and Ksolve::process().

38 {;}

+ Here is the caller graph for this function:

virtual void ZombiePoolInterface::updateRateTerms ( unsigned int  index = ~0U)
pure virtual

Informs the solver that the rate terms or volumes have changed and that the parameters must be updated. The index specifies which rateTerm to change, and if it is ~0U it means update all of them.

Implemented in Dsolve, Ksolve, and Gsolve.

Referenced by Stoich::setElist(), Stoich::setEnzK1(), Stoich::setEnzK2(), Stoich::setEnzK3(), Stoich::setMMenzKcat(), Stoich::setMMenzKm(), Stoich::setReacKb(), and Stoich::setReacKf().

+ Here is the caller graph for this function:

virtual double ZombiePoolInterface::volume ( unsigned int  i) const
pure virtual

Return volume of voxel i.

Implemented in Dsolve, Ksolve, and Gsolve.

Member Data Documentation

Id ZombiePoolInterface::compartment_
protected
bool ZombiePoolInterface::isBuilt_
protected

Flag: True when solver setup has been completed.

Definition at line 126 of file ZombiePoolInterface.h.

Referenced by Ksolve::process(), Ksolve::reinit(), setCompartment(), and Ksolve::setStoich().

Id ZombiePoolInterface::stoich_
protected

Stoich is the class that sets up the reaction system and manages the stoichiometry matrix

Definition at line 120 of file ZombiePoolInterface.h.

Referenced by Gsolve::getStoich(), Ksolve::getStoich(), Dsolve::getStoich(), Dsolve::makePoolMapFromElist(), Ksolve::print(), Gsolve::setStoich(), Ksolve::setStoich(), and Dsolve::setStoich().


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