roadrunner  2.6.0
Fast simulator for SBML models
Public Attributes | List of all members
SModelData Struct Reference

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
 

Detailed Description

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.

See also
ExecutableModel.h

Member Data Documentation

◆ boundarySpeciesCompartments

unsigned* SModelData::boundarySpeciesCompartments

compartment index for each boundary species, e.g.

the volume of the i'th species is md->compartmentVolumes[md->boundarySpeciesCompartments[i]]

◆ floatingSpeciesCompartments

unsigned* SModelData::floatingSpeciesCompartments

compartment index for each floating species, e.g.

the volume of the i'th species is md->compartmentVolumes[md->floatingSpeciesCompartments[i]]

◆ localParameters

double* SModelData::localParameters

All local parameters are stored in this array.

This has length sum(localParameterNum).

◆ localParametersNum

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.

◆ localParametersOffsets

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.

◆ numBoundarySpecies

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%

◆ numCompartments

unsigned SModelData::numCompartments

number of compartments, and compartment volumes.

units: volume

◆ numDependentSpecies

unsigned SModelData::numDependentSpecies

number of linerly dependent rows in the stoichiometry matrix.

numIndependentVariables + numDependentVariables had better be equal to numFloatingSpecies

◆ 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.

◆ numReactions

unsigned SModelData::numReactions

number of reactions, same as ratesSize.

These are the calcuated reaction rates, not the species rates.

◆ rateRuleRates

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.

◆ rateRuleValues

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.


The documentation for this struct was generated from the following file: