Cantera  2.0
Public Member Functions | Protected Attributes | List of all members
ResidEval Class Referenceabstract

Virtual base class for DAE residual function evaluators. More...

#include <ResidEval.h>

Inheritance diagram for ResidEval:
[legend]

Public Member Functions

virtual void constrain (const int k, const int flag)
 Constrain solution component k.
 
int constraint (const int k) const
 
virtual void initSizes ()
 Initialization function.
 
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.
 
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.
 
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 the solution and derivative vectors with the initial conditions at initial time t0.
 
virtual int nEquations () const =0
 Return the number of equations in the equation system.
 
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.
 
int nparams () const
 Return the number of parameters in the calculation.
 

Protected Attributes

std::vector< int > m_alg
 Mapping vector that stores whether a degree of freedom is a DAE or not.
 
std::map< int, int > m_constrain
 

Detailed Description

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.

Member Function Documentation

virtual void constrain ( const int  k,
const int  flag 
)
inlinevirtual

Constrain solution component k.

Possible values for 'flag' are:

  • c_NONE no constraint
  • c_GE_ZERO >= 0
  • c_GT_ZERO > 0
  • c_LE_ZERO <= 0
  • c_LT_ZERO < 0

Definition at line 48 of file ResidEval.h.

virtual void initSizes ( )
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().

virtual void setAlgebraic ( const int  k)
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.

virtual int eval ( const doublereal  t,
const doublereal *const  y,
const doublereal *const  ydot,
doublereal *const  r 
)
inlinevirtual

Evaluate the residual function.

Called by the integrator.

Parameters
ttime. (input)
ysolution vector. (input)
ydotrate of change of solution vector. (input)
rresidual vector (output)

Reimplemented in ResidJacEval.

Definition at line 90 of file ResidEval.h.

virtual int getInitialConditions ( const doublereal  t0,
doublereal *const  y,
doublereal *const  ydot 
)
inlinevirtual

Fill the solution and derivative vectors with the initial conditions at initial time t0.

Returns
1 Everything is fine 0 or neg Something went wrong

Reimplemented in ResidJacEval.

Definition at line 118 of file ResidEval.h.

References ResidEval::initSizes().

Referenced by solveProb::solve().

virtual int nEquations ( ) const
pure virtual

Return the number of equations in the equation system.

Implemented in ResidJacEval.

Referenced by ResidEval::initSizes(), solveProb::solveProb(), and ResidEval::writeSolution().

virtual void writeSolution ( int  ievent,
const double  time,
const double  deltaT,
const int  time_step_num,
const double *  y,
const double *  ydot 
)
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 134 of file ResidEval.h.

References ResidEval::nEquations().

int nparams ( ) const
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 159 of file ResidEval.h.

Member Data Documentation

std::vector<int> m_alg
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 170 of file ResidEval.h.

Referenced by ResidEval::initSizes(), and ResidEval::setAlgebraic().


The documentation for this class was generated from the following file: