Scine::Kinetx  3.0.0
Kinetic models for reaction networks.
 All Classes Files Functions Variables Enumerations Pages
Cvode.h
Go to the documentation of this file.
1 
7 #ifndef KINETX_CVODE_H_
8 #define KINETX_CVODE_H_
9 
11 #include "Kinetx/Network.h"
12 #include <memory>
13 
14 namespace Scine {
15 namespace Kinetx {
19 class Cvode : public Integrator {
20  public:
25  Cvode(Network& net);
26 
28  ~Cvode();
29 
30  Eigen::MatrixXd runIntegrationByTime(Eigen::VectorXd y, double t, double dt, Eigen::VectorXd& rFlux,
31  Eigen::VectorXd& rForwardFlux, Eigen::VectorXd& rBackwardFlux, const double tMax,
32  const unsigned int batchInterval, const double convergenceConcentrationChange);
33 
34  Eigen::MatrixXd runIntegration(Eigen::VectorXd y, double t, double dt, Eigen::VectorXd& rFlux, Eigen::VectorXd& rForwardFlux,
35  Eigen::VectorXd& rBackwardFlux, const unsigned int batchInterval,
36  const unsigned int nBatches, const double convergenceConcentrationChange);
37 
38  void propagate(Eigen::VectorXd& concentrations, Eigen::VectorXd& yFlux, Eigen::VectorXd& rFlux,
39  Eigen::VectorXd& rForwardFlux, Eigen::VectorXd& rBackwardFlux, double& t, double& dt) const;
40 
41  private:
42  class Impl;
43  std::unique_ptr<Impl> _pimpl;
44 };
45 
46 } /* namespace Kinetx */
47 } /* namespace Scine */
48 
49 #endif // KINETX_CVODE_H_
Eigen::MatrixXd runIntegrationByTime(Eigen::VectorXd y, double t, double dt, Eigen::VectorXd &rFlux, Eigen::VectorXd &rForwardFlux, Eigen::VectorXd &rBackwardFlux, const double tMax, const unsigned int batchInterval, const double convergenceConcentrationChange)
Run the numerical integration until a maximum time or convergence is reached.
Definition: Cvode.cpp:165
Sundials implementation called CVODE.
Definition: Cvode.h:19
Definition: Cvode.cpp:50
Definition: Network.h:17
Cvode(Network &net)
Constructor.
Definition: Cvode.cpp:160
void propagate(Eigen::VectorXd &concentrations, Eigen::VectorXd &yFlux, Eigen::VectorXd &rFlux, Eigen::VectorXd &rForwardFlux, Eigen::VectorXd &rBackwardFlux, double &t, double &dt) const
Propagate the numerical integration by one time step.
Definition: Cvode.cpp:179
~Cvode()
Destructor.
Base class for all Runge-Kutta methods/implementations.
Definition: Integrator.h:17
Eigen::MatrixXd runIntegration(Eigen::VectorXd y, double t, double dt, Eigen::VectorXd &rFlux, Eigen::VectorXd &rForwardFlux, Eigen::VectorXd &rBackwardFlux, const unsigned int batchInterval, const unsigned int nBatches, const double convergenceConcentrationChange)
Run the numerical integration until a maximum number of steps or convergence is reached.
Definition: Cvode.cpp:172