13 ResidJacEval::ResidJacEval(doublereal atol) :
21 "To be removed after Cantera 2.3.");
28 "To be removed after Cantera 2.3.");
33 ResidEval::operator=(right);
56 "atol must be greater than zero");
61 doublereal*
const ydot)
63 for (
int i = 0; i <
neq_; i++) {
67 for (
int i = 0; i <
neq_; i++) {
75 const doublereal deltaT,
const doublereal* y,
76 const doublereal* ydot)
81 const doublereal* y,
const doublereal* ydot)
87 const doublereal delta_t,
89 const doublereal* ydot)
95 const doublereal*
const ySoln,
96 const doublereal*
const ySolnDot,
97 doublereal*
const deltaYSoln,
98 const doublereal*
const solnWeights)
101 for (
int i = 0; i <
neq_; i++) {
102 deltaYSoln[i] =
m_atol + fabs(1.0E-6 * ySoln[i]);
105 for (
int i = 0; i <
neq_; i++) {
106 deltaYSoln[i] = std::max(1.0E-2 * solnWeights[i], 1.0E-6 * fabs(ySoln[i]));
113 const doublereal*
const ysoln,
114 const doublereal*
const ysolnOld,
115 doublereal*
const ysolnScales)
117 if (ysolnScales && ysolnScales[0] == 0.0) {
118 for (
int i = 0; i <
neq_; i++) {
119 ysolnScales[i] = 1.0;
135 const doublereal delta_t,
136 const doublereal*
const y,
137 const doublereal*
const ydot)
143 doublereal*
const rhs)
149 const doublereal* y,
const doublereal* ydot,
150 doublereal*
const resid,
152 const int id_x,
const doublereal delta_x)
154 throw CanteraError(
"ResidJacEval::evalResidNJ()",
"Not implemented\n");
161 double deltaT = -1.0;
166 doublereal cj,
const doublereal*
const y,
168 doublereal*
const resid)
170 doublereal*
const* jac_colPts = J.colPts();
171 return evalJacobianDP(t, delta_t, cj, y, ydot, jac_colPts, resid);
175 const doublereal c_j,
176 const doublereal*
const y,
177 const doublereal*
const ydot,
178 doublereal*
const* jac_colPts,
179 doublereal*
const resid)
181 throw CanteraError(
"ResidJacEval::evalJacobianDP()",
"Not implemented\n");
virtual int evalJacobianDP(const doublereal t, const doublereal delta_t, doublereal cj, const doublereal *const y, const doublereal *const ydot, doublereal *const *jacobianColPts, doublereal *const resid)
Calculate an analytical Jacobian and the residual at the current time and values. ...
virtual void user_out2(const int ifunc, const doublereal t, const doublereal delta_t, const doublereal *const y, const doublereal *const ydot)
This function may be used to create output at various points in the execution of an application...
virtual int evalResidNJ(const doublereal t, const doublereal delta_t, const doublereal *const y, const doublereal *const ydot, doublereal *const resid, const ResidEval_Type_Enum evalType=Base_ResidEval, const int id_x=-1, const doublereal delta_x=0.0)
Evaluate the residual function.
virtual ResidJacEval * duplMyselfAsResidJacEval() const
Duplication routine for objects derived from residJacEval.
int neq_
Number of equations.
virtual int eval(const doublereal t, const doublereal *const y, const doublereal *const ydot, doublereal *const r)
Evaluate the residual function.
This file contains definitions of terms that are used in internal routines and are unlikely to need m...
void warn_deprecated(const std::string &method, const std::string &extra)
Print a warning indicating that method is deprecated.
virtual int getInitialConditions(const doublereal t0, doublereal *const y, doublereal *const ydot)
Fill in the initial conditions.
ResidJacEval(doublereal atol=1.0e-13)
Default constructor.
virtual void user_out(const int ifunc, const doublereal t, const doublereal *y, const doublereal *ydot)
This function may be used to create output at various points in the execution of an application...
ResidEval_Type_Enum
Differentiates the type of residual evaluations according to functionality.
Wrappers for the function evaluators for Nonlinear solvers and Time steppers.
virtual int nEquations() const
Return the number of equations in the equation system.
virtual int calcDeltaSolnVariables(const doublereal t, const doublereal *const y, const doublereal *const ydot, doublereal *const delta_y, const doublereal *const solnWeights=0)
Return a vector of delta y's for calculation of the numerical Jacobian.
virtual int matrixConditioning(doublereal *const matrix, const int nrows, doublereal *const rhs)
Multiply the matrix by another matrix that leads to better conditioning.
virtual int evalJacobian(const doublereal t, const doublereal delta_t, doublereal cj, const doublereal *const y, const doublereal *const ydot, DenseMatrix &J, doublereal *const resid)
Calculate an analytical Jacobian and the residual at the current time and values. ...
Dense, Square (not sparse) matrices.
doublereal m_atol
constant value of atol
Base class for exceptions thrown by Cantera classes.
virtual int evalTimeTrackingEqns(const doublereal t, const doublereal delta_t, const doublereal *const y, const doublereal *const ydot)
Evaluate the time tracking equations, if any.
virtual void calcSolnScales(const doublereal t, const doublereal *const y, const doublereal *const y_old, doublereal *const yScales)
Returns a vector of column scale factors that can be used to column scale Jacobians.
ResidJacEval & operator=(const ResidJacEval &right)
virtual doublereal filterSolnPrediction(const doublereal t, doublereal *const y)
Filter the solution predictions.
Namespace for the Cantera kernel.
virtual bool evalStoppingCritera(const doublereal t, const doublereal delta_t, const doublereal *const y, const doublereal *const ydot)
Evaluate any stopping criteria other than a final time limit.
void setAtol(doublereal atol)
Set a global value of the absolute tolerance.
virtual doublereal filterNewStep(const doublereal t, const doublereal *const ybase, doublereal *const step)
Filter the solution predictions.
A class for full (non-sparse) matrices with Fortran-compatible data storage, which adds matrix operat...