Scine::Kinetx
3.0.0
Kinetic models for reaction networks.
|
Numerical integration according to the cash-karp-5 algorithm. This algorithm automatically generates the time step. (Ref. https://arxiv.org/pdf/1309.2710.pdf, https://doi.org/10.1016/j.jcp.2013.09.025) More...
#include <CashKarp5.h>
Public Member Functions | |
CashKarp5 (Network &net) | |
Constructor. More... | |
void | propagateY (Eigen::VectorXd &y, double &t, double &dt) const overridefinal |
Propagate the concentration. More... | |
Public Member Functions inherited from Scine::Kinetx::RungeKutta | |
RungeKutta (Network &net) | |
Constructor. More... | |
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. More... | |
Public Member Functions inherited from Scine::Kinetx::IntegratorBase | |
IntegratorBase (Network &net) | |
Constructor. More... | |
virtual Eigen::MatrixXd | runIntegration (Eigen::VectorXd y, double tStart, double dt, Eigen::VectorXd &rFlux, Eigen::VectorXd &rForwardFlux, Eigen::VectorXd &rBackwardFlux, const unsigned int batchInterval=1000, const unsigned int nBatches=100000, const double convergenceConcentrationChange=1e-10) |
Run the numerical integration until a maximum number of steps or convergence is reached. More... | |
virtual Eigen::MatrixXd | runIntegrationByTime (Eigen::VectorXd y, double tStart, double dt, Eigen::VectorXd &rFlux, Eigen::VectorXd &rForwardFlux, Eigen::VectorXd &rBackwardFlux, const double tMax, const unsigned int batchInterval=1000, const double convergenceConcentrationChange=1e-10) |
Run the numerical integration until a maximum time or convergence is reached. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from Scine::Kinetx::IntegratorBase | |
void | trackVertexAndEdgeFluxes (const Eigen::VectorXd &y, const Eigen::VectorXd &yInitial, Eigen::VectorXd &yFlux, Eigen::VectorXd &rFlux, Eigen::VectorXd &rForwardFlux, Eigen::VectorXd &rBackwardFlux, const double &dt) const |
Keep track on the vertex and edge fluxes. More... | |
Eigen::VectorXd | g (const Eigen::VectorXd &concentrations) const |
Calculate the concentration gradient. More... | |
Eigen::VectorXd | gFlux (const Eigen::VectorXd &concentrationsT0, const Eigen::VectorXd &concentrationsT1, Eigen::VectorXd &flux, Eigen::VectorXd &forwardFlux, Eigen::VectorXd &backwardFlux) const |
Calculate the concentration flux gradient. More... | |
Eigen::MatrixXd | fFlux (const Eigen::VectorXd &concentrationsT0, const Eigen::VectorXd &concentrationsT1) const |
Calculate the total edge flux gradient. More... | |
std::tuple< Eigen::MatrixXd, Eigen::MatrixXd, Eigen::MatrixXd > | fFluxDirected (const Eigen::VectorXd &concentrationsT0, const Eigen::VectorXd &concentrationsT1) const |
Calculate the edge flux while keeping track on the direction. More... | |
Eigen::MatrixXd | f (const Eigen::VectorXd &concentrations) const |
std::pair< Eigen::MatrixXd, Eigen::MatrixXd > | fDirected (const Eigen::VectorXd &concentrations) const |
The same as f(..) but keeping track on the directions. More... | |
Eigen::SparseMatrix< double > | jacobi (const Eigen::VectorXd &concentrations) const |
void | printHeader (const Eigen::VectorXd &y, const double dt, const double t) |
bool | printTimeAndCheckConvergenceStep (const Eigen::VectorXd &y, const Eigen::VectorXd &yOld, Eigen::VectorXd &yMax, const unsigned int batchInterval, const unsigned int iBatch, const double dt, const double t, const double convergenceConcentrationChange) |
Static Protected Member Functions inherited from Scine::Kinetx::IntegratorBase | |
static double | fast_pow (const double &x, const int &n) |
Protected Attributes inherited from Scine::Kinetx::IntegratorBase | |
Network & | _net |
Numerical integration according to the cash-karp-5 algorithm. This algorithm automatically generates the time step. (Ref. https://arxiv.org/pdf/1309.2710.pdf, https://doi.org/10.1016/j.jcp.2013.09.025)
Scine::Kinetx::CashKarp5::CashKarp5 | ( | Network & | net | ) |
Constructor.
net | The network of reactions. |
|
finaloverridevirtual |
Propagate the concentration.
concentrations | The concentration. |
t | The current time. |
dt | The time increment. |
Implements Scine::Kinetx::RungeKutta.