ZombiePoolInterface Class Reference

#include <ZombiePoolInterface.h>

Inheritance diagram for ZombiePoolInterface:
Inheritance graph
[legend]
Collaboration diagram for ZombiePoolInterface:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 ZombiePoolInterface ()
virtual void setNinit (const Eref &e, double val)=0
 Set initial # of molecules in given pool and voxel. Bdry cond.
virtual double getNinit (const Eref &e) const =0
 get initial # of molecules in given pool and voxel. Bdry cond.
virtual void setN (const Eref &e, double val)=0
 Set # of molecules in given pool and voxel. Varies with time.
virtual double getN (const Eref &e) const =0
 Get # of molecules in given pool and voxel. Varies with time.
virtual void setDiffConst (const Eref &e, double val)=0
 Diffusion constant: Only one per pool, voxel number is ignored.
virtual double getDiffConst (const Eref &e) const =0
 Diffusion constant: Only one per pool, voxel number is ignored.
virtual void setMotorConst (const Eref &e, double val)
virtual void setNumPools (unsigned int num)=0
 Specifies number of pools (species) handled by system.
virtual unsigned int getNumPools () const =0
 gets number of pools (species) handled by system.
virtual void setNumAllVoxels (unsigned int numVoxels)=0
 Assign number of voxels (size of pools_ vector ).
virtual unsigned int getNumLocalVoxels () const =0
 Number of voxels here. pools_.size() == getNumLocalVoxels.
virtual VoxelPoolsBasepools (unsigned int i)=0
 Return a pointer to the specified VoxelPool.
virtual double volume (unsigned int i) const =0
 Return volume of voxel i.
virtual void getBlock (vector< double > &values) const =0
virtual void setBlock (const vector< double > &values)=0
virtual void setStoich (Id stoich)=0
virtual void setDsolve (Id dsolve)=0
 Assigns the diffusion solver. Used by the reac solvers.
virtual void setCompartment (Id compartment)
 Assigns compartment.
Id getCompartment () const
void setupCrossSolverReacs (const map< Id, vector< Id > > &xr, Id otherStoich)
 Sets up cross-solver reactions.
void setupCrossSolverReacVols (const vector< vector< Id > > &subCompts, const vector< vector< Id > > &prdCompts)
void filterCrossRateTerms (const vector< Id > &xreacs, const vector< pair< Id, Id > > &xrt)
virtual void updateRateTerms (unsigned int index=~0U)=0
virtual unsigned int getPoolIndex (const Eref &er) const =0
 Return pool index, using Stoich ptr to do lookup.
void xComptIn (const Eref &e, Id srcZombiePoolInterface, vector< double > values)
void assignXferVoxels (unsigned int xferCompt)
void assignXferIndex (unsigned int numProxyMols, unsigned int xferCompt, const vector< vector< unsigned int > > &voxy)
void setupXfer (Id myZombiePoolInterface, Id otherZombiePoolInterface, unsigned int numProxyMols, const vector< VoxelJunction > &vj)
unsigned int assignProxyPools (const map< Id, vector< Id > > &xr, Id myZombiePoolInterface, Id otherZombiePoolInterface, Id otherComptId)
void matchJunctionVols (vector< double > &vols, Id otherComptId) const

Protected Attributes

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

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.


Constructor & Destructor Documentation

ZombiePoolInterface::ZombiePoolInterface (  ) 

Member Function Documentation

unsigned int ZombiePoolInterface::assignProxyPools ( const map< Id, vector< Id > > &  xr,
Id  myZombiePoolInterface,
Id  otherZombiePoolInterface,
Id  otherComptId 
)

Reimplemented in Ksolve.

void ZombiePoolInterface::assignXferIndex ( unsigned int  numProxyMols,
unsigned int  xferCompt,
const vector< vector< unsigned int > > &  voxy 
)

Reimplemented in Ksolve.

void ZombiePoolInterface::assignXferVoxels ( unsigned int  xferCompt  ) 

Figures out which voxels are involved in cross-compt reactions. Stores in the appropriate xfer_ entry.

Reimplemented in Ksolve.

References getNumLocalVoxels(), VoxelPoolsBase::hasXfer(), pools(), and xfer_.

Here is the call graph for this function:

void ZombiePoolInterface::filterCrossRateTerms ( const vector< Id > &  xreacs,
const vector< pair< Id, Id > > &  xrt 
)

Referenced by Stoich::filterXreacs().

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 Gsolve, and Ksolve.

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

Id ZombiePoolInterface::getCompartment (  )  const

Reimplemented in Gsolve.

References compartment_.

Referenced by Ksolve::initCinfo().

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

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

Implemented in Gsolve, and Ksolve.

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

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

Implemented in Gsolve, and Ksolve.

Referenced by ZombiePool::vGetN().

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

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

Implemented in Gsolve, and Ksolve.

Referenced by ZombiePool::vGetNinit().

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

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

Implemented in Gsolve, and Ksolve.

Referenced by assignXferVoxels().

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

gets number of pools (species) handled by system.

Implemented in Gsolve, and Ksolve.

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

Return pool index, using Stoich ptr to do lookup.

Implemented in Gsolve, and Ksolve.

void ZombiePoolInterface::matchJunctionVols ( vector< double > &  vols,
Id  otherComptId 
) const

Reimplemented in Ksolve.

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

Return a pointer to the specified VoxelPool.

Implemented in Gsolve, and Ksolve.

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

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 Gsolve, and Ksolve.

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

void ZombiePoolInterface::setCompartment ( Id  compartment  )  [virtual]

Assigns compartment.

Reimplemented in Gsolve.

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

Referenced by Ksolve::initCinfo().

Here is the call 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 Gsolve, and Ksolve.

Referenced by ZombiePool::vSetDiffConst().

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

Assigns the diffusion solver. Used by the reac solvers.

Implemented in Gsolve, and Ksolve.

virtual void ZombiePoolInterface::setMotorConst ( const Eref e,
double  val 
) [inline, virtual]

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

Referenced by ZombiePool::vSetMotorConst().

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

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

Implemented in Gsolve, and Ksolve.

Referenced by ZombiePool::vSetN().

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

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

Implemented in Gsolve, and Ksolve.

Referenced by ZombiePool::vSetNinit().

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

Assign number of voxels (size of pools_ vector ).

Implemented in Gsolve, and Ksolve.

Referenced by setCompartment().

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

Specifies number of pools (species) handled by system.

Implemented in Gsolve, and Ksolve.

Referenced by Stoich::resizeArrays().

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 Gsolve, and Ksolve.

void ZombiePoolInterface::setupCrossSolverReacs ( const map< Id, vector< Id > > &  xr,
Id  otherStoich 
)

Sets up cross-solver reactions.

Referenced by Stoich::buildXreacs().

void ZombiePoolInterface::setupCrossSolverReacVols ( const vector< vector< Id > > &  subCompts,
const vector< vector< Id > > &  prdCompts 
)
void ZombiePoolInterface::setupXfer ( Id  myZombiePoolInterface,
Id  otherZombiePoolInterface,
unsigned int  numProxyMols,
const vector< VoxelJunction > &  vj 
)

Reimplemented in Ksolve.

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 Gsolve, and Ksolve.

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

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

Return volume of voxel i.

Implemented in Gsolve, and Ksolve.

void ZombiePoolInterface::xComptIn ( const Eref e,
Id  srcZombiePoolInterface,
vector< double >  values 
)

Member Data Documentation

Id of Chem compartment used to figure out volumes of voxels.

Referenced by getCompartment(), Gsolve::getCompartment(), Ksolve::print(), setCompartment(), and Gsolve::setCompartment().

Flag: True when solver setup has been completed.

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

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

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

vector< XferInfo > ZombiePoolInterface::xfer_ [protected]

All the data transfer information from current to other solvers. xfer_[otherKsolveIndex]

Referenced by assignXferVoxels(), Ksolve::initProc(), Gsolve::initProc(), Ksolve::initReinit(), Gsolve::initReinit(), Ksolve::print(), Ksolve::process(), Gsolve::process(), Ksolve::reinit(), and Gsolve::reinit().


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

Generated on 1 Jul 2015 for MOOSE by  doxygen 1.6.1