Cantera
2.1.2
|
Virtual base class for DAE residual function evaluators. More...
#include <ResidEval.h>
Public Member Functions | |
virtual void | constrain (const int k, const int flag) |
Constrain solution component k. More... | |
int | constraint (const int k) const |
virtual void | initSizes () |
Initialization function. More... | |
virtual void | setAlgebraic (const int k) |
Specify that solution component k is purely algebraic - that is, the derivative of this component does not appear in the residual function. More... | |
virtual bool | isAlgebraic (const int k) |
virtual int | eval (const doublereal t, const doublereal *const y, const doublereal *const ydot, doublereal *const r) |
Evaluate the residual function. More... | |
virtual int | evalSS (const doublereal t, const doublereal *const y, doublereal *const r) |
virtual int | evalSimpleTD (const doublereal t, const doublereal *const y, const doublereal *const yold, doublereal deltaT, doublereal *const r) |
virtual int | getInitialConditions (const doublereal t0, doublereal *const y, doublereal *const ydot) |
Fill in the initial conditions. More... | |
virtual int | nEquations () const =0 |
Return the number of equations in the equation system. More... | |
virtual void | writeSolution (int ievent, const double time, const double deltaT, const int time_step_num, const double *y, const double *ydot) |
Write out to a file or to standard output the current solution. More... | |
int | nparams () const |
Return the number of parameters in the calculation. More... | |
Protected Attributes | |
std::vector< int > | m_alg |
Mapping vector that stores whether a degree of freedom is a DAE or not. More... | |
std::map< int, int > | m_constrain |
Virtual base class for DAE residual function evaluators.
Classes derived from ResidEval evaluate the residual function
\[ \vec{F}(t,\vec{y}, \vec{y^\prime}) \]
The DAE solver attempts to find a solution y(t) such that F = 0.
Definition at line 33 of file ResidEval.h.
|
inlinevirtual |
Constrain solution component k.
Possible values for 'flag' are:
Definition at line 48 of file ResidEval.h.
|
inlinevirtual |
Initialization function.
Definition at line 60 of file ResidEval.h.
References ResidEval::m_alg, and ResidEval::nEquations().
Referenced by ResidEval::getInitialConditions(), and ResidEval::setAlgebraic().
|
inlinevirtual |
Specify that solution component k is purely algebraic - that is, the derivative of this component does not appear in the residual function.
Definition at line 70 of file ResidEval.h.
References ResidEval::initSizes(), and ResidEval::m_alg.
|
inlinevirtual |
Evaluate the residual function.
Called by the integrator.
t | time. (input) |
y | solution vector. (input) |
ydot | rate of change of solution vector. (input) |
r | residual vector (output) |
Reimplemented in ResidJacEval.
Definition at line 88 of file ResidEval.h.
|
inlinevirtual |
Fill in the initial conditions.
Values for both the solution and the value of ydot may be provided.
[in] | t0 | Time |
[out] | y | Solution vector |
[out] | ydot | Rate of change of solution vector. |
Reimplemented in ResidJacEval.
Definition at line 122 of file ResidEval.h.
References ResidEval::initSizes().
Referenced by solveProb::solve().
|
pure virtual |
Return the number of equations in the equation system.
Implemented in ResidJacEval.
Referenced by ResidEval::initSizes(), solveProb::solveProb(), and ResidEval::writeSolution().
|
inlinevirtual |
Write out to a file or to standard output the current solution.
ievent is a description of the event that caused this function to be called.
Definition at line 138 of file ResidEval.h.
References ResidEval::nEquations().
|
inline |
Return the number of parameters in the calculation.
This is the number of parameters in the sensitivity calculation. We have set this to zero and have included it for later expansion
Definition at line 163 of file ResidEval.h.
|
protected |
Mapping vector that stores whether a degree of freedom is a DAE or not.
The first index is the equation number. The second index is 1 if it is a DAE, and zero if it is not.
Definition at line 174 of file ResidEval.h.
Referenced by ResidEval::initSizes(), and ResidEval::setAlgebraic().