MOOSE - Multiscale Object Oriented Simulation Environment
|
#include <FuncRateTerm.h>
Public Member Functions | |
RateTerm * | copyWithVolScaling (double vol, double sub, double prd) const |
FuncReac (double k, vector< unsigned int > v) | |
unsigned int | getReactants (vector< unsigned int > &molIndex) const |
double | operator() (const double *S) const |
Computes the rate. The argument is the molecule array. More... | |
void | rescaleVolume (short comptIndex, const vector< short > &compartmentLookup, double ratio) |
void | setReactants (const vector< unsigned int > &molIndex) |
![]() | |
FuncRate (double k, unsigned int targetPoolIndex) | |
const string & | getExpr () const |
const vector< unsigned int > & | getFuncArgIndex () |
void | setExpr (const string &s) |
void | setFuncArgIndex (const vector< unsigned int > &mol) |
void | setReactants (const vector< unsigned int > &molIndex) |
![]() | |
RateTerm * | copyWithVolScaling (double vol, double sub, double prd) const |
double | getR1 () const |
Used by Zombie to return rate terms. More... | |
double | getR2 () const |
Used by Zombie to return rate terms. More... | |
unsigned int | getReactants (vector< unsigned int > &molIndex) const |
double | operator() (const double *S) const |
Computes the rate. The argument is the molecule array. More... | |
void | rescaleVolume (short comptIndex, const vector< short > &compartmentLookup, double ratio) |
void | setR1 (double k1) |
Used by Zombie to assign rate terms. More... | |
void | setR2 (double k2) |
Used by Zombie to assign rate terms. More... | |
void | setRates (double k1, double k2) |
![]() | |
RateTerm () | |
virtual | ~RateTerm () |
Private Attributes | |
unsigned int | numSubstrates_ |
vector< unsigned int > | v_ |
Additional Inherited Members | |
![]() | |
static const double | EPSILON = 1.0e-6 |
![]() | |
FuncTerm | func_ |
double | funcVolPower_ |
double | k_ |
This FuncReac manages a one-way NOrder reaction whose rate is determined by a Function, but which also has regular substrates and products.
dproduct/dt = func( x0, x1, x2..., t ) * [sub0] * [sub1] * ....
The values x0, x1, x2 are expected to be concentrations so that they do not depend on volume. The substrates sub0, sub1, ... are # of molecules. The term k_ is scaled so that it is unity at vol = 1/NA m^3. k_ = (NA * vol)^(numSub-1) The copyWithVolScaling operation scales it up and down from there.
Definition at line 99 of file FuncRateTerm.h.
|
inline |
Definition at line 102 of file FuncRateTerm.h.
Referenced by copyWithVolScaling().
|
inlinevirtual |
Duplicates rate term and then applies volume scaling. Arguments are volume of reference voxel, product of vol/refVol for all substrates: applied to R1 product of vol/refVol for all products: applied to R2
Note that unless the reaction is cross-compartment, the vol/refVol will be one.
Reimplemented from FuncRate.
Definition at line 137 of file FuncRateTerm.h.
References FuncRate::func_, FuncReac(), FuncRate::funcVolPower_, FuncRate::k_, NA, and v_.
|
inlinevirtual |
This function finds the reactant indices in the vector S. It returns the number of substrates found, which are the first entries in molIndex. The products are the remaining ones. Note that it does NOT find products for unidirectional reactions, which is a bit of a problem.
Reimplemented from FuncRate.
Definition at line 118 of file FuncRateTerm.h.
References numSubstrates_, and v_.
|
inlinevirtual |
Computes the rate. The argument is the molecule array.
Reimplemented from FuncRate.
Definition at line 107 of file FuncRateTerm.h.
References FuncRate::func_, and v_.
|
inlinevirtual |
This is used to rescale the RateTerm kinetics when the compartment volume changes. This is needed because the kinetics are in extensive units, that is, mol numbers, rather than in intensive units like concentration. So when the volume changes the rate terms change. Each Rate term checks if any of its reactant molecules are affected, and if so, rescales. Ratio is newVol / oldVol
Implements RateTerm.
Definition at line 127 of file FuncRateTerm.h.
References FuncRate::k_, and v_.
|
inline |
Definition at line 123 of file FuncRateTerm.h.
References v_.
|
private |
Definition at line 152 of file FuncRateTerm.h.
Referenced by getReactants().
|
private |
Definition at line 151 of file FuncRateTerm.h.
Referenced by copyWithVolScaling(), getReactants(), operator()(), rescaleVolume(), and setReactants().