#include <ZombiePoolInterface.h>
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 VoxelPoolsBase * | pools (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< XferInfo > | xfer_ |
bool | isBuilt_ |
Flag: True when solver setup has been completed. |
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.
ZombiePoolInterface::ZombiePoolInterface | ( | ) |
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_.
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 |
virtual double ZombiePoolInterface::getDiffConst | ( | const Eref & | e | ) | const [pure virtual] |
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] |
virtual unsigned int ZombiePoolInterface::getPoolIndex | ( | const Eref & | er | ) | const [pure virtual] |
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().
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] |
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] |
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 | |||
) |
Referenced by Stoich::setupCrossSolverReacVols().
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] |
void ZombiePoolInterface::xComptIn | ( | const Eref & | e, | |
Id | srcZombiePoolInterface, | |||
vector< double > | values | |||
) |
Referenced by Ksolve::initCinfo(), and Gsolve::initCinfo().
Id ZombiePoolInterface::compartment_ [protected] |
Id of Chem compartment used to figure out volumes of voxels.
Referenced by getCompartment(), Gsolve::getCompartment(), Ksolve::print(), setCompartment(), and Gsolve::setCompartment().
bool ZombiePoolInterface::isBuilt_ [protected] |
Flag: True when solver setup has been completed.
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
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().