Base class for representing a system of differential-algebraic equations and solving for its steady-state response. More...
#include <SteadyStateSystem.h>
Base class for representing a system of differential-algebraic equations and solving for its steady-state response.
Definition at line 40 of file SteadyStateSystem.h.
Public Member Functions | |
| SteadyStateSystem (const SteadyStateSystem &)=delete | |
| SteadyStateSystem & | operator= (const SteadyStateSystem &)=delete |
| virtual void | eval (span< const double > x, span< double > r, double rdt=-1.0, int count=1)=0 |
| Evaluate the residual function. | |
| virtual void | evalJacobian (span< const double > x0)=0 |
| Evaluates the Jacobian at x0 using finite differences. | |
| virtual double | weightedNorm (span< const double > step) const =0 |
Compute the weighted norm of step. | |
| void | setInitialGuess (span< const double > x) |
| Set the initial guess. Should be called before solve(). | |
| void | solve (int loglevel=0) |
| Solve the steady-state problem, taking internal timesteps as necessary until the Newton solver can converge for the steady problem. | |
| void | getState (span< double > x) const |
| Get the converged steady-state solution after calling solve(). | |
| double | ssnorm (span< const double > x, span< double > r) |
| Steady-state max norm (infinity norm) of the residual evaluated using solution x. | |
| double | tsnorm (span< const double > x, span< double > r) |
| Transient max norm (infinity norm) of the residual evaluated using solution x and the current timestep (rdt). | |
| size_t | size () const |
| Total solution vector length;. | |
| virtual void | resize () |
| Call to set the size of internal data structures after first defining the system or if the problem size changes, for example after grid refinement. | |
| size_t | bandwidth () const |
| Jacobian bandwidth. | |
| virtual string | componentName (size_t i) const |
| Get the name of the i-th component of the state vector. | |
| virtual pair< string, string > | componentTableHeader () const |
| Get header lines describing the column names included in a component label. | |
| virtual string | componentTableLabel (size_t i) const |
| Get elements of the component name, aligned with the column headings given by componentTableHeader(). | |
| virtual double | upperBound (size_t i) const =0 |
| Get the upper bound for global component i in the state vector. | |
| virtual double | lowerBound (size_t i) const =0 |
| Get the lower bound for global component i in the state vector. | |
| MultiNewton & | newton () |
| Return a reference to the Newton iterator. | |
| void | setLinearSolver (shared_ptr< SystemJacobian > solver) |
| Set the linear solver used to hold the Jacobian matrix and solve linear systems as part of each Newton iteration. | |
| shared_ptr< SystemJacobian > | linearSolver () const |
| Get the the linear solver being used to hold the Jacobian matrix and solve linear systems as part of each Newton iteration. | |
| double | rdt () const |
| Reciprocal of the time step. | |
| bool | transient () const |
| True if transient mode. | |
| bool | steady () const |
| True if steady mode. | |
| virtual void | initTimeInteg (double dt, span< const double > x) |
| Prepare for time stepping beginning with solution x and timestep dt. | |
| virtual void | setSteadyMode () |
| Prepare to solve the steady-state problem. | |
| vector< int > & | transientMask () |
| Access the vector indicating which equations contain a transient term. | |
| double | timeStep (int nsteps, double dt, span< double > x, span< double > r, int loglevel) |
| Take time steps using Backward Euler. | |
| virtual void | resetBadValues (span< double > x) |
| Reset values such as negative species concentrations. | |
| void | setJacAge (int ss_age, int ts_age=-1) |
| Set the maximum number of steps that can be taken using the same Jacobian before it must be re-evaluated. | |
| void | setInterrupt (Func1 *interrupt) |
| Set a function that will be called every time eval is called. | |
| void | setTimeStepCallback (Func1 *callback) |
| Set a function that will be called after each successful timestep. | |
| void | setJacobianPerturbation (double relative, double absolute, double threshold) |
| Configure perturbations used to evaluate finite difference Jacobian. | |
| virtual void | writeDebugInfo (const string &header_suffix, const string &message, int loglevel, int attempt_counter) |
| Write solver debugging based on the specified log level. | |
| virtual void | clearDebugFile () |
Delete debug output file that may be created by writeDebugInfo() when solving with high loglevel. | |
Solver statistics | |
Per-grid solver statistics, collected after each successful solve on a grid. Times are wall-clock seconds. | |
| const AnyMap & | solverStats () |
| Return solver statistics as a map of per-grid arrays. | |
| virtual void | saveStats () |
| Commit statistics for the current grid into m_stats and reset the staging counters. | |
| virtual void | clearStats () |
| Clear all saved solver statistics and reset the staging counters. | |
| void | recordFactorization (double wallTime) |
| Record wall-clock time [s] spent factorizing the Jacobian. | |
| void | recordLinearSolve (double wallTime) |
| Record wall-clock time [s] spent in a linear solve. | |
| void | factorizeJacobian () |
| Update the transient term of the Jacobian (forming and factorizing \( M = I - \gamma J \)) and record the elapsed wall-clock time as a factorization in the solver statistics. | |
Options | |
| void | setTimeStep (double stepsize, span< const int > tsteps) |
| Set the number of time steps to try when the steady Newton solver is unsuccessful. | |
| void | setMinTimeStep (double tmin) |
| Set the minimum time step allowed during time stepping. | |
| void | setMaxTimeStep (double tmax) |
| Set the maximum time step allowed during time stepping. | |
| void | setTimeStepFactor (double tfactor) |
| Sets a factor by which the time step is reduced if the time stepping fails. | |
| void | setTimeStepGrowthFactor (double tfactor) |
| Set the growth factor used after successful timesteps when the Jacobian is re-used. | |
| double | timeStepGrowthFactor () const |
| Get the successful-step time step growth factor. | |
| void | setTimeStepGrowthStrategy (const string &strategy) |
| Set the strategy used to grow the timestep after a successful step that reuses the current Jacobian. | |
| string | timeStepGrowthStrategy () const |
| Get the configured timestep growth strategy. | |
| void | setMaxTimeStepCount (int nmax) |
| Set the maximum number of timeteps allowed before successful steady-state solve. | |
| int | maxTimeStepCount () const |
| Get the maximum number of timeteps allowed before successful steady-state solve. | |
Protected Types | |
| enum class | TimeStepGrowthStrategy { fixed , steadyNorm , transientResidual , residualRatio , newtonIterations } |
Protected Member Functions | |
| virtual size_t | gridSize () const |
Value reported as grid_points in solver statistics. | |
| void | evalSSJacobian (span< const double > x) |
| Evaluate the steady-state Jacobian, accessible via linearSolver() | |
| double | calculateTimeStepGrowthFactor (span< const double > x_before, span< const double > x_after) |
| Determine the timestep growth factor after a successful step. | |
Static Protected Member Functions | |
| static TimeStepGrowthStrategy | parseTimeStepGrowthStrategy (const string &strategy) |
| static string | timeStepGrowthStrategyName (TimeStepGrowthStrategy strategy) |
Protected Attributes | |
| vector< int > | m_steps = { 10 } |
| Array of number of steps to take after each unsuccessful steady-state solve before re-attempting the steady-state solution. | |
| double | m_tstep = 1.0e-5 |
| Initial timestep. | |
| double | m_tmin = 1e-16 |
| Minimum timestep size. | |
| double | m_tmax = 1e+08 |
| Maximum timestep size. | |
| double | m_tfactor = 0.5 |
| Factor time step is multiplied by if time stepping fails ( < 1 ) | |
| double | m_tstep_growth = 1.5 |
| Growth factor for successful steps that reuse the Jacobian. | |
| TimeStepGrowthStrategy | m_tstep_growth_strategy = TimeStepGrowthStrategy::fixed |
| Selected strategy for successful-step growth. | |
| shared_ptr< vector< double > > | m_state |
| Solution vector. | |
| vector< double > | m_xnew |
| Work array used to hold the residual or the new solution. | |
| vector< double > | m_xlast_ts |
| State vector after the last successful set of time steps. | |
| unique_ptr< MultiNewton > | m_newt |
| Newton iterator. | |
| double | m_rdt = 0.0 |
| Reciprocal of time step. | |
| shared_ptr< SystemJacobian > | m_jac |
| Jacobian evaluator. | |
| bool | m_jac_ok = false |
If true, Jacobian is current. | |
| size_t | m_bw = 0 |
| Jacobian bandwidth. | |
| size_t | m_size = 0 |
| Solution vector size | |
| vector< double > | m_work1 |
| Work arrays used during Jacobian evaluation. | |
| vector< double > | m_work2 |
| vector< int > | m_mask |
| Transient mask. | |
| int | m_ss_jac_age = 20 |
| Maximum age of the Jacobian in steady-state mode. | |
| int | m_ts_jac_age = 20 |
| Maximum age of the Jacobian in time-stepping mode. | |
| int | m_attempt_counter = 0 |
| Counter used to manage the number of states stored in the debug log file generated by writeDebugInfo() | |
| int | m_max_history = 10 |
| Constant that determines the maximum number of states stored in the debug log file generated by writeDebugInfo() | |
| Func1 * | m_interrupt = nullptr |
| Function called at the start of every call to eval. | |
| Func1 * | m_time_step_callback = nullptr |
| User-supplied function called after each successful timestep. | |
| int | m_nsteps = 0 |
| Number of time steps taken in the current call to solve() | |
| int | m_nsteps_max = 500 |
| Maximum number of timesteps allowed per call to solve() | |
| double | m_jacobianThreshold = 0.0 |
| Threshold for ignoring small elements in Jacobian. | |
| double | m_jacobianRelPerturb = 1e-5 |
| Relative perturbation of each component in finite difference Jacobian. | |
| double | m_jacobianAbsPerturb = 1e-10 |
| Absolute perturbation of each component in finite difference Jacobian. | |
Solver-statistics storage | |
| |
| AnyMap | m_stats |
| Committed per-grid statistics. | |
| int | m_nevals = 0 |
| Standalone residual evaluations (not Jacobian fill) | |
| double | m_evaltime = 0.0 |
| Wall time [s] in standalone residual evals. | |
| int | m_factorizations = 0 |
| Jacobian factorizations on the current grid. | |
| double | m_factorTime = 0.0 |
| Wall time [s] factorizing the Jacobian. | |
| int | m_linearSolves = 0 |
| Linear solves on the current grid. | |
| double | m_solveTime = 0.0 |
| Wall time [s] in linear solves. | |
| double | m_gridTime = 0.0 |
| Total wall time [s] solving on the current grid. | |
|
strongprotected |
Definition at line 376 of file SteadyStateSystem.h.
Definition at line 17 of file SteadyStateSystem.cpp.
|
virtual |
Definition at line 24 of file SteadyStateSystem.cpp.
|
pure virtual |
Evaluate the residual function.
| [in] | x | State vector |
| [out] | r | On return, contains the residual vector |
| rdt | Reciprocal of the time step. if omitted, then the internally stored value (accessible using the rdt() method) is used. | |
| count | Set to zero to omit this call from the statistics |
Implemented in OneDim, Sim1D, and SteadyReactorSolver.
|
pure virtual |
Evaluates the Jacobian at x0 using finite differences.
The Jacobian is computed by perturbing each component of x0, evaluating the residual function, and then estimating the partial derivatives numerically using finite differences to determine the corresponding column of the Jacobian.
| x0 | State vector at which to evaluate the Jacobian |
Implemented in OneDim, and SteadyReactorSolver.
|
pure virtual |
Compute the weighted norm of step.
The purpose is to measure the "size" of the step vector \( \Delta x \) in a way that takes into account the relative importance or scale of different solution components. Each component of the step vector is normalized by a weight that depends on both the current magnitude of the solution vector and specified tolerances. This makes the norm dimensionless and scaled appropriately, avoiding issues where some components dominate due to differences in their scales. See OneDim::weightedNorm() for a representative implementation.
Implemented in OneDim, and SteadyReactorSolver.
| void setInitialGuess | ( | span< const double > | x | ) |
Set the initial guess. Should be called before solve().
Definition at line 89 of file SteadyStateSystem.cpp.
| void solve | ( | int | loglevel = 0 | ) |
Solve the steady-state problem, taking internal timesteps as necessary until the Newton solver can converge for the steady problem.
| loglevel | Controls amount of diagnostic output. |
Definition at line 101 of file SteadyStateSystem.cpp.
| void getState | ( | span< double > | x | ) | const |
Get the converged steady-state solution after calling solve().
Definition at line 96 of file SteadyStateSystem.cpp.
| double ssnorm | ( | span< const double > | x, |
| span< double > | r | ||
| ) |
Steady-state max norm (infinity norm) of the residual evaluated using solution x.
On return, array r contains the steady-state residual values.
Definition at line 361 of file SteadyStateSystem.cpp.
| double tsnorm | ( | span< const double > | x, |
| span< double > | r | ||
| ) |
Transient max norm (infinity norm) of the residual evaluated using solution x and the current timestep (rdt).
On return, array r contains the transient residual values.
Definition at line 371 of file SteadyStateSystem.cpp.
|
inline |
Total solution vector length;.
Definition at line 99 of file SteadyStateSystem.h.
|
virtual |
Call to set the size of internal data structures after first defining the system or if the problem size changes, for example after grid refinement.
The m_size variable should be updated before calling this method
Reimplemented in OneDim, and Sim1D.
Definition at line 387 of file SteadyStateSystem.cpp.
|
inline |
Jacobian bandwidth.
Definition at line 110 of file SteadyStateSystem.h.
|
inlinevirtual |
Get the name of the i-th component of the state vector.
Reimplemented in OneDim, and SteadyReactorSolver.
Definition at line 115 of file SteadyStateSystem.h.
|
inlinevirtual |
Get header lines describing the column names included in a component label.
Headings should be aligned with items formatted in the output of componentTableLabel(). Two lines are allowed. If only one is needed, the first line should be blank.
Reimplemented in OneDim.
Definition at line 121 of file SteadyStateSystem.h.
|
inlinevirtual |
Get elements of the component name, aligned with the column headings given by componentTableHeader().
Reimplemented in OneDim.
Definition at line 127 of file SteadyStateSystem.h.
|
pure virtual |
Get the upper bound for global component i in the state vector.
Implemented in OneDim, and SteadyReactorSolver.
|
pure virtual |
Get the lower bound for global component i in the state vector.
Implemented in OneDim, and SteadyReactorSolver.
| MultiNewton & newton | ( | ) |
Return a reference to the Newton iterator.
Definition at line 454 of file SteadyStateSystem.cpp.
| void setLinearSolver | ( | shared_ptr< SystemJacobian > | solver | ) |
Set the linear solver used to hold the Jacobian matrix and solve linear systems as part of each Newton iteration.
Definition at line 403 of file SteadyStateSystem.cpp.
|
inline |
Get the the linear solver being used to hold the Jacobian matrix and solve linear systems as part of each Newton iteration.
Definition at line 144 of file SteadyStateSystem.h.
|
inline |
Return solver statistics as a map of per-grid arrays.
Keys: grid_points, steps, residual_evals, residual_time, jacobian_evals, jacobian_time, factorizations, factor_time, linear_solves, solve_time, total_time.
This method is non-const because it calls saveStats() to flush statistics for the current (possibly not-yet-committed) grid before returning.
An entry whose total_time is 0 corresponds to a grid where the solve attempt failed (threw) before completing; its other timing fields will also be partial.
Definition at line 163 of file SteadyStateSystem.h.
|
virtual |
Commit statistics for the current grid into m_stats and reset the staging counters.
A no-op unless at least one Jacobian evaluation and one residual evaluation have occurred since the last commit.
Definition at line 36 of file SteadyStateSystem.cpp.
|
virtual |
Clear all saved solver statistics and reset the staging counters.
Definition at line 66 of file SteadyStateSystem.cpp.
|
inline |
Record wall-clock time [s] spent factorizing the Jacobian.
Called by the Newton solver.
Definition at line 178 of file SteadyStateSystem.h.
|
inline |
Record wall-clock time [s] spent in a linear solve.
Called by the Newton solver.
Definition at line 185 of file SteadyStateSystem.h.
| void factorizeJacobian | ( | ) |
Update the transient term of the Jacobian (forming and factorizing \( M = I - \gamma J \)) and record the elapsed wall-clock time as a factorization in the solver statistics.
Used at every factorization site so that factor_time accounts for steady and time-stepping factorizations alike.
Definition at line 28 of file SteadyStateSystem.cpp.
|
inline |
Reciprocal of the time step.
Definition at line 199 of file SteadyStateSystem.h.
|
inline |
True if transient mode.
Definition at line 204 of file SteadyStateSystem.h.
|
inline |
True if steady mode.
Definition at line 209 of file SteadyStateSystem.h.
|
virtual |
Prepare for time stepping beginning with solution x and timestep dt.
Reimplemented in OneDim, and SteadyReactorSolver.
Definition at line 421 of file SteadyStateSystem.cpp.
|
virtual |
Prepare to solve the steady-state problem.
After invoking this method, subsequent calls to solve() will solve the steady-state problem. Sets the reciprocal of the time step to zero, and, if it was previously non-zero, signals that a new Jacobian will be needed.
Reimplemented in OneDim.
Definition at line 432 of file SteadyStateSystem.cpp.
|
inline |
Access the vector indicating which equations contain a transient term.
Elements are 1 for equations with a transient terms and 0 otherwise.
Definition at line 224 of file SteadyStateSystem.h.
| double timeStep | ( | int | nsteps, |
| double | dt, | ||
| span< double > | x, | ||
| span< double > | r, | ||
| int | loglevel | ||
| ) |
Take time steps using Backward Euler.
| nsteps | number of steps |
| dt | initial step size |
| x | current solution vector |
| r | solution vector after time stepping |
| loglevel | controls amount of printed diagnostics |
Definition at line 268 of file SteadyStateSystem.cpp.
|
inlinevirtual |
Reset values such as negative species concentrations.
Reimplemented in OneDim, and SteadyReactorSolver.
Definition at line 240 of file SteadyStateSystem.h.
| void setTimeStep | ( | double | stepsize, |
| span< const int > | tsteps | ||
| ) |
Set the number of time steps to try when the steady Newton solver is unsuccessful.
| stepsize | Initial time step size [s] |
| tsteps | A sequence of time step counts to take after subsequent failures of the steady-state solver. The last value in tsteps will be used again after further unsuccessful solution attempts. |
Definition at line 381 of file SteadyStateSystem.cpp.
|
inline |
Set the minimum time step allowed during time stepping.
Definition at line 254 of file SteadyStateSystem.h.
|
inline |
Set the maximum time step allowed during time stepping.
Definition at line 259 of file SteadyStateSystem.h.
|
inline |
Sets a factor by which the time step is reduced if the time stepping fails.
The default value is 0.5.
| tfactor | factor time step is multiplied by if time stepping fails |
Definition at line 267 of file SteadyStateSystem.h.
|
inline |
Set the growth factor used after successful timesteps when the Jacobian is re-used.
This factor is used directly by the fixed-growth strategy, and as the accepted growth factor or upper bound for the other named strategies.
The default value is 1.5, matching historical behavior.
| tfactor | Finite growth factor applied to successful timesteps; must be >= 1.0. |
Definition at line 280 of file SteadyStateSystem.h.
|
inline |
Get the successful-step time step growth factor.
Definition at line 290 of file SteadyStateSystem.h.
| void setTimeStepGrowthStrategy | ( | const string & | strategy | ) |
Set the strategy used to grow the timestep after a successful step that reuses the current Jacobian.
Available options are:
fixed-growth: Always apply timeStepGrowthFactor().steady-norm: Apply timeStepGrowthFactor() only if the steady-state residual norm decreases.transient-residual: Apply timeStepGrowthFactor() only if the transient residual norm decreases.residual-ratio: Scale the growth factor based on transient residual improvement, capped by timeStepGrowthFactor().newton-iterations: Apply timeStepGrowthFactor() only if the most recent Newton solve used at most 3 iterations.The default strategy is fixed-growth, which matches historical behavior.
Definition at line 215 of file SteadyStateSystem.cpp.
| string timeStepGrowthStrategy | ( | ) | const |
Get the configured timestep growth strategy.
Definition at line 220 of file SteadyStateSystem.cpp.
|
inline |
Set the maximum number of timeteps allowed before successful steady-state solve.
Definition at line 315 of file SteadyStateSystem.h.
|
inline |
Get the maximum number of timeteps allowed before successful steady-state solve.
Definition at line 320 of file SteadyStateSystem.h.
| void setJacAge | ( | int | ss_age, |
| int | ts_age = -1 |
||
| ) |
Set the maximum number of steps that can be taken using the same Jacobian before it must be re-evaluated.
| ss_age | Age limit during steady-state mode |
| ts_age | Age limit during time stepping mode. If not specified, the steady-state age is also used during time stepping. |
Definition at line 444 of file SteadyStateSystem.cpp.
|
inline |
Set a function that will be called every time eval is called.
Can be used to provide keyboard interrupt support in the high-level language interfaces.
Definition at line 335 of file SteadyStateSystem.h.
|
inline |
Set a function that will be called after each successful timestep.
The function will be called with the size of the timestep as the argument. Intended to be used for observing solver progress for debugging purposes.
Definition at line 343 of file SteadyStateSystem.h.
|
inline |
Configure perturbations used to evaluate finite difference Jacobian.
| relative | Relative perturbation (multiplied by the absolute value of each component). Default 1.0e-5. |
| absolute | Absolute perturbation (independent of component value). Default 1.0e-10. |
| threshold | Threshold below which to exclude elements from the Jacobian Default 0.0. |
Definition at line 354 of file SteadyStateSystem.h.
|
inlinevirtual |
Write solver debugging based on the specified log level.
Reimplemented in Sim1D, and SteadyReactorSolver.
Definition at line 363 of file SteadyStateSystem.h.
|
inlinevirtual |
Delete debug output file that may be created by writeDebugInfo() when solving with high loglevel.
Reimplemented in Sim1D.
Definition at line 368 of file SteadyStateSystem.h.
|
inlineprotectedvirtual |
Value reported as grid_points in solver statistics.
Overridden by subclasses with a meaningful grid-point count; defaults to the total number of unknowns.
Reimplemented in OneDim.
Definition at line 374 of file SteadyStateSystem.h.
|
protected |
Evaluate the steady-state Jacobian, accessible via linearSolver()
| [in] | x | Current state vector, length size() |
Definition at line 412 of file SteadyStateSystem.cpp.
|
staticprotected |
Definition at line 178 of file SteadyStateSystem.cpp.
|
staticprotected |
Definition at line 197 of file SteadyStateSystem.cpp.
|
protected |
Determine the timestep growth factor after a successful step.
Called only when a successful step reuses the current Jacobian.
Definition at line 225 of file SteadyStateSystem.cpp.
|
protected |
Array of number of steps to take after each unsuccessful steady-state solve before re-attempting the steady-state solution.
For subsequent time stepping calls, the final value is reused. See setTimeStep().
Definition at line 400 of file SteadyStateSystem.h.
|
protected |
Initial timestep.
Definition at line 402 of file SteadyStateSystem.h.
|
protected |
Minimum timestep size.
Definition at line 403 of file SteadyStateSystem.h.
|
protected |
Maximum timestep size.
Definition at line 404 of file SteadyStateSystem.h.
|
protected |
Factor time step is multiplied by if time stepping fails ( < 1 )
Definition at line 407 of file SteadyStateSystem.h.
|
protected |
Growth factor for successful steps that reuse the Jacobian.
Used directly for fixed-growth, and as the base / cap value for the other named growth strategies.
Definition at line 413 of file SteadyStateSystem.h.
|
protected |
Selected strategy for successful-step growth.
Definition at line 416 of file SteadyStateSystem.h.
|
protected |
Solution vector.
Definition at line 418 of file SteadyStateSystem.h.
|
protected |
Work array used to hold the residual or the new solution.
Definition at line 421 of file SteadyStateSystem.h.
|
protected |
State vector after the last successful set of time steps.
Definition at line 424 of file SteadyStateSystem.h.
|
protected |
Newton iterator.
Definition at line 426 of file SteadyStateSystem.h.
|
protected |
Reciprocal of time step.
Definition at line 427 of file SteadyStateSystem.h.
|
protected |
Jacobian evaluator.
Definition at line 429 of file SteadyStateSystem.h.
|
protected |
If true, Jacobian is current.
Definition at line 430 of file SteadyStateSystem.h.
|
protected |
Jacobian bandwidth.
Definition at line 432 of file SteadyStateSystem.h.
|
protected |
Solution vector size
Definition at line 433 of file SteadyStateSystem.h.
|
protected |
Work arrays used during Jacobian evaluation.
Definition at line 436 of file SteadyStateSystem.h.
|
protected |
Definition at line 436 of file SteadyStateSystem.h.
|
protected |
|
protected |
Maximum age of the Jacobian in steady-state mode.
Definition at line 439 of file SteadyStateSystem.h.
|
protected |
Maximum age of the Jacobian in time-stepping mode.
Definition at line 440 of file SteadyStateSystem.h.
|
protected |
Counter used to manage the number of states stored in the debug log file generated by writeDebugInfo()
Definition at line 444 of file SteadyStateSystem.h.
|
protected |
Constant that determines the maximum number of states stored in the debug log file generated by writeDebugInfo()
Definition at line 448 of file SteadyStateSystem.h.
|
protected |
Function called at the start of every call to eval.
Definition at line 451 of file SteadyStateSystem.h.
|
protected |
User-supplied function called after each successful timestep.
Definition at line 454 of file SteadyStateSystem.h.
|
protected |
Number of time steps taken in the current call to solve()
Definition at line 456 of file SteadyStateSystem.h.
|
protected |
Maximum number of timesteps allowed per call to solve()
Definition at line 457 of file SteadyStateSystem.h.
|
protected |
Committed per-grid statistics.
Each key holds an array indexed by grid. Schema is established in clearStats().
Definition at line 467 of file SteadyStateSystem.h.
|
protected |
Standalone residual evaluations (not Jacobian fill)
Definition at line 469 of file SteadyStateSystem.h.
|
protected |
Wall time [s] in standalone residual evals.
Definition at line 470 of file SteadyStateSystem.h.
|
protected |
Jacobian factorizations on the current grid.
Definition at line 471 of file SteadyStateSystem.h.
|
protected |
Wall time [s] factorizing the Jacobian.
Definition at line 472 of file SteadyStateSystem.h.
|
protected |
Linear solves on the current grid.
Definition at line 473 of file SteadyStateSystem.h.
|
protected |
Wall time [s] in linear solves.
Definition at line 474 of file SteadyStateSystem.h.
|
protected |
Total wall time [s] solving on the current grid.
Definition at line 475 of file SteadyStateSystem.h.
|
protected |
Threshold for ignoring small elements in Jacobian.
Definition at line 479 of file SteadyStateSystem.h.
|
protected |
Relative perturbation of each component in finite difference Jacobian.
Definition at line 481 of file SteadyStateSystem.h.
|
protected |
Absolute perturbation of each component in finite difference Jacobian.
Definition at line 483 of file SteadyStateSystem.h.