ultimatepp/bazaar/STEM4U/Sundials.h
koldo 38a0671bcb STEM4U: Sundials renamed
git-svn-id: svn://ultimatepp.org/upp/trunk@14678 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2020-07-12 14:28:30 +00:00

23 lines
1.5 KiB
C++

#ifndef _STEM4U_Sundials_h_
#define _STEM4U_Sundials_h_
namespace Upp {
void SolveDAE(const Eigen::VectorXd &y, const Eigen::VectorXd &dy, double dt, double maxt, Upp::Array<Eigen::VectorXd> &res,
Function <bool(double t, Eigen::Index iiter, const double y[], const double dy[], double residual[])>Residual, int numZero = 0,
Function <bool(double t, Eigen::Index iiter, const double y[], const double dy[], double residual[])>ResidualZero = Null);
void SolveDAE(const Eigen::VectorXd &y, const Eigen::VectorXd &dy, double dt, double maxt,
Upp::Array<Eigen::VectorXd> &res, Upp::Array<Eigen::VectorXd> &dres,
Function <bool(double t, Eigen::Index iiter, const double y[], const double dy[], double residual[])>Residual, int numZero = 0,
Function <bool(double t, Eigen::Index iiter, const double y[], const double dy[], double residual[])>ResidualZero = Null);
void SolveDAE(const double y[], const double dy[], int numEq, double dt, double maxt,
Function <bool(double t, Eigen::Index iiter, const double y[], const double dy[], double residual[])>Residual, int numZero = 0,
Function <bool(double t, Eigen::Index iiter, const double y[], const double dy[], double residual[])>ResidualZero = Null,
Function <bool(double t, Eigen::Index iiter, const double y[], const double dy[], bool isZero, int *whichZero)>OnIteration = Null);
void SolveNonLinearEquationsSun(double y[], int numEq,
Function <bool(const double b[], double residuals[])> Residual, int constraints[] = nullptr);
}
#endif