roadrunner
2.6.0
Fast simulator for SBML models
|
A data structure that is that allows data to be exchanged with running SBML models. More...
#include <rrModelData.h>
Public Attributes | |
double | time |
current time. | |
unsigned | numIndependentSpecies |
number of linearly independent rows in the stochiometry matrix. | |
unsigned | numDependentSpecies |
number of linerly dependent rows in the stoichiometry matrix. More... | |
double * | dependentSpeciesConservedSums |
unsigned | numGlobalParameters |
number of global parameters | |
double * | globalParameters |
unsigned | numReactions |
number of reactions, same as ratesSize. More... | |
double * | reactionRates |
unsigned | numRateRules |
double * | rateRuleValues |
All of the elelments which have a rate rule are stored here. More... | |
double * | rateRuleRates |
the rate of change of all elements who's dynamics are determined by rate rules. More... | |
unsigned * | localParametersOffsets |
LLVM specific C version does not support local parameters This is the offset, or starting index of the local parameters for reaction i. More... | |
unsigned * | localParametersNum |
the number of local parameters for each reaction, so legnth is numReactions. More... | |
double * | localParameters |
All local parameters are stored in this array. More... | |
unsigned | numFloatingSpecies |
The total ammounts of the floating species, i.e. More... | |
double * | floatingSpeciesConcentrations |
number of floating species and floating species concentrations. | |
double * | floatingSpeciesInitConcentrations |
initial concentration values for floating species. | |
double * | floatingSpeciesAmountRates |
amount rates of change for floating species. | |
double * | floatingSpeciesAmounts |
The total amount of a species in a compartment. | |
unsigned * | floatingSpeciesCompartments |
compartment index for each floating species, e.g. More... | |
unsigned | numBoundarySpecies |
number of boundary species and boundary species concentrations. More... | |
double * | boundarySpeciesConcentrations |
double * | boundarySpeciesAmounts |
unsigned * | boundarySpeciesCompartments |
compartment index for each boundary species, e.g. More... | |
unsigned | numCompartments |
number of compartments, and compartment volumes. More... | |
double * | compartmentVolumes |
unsigned | numEvents |
unsigned | eventTypeSize |
bool * | eventType |
unsigned | eventPersistentTypeSize |
bool * | eventPersistentType |
unsigned | eventTestsSize |
double * | eventTests |
unsigned | eventPrioritiesSize |
double * | eventPriorities |
unsigned | eventStatusArraySize |
bool * | eventStatusArray |
unsigned | previousEventStatusArraySize |
bool * | previousEventStatusArray |
EventDelayHandler * | eventDelays |
EventAssignmentHandler * | eventAssignments |
ComputeEventAssignmentHandler * | computeEventAssignments |
PerformEventAssignmentHandler * | performEventAssignments |
char * | modelName |
model name | |
unsigned | srSize |
C species references, not working correctly... | |
double * | sr |
A data structure that is that allows data to be exchanged with running SBML models.
In the case of CExecutableModels, A pointer to this struct is given to the compiled shared library, and the C code there modifies the buffers of this structure.
There are some functions in ExecutableModel.h that manage ModelData memory. These would have made more sense here, but in order to prevent any issues with generated code interacting with them, they were placed there.
Basic Nomencalture Compartments: A well stirred compartment which contains one or more species. the volume of a compartment can change durring the course of a simulation.
Floating Species: these are chemical species who's values (ammount / concentration) change over time.
Boundary Species: chemical species that who's values are fixed to their initial conditions, these function as boundary conditions.
unsigned* SModelData::boundarySpeciesCompartments |
compartment index for each boundary species, e.g.
the volume of the i'th species is md->compartmentVolumes[md->boundarySpeciesCompartments[i]]
unsigned* SModelData::floatingSpeciesCompartments |
compartment index for each floating species, e.g.
the volume of the i'th species is md->compartmentVolumes[md->floatingSpeciesCompartments[i]]
double* SModelData::localParameters |
All local parameters are stored in this array.
This has length sum(localParameterNum).
unsigned* SModelData::localParametersNum |
the number of local parameters for each reaction, so legnth is numReactions.
This is an array of counts, hence it is named differently than the rest of the num*** fields.
unsigned* SModelData::localParametersOffsets |
LLVM specific C version does not support local parameters This is the offset, or starting index of the local parameters for reaction i.
Length is numReactions.
Rationale: It is simple more effecient to store all the local parameters in a single dimensional array with offsets, as the offsets can be computed at compile time, whereas if we used a array of arrays, it would require an additional memory access to determine the location of the parameter.
unsigned SModelData::numBoundarySpecies |
number of boundary species and boundary species concentrations.
units: either Mass Percent = (Mass of Solute) / (Mass of Solution) x 100% Volume Percent= (Volume of Solute) / (Volume of Solution) x 100% Mass/Volume Percent= (Mass of Solute) / (Volume of Solution) x 100%
unsigned SModelData::numCompartments |
number of compartments, and compartment volumes.
units: volume
unsigned SModelData::numDependentSpecies |
number of linerly dependent rows in the stoichiometry matrix.
numIndependentVariables + numDependentVariables had better be equal to numFloatingSpecies
unsigned SModelData::numFloatingSpecies |
The total ammounts of the floating species, i.e.
concentration * compartment volume. Everything named floatingSpecies??? has length numFloatingSpecies.
Note, the floating species consist of BOTH independent AND dependent species. Indexes [0,numIndpendentSpecies) values are the indenpendent species, and the [numIndependentSpecies,numIndendentSpecies+numDependentSpecies) contain the dependent species.
unsigned SModelData::numReactions |
number of reactions, same as ratesSize.
These are the calcuated reaction rates, not the species rates.
double* SModelData::rateRuleRates |
the rate of change of all elements who's dynamics are determined by rate rules.
In the LLVM version, this is just a pointer to a data block owned by the integrator. In the C version, lots of strange stuff goes on here, but the C version does allocate this block, and do all sorts of copying back and forth between the integrator's rate rule block.
double* SModelData::rateRuleValues |
All of the elelments which have a rate rule are stored here.
As the integrator runs, this pointer can simply point to an offset in the integrator's state std::vector.
Only used in the LLVM version.