5 #ifndef ROADRUNNER_SENSITIVITIES_H
6 #define ROADRUNNER_SENSITIVITIES_H
10 #include "SensitivitySolver.h"
11 #include <unordered_map>
16 #include "nvector/nvector_serial.h"
20 using ParameterMap = std::unordered_map<std::string, double>;
22 class CVODEIntegrator;
42 double integrate(
double tStart,
double hstep)
override;
58 std::string
getName()
const override;
68 std::string
getHint()
const override;
79 std::string
toRepr()
const override;
81 void loadConfigSettings();
83 std::string
toString()
const override;
154 std::vector<std::string> params = std::vector<std::string>(),
155 std::vector<std::string> species = std::vector<std::string>(),
158 void setValue(
const std::string &key,
Setting val)
override;
168 std::vector<double>
p;
219 std::unique_ptr<CVODEIntegrator> cvodeIntegrator =
nullptr;
221 void constructorOperations();
233 void setDefaultWhichParameters();
248 bool usingDefaultWhichParameters =
true;
260 bool usingUseWhichParametersFromConstructor =
false;
265 SUNNonlinearSolver NLSsens =
nullptr;
270 N_Vector *mSensitivityMatrix =
nullptr;
275 int mSensitivityMatrixSize = 0;
281 bool stateVectorVariables =
false;
286 std::vector<std::string> getParameterNamesFromPlist();
291 std::vector<double> getParameterValuesFromPlist();
293 friend int FFSDyDtFcn(realtype time, N_Vector cv_y, N_Vector cv_ydot,
void *userData);
295 friend int FFSRootFcn(realtype time, N_Vector y_vector, realtype *gout,
void *user_data);
Contains the RoadRunner CVODE integrator interface.
LLVM executable model interface.
Base class for all code generation systems; allows compiling and evaluating the model.
Definition: rrExecutableModel.h:118
Time based sensivitity solver.
Definition: ForwardSensitivitySolver.h:31
ParameterMap globalParameterMap
a map containing model parameter names to values
Definition: ForwardSensitivitySolver.h:191
std::string getName() const override
Get the name of this solver.
Definition: ForwardSensitivitySolver.cpp:436
std::string toString() const override
Return a std::string representation of the solver.
Definition: ForwardSensitivitySolver.cpp:452
Matrix3D< double, double > solveSensitivities(double start, double stop, int num, std::vector< std::string > params=std::vector< std::string >(), std::vector< std::string > species=std::vector< std::string >(), int k=0) override
simulate a timeseries with sensitivities from start to step with num data points.
Definition: ForwardSensitivitySolver.cpp:638
double integrate(double tStart, double hstep) override
integrate the model from t0 to t0 + hstep.
Definition: ForwardSensitivitySolver.cpp:165
std::vector< std::string > whichParameters
which parameters to get sensitivities for, as strings
Definition: ForwardSensitivitySolver.h:186
void resetSettings() override
resets all settings back to default values
Definition: ForwardSensitivitySolver.cpp:467
void create()
instantiate the code necessary to use cvodes
Definition: ForwardSensitivitySolver.cpp:188
N_Vector * getSensitivityNVectorPtr()
retuns pointer to the state vector used by sundials for storing sensitivity matrix.
Definition: ForwardSensitivitySolver.cpp:568
std::vector< double > getModelParametersAsVector()
return a std::vector<double> of model parameters in the order they appear in the model.
Definition: ForwardSensitivitySolver.cpp:521
std::string getHint() const override
Get a (user-readable) hint for this solver.
Definition: ForwardSensitivitySolver.cpp:444
rr::Matrix< double > getSensitivityMatrix(int k=0) override
get current values of sensitivities of model variables to parameters.
Definition: ForwardSensitivitySolver.cpp:572
int Np
number of global parameters in the model
Definition: ForwardSensitivitySolver.h:196
void freeSundialsMemory()
free sundials memory associated with sensitivities
Definition: ForwardSensitivitySolver.cpp:174
void syncWithModel(ExecutableModel *executableModel) override
Called whenever a new model is loaded to allow integrator to reset internal state.
Definition: ForwardSensitivitySolver.cpp:414
int numModelVariables
the number of state variables in the model
Definition: ForwardSensitivitySolver.h:207
std::vector< int > plist
which parameters to get sensitivity for as int?
Definition: ForwardSensitivitySolver.h:181
std::string toRepr() const override
Return std::string representation a la Python repr method.
Definition: ForwardSensitivitySolver.cpp:461
int Ns
number of parameters we want to find sensitivities for
Definition: ForwardSensitivitySolver.h:201
std::string getDescription() const override
Get the description of this solver.
Definition: ForwardSensitivitySolver.cpp:440
std::vector< std::string > getGlobalParameterNames()
returns a vector of global parameter names extracted from the model
Definition: ForwardSensitivitySolver.cpp:487
std::vector< double > p
parameters in the model as a member variable which enables passing the underlying data pointer to sun...
Definition: ForwardSensitivitySolver.h:168
std::vector< std::string > getVariableNames()
get a vector of variable names in the order that they appear in the model.
Definition: ForwardSensitivitySolver.cpp:496
N_Vector getStateVector()
retuns pointer to the state vector used by sundials for solving ODE.
Definition: ForwardSensitivitySolver.cpp:564
Solver * construct(ExecutableModel *executableModel) const override
Constructs a new Solver of a given type.
Definition: ForwardSensitivitySolver.cpp:448
void deducePlist()
returns the indexes of parameters that user wants sensitivities for, based off of whichParameters.
Definition: ForwardSensitivitySolver.cpp:537
ParameterMap getModelParametersAsMap()
get global parameters as an unordered map, strings as keys and parameter values as values
Definition: ForwardSensitivitySolver.cpp:505
std::vector< double > pbar
scaling factors.
Definition: ForwardSensitivitySolver.h:175
A basic local 3D version of the Matrix class, based on initializer_list.
Definition: Matrix3D.h:17
A basic local matrix class, based on the libstruct version.
Definition: Matrix.h:18
Store a roadrunner option (or setting) as a Variant type.
Definition: Setting.h:78
Base class for all integrators and steady state solvers.
Definition: Solver.h:39
generic interface for sensitivity solvers that integrate the model and compute sensitivities at each ...
Definition: SensitivitySolver.h:42