The method by which Twopnt arrives at a
solution to the 1-D governing equations is described here in detail. After discretization on
a given mesh, we have a system of nonlinear algebraic equations that
Twopnt attempts to solve by a damped Newton’s method. Newton’s
method determines a sequence of iterations or approximate solutions that approach the true
solution. For the sake of notational ease we call these approximate solution vectors
. When any arbitrary
is substituted into the finite
difference analog of Equation 13–2
and Equation 13–3
, they do not equal zero as they
would if the true solution were substituted; in general, they equal a residual vector that
we will call
. The objective is to find a vector
that satisfies
(16–12) |
In our case the vector is composed as follows:
(16–13) |
The corresponding vector is composed of the residuals of the energy equation, the species
equation, and an equation specifying that
. The final equation is included for purposes of maintaining a banded
Jacobian structure. The ordering of the
vector corresponds to the order of the
vector; it begins with the residuals of the left boundary condition
, followed by the residuals at the interior mesh points, and finally the
residuals at the right boundary,
.
Provided the initial estimate of the solution is sufficiently good,
Newton’s method produces a sequence
that converges to the solution of the nonlinear equations
. The purest form of the algorithm
(16–14) |
is too expensive and delicate to be used in practice. On the one hand,
evaluation of the Jacobian matrices is time consuming, and on the other hand, convergence usually requires a
very good initial estimate
. Ansys Chemkin employs the usual remedies. First, the
Jacobian matrix is
replaced by one,
, inherited from a previous step of the algorithm. Second, the full step
from
to
may be cut short by a damping parameter
. In this way the iteration becomes
(16–15) |
where, , and
(16–16) |
The inverse Jacobian matrix in Equation 16–15
is not actually computed;
instead a system of linear equations is solved for the undamped correction vector
.
Our selection of the matrix and of the parameter
is governed by a look-ahead procedure that forces certain behavior upon
the algorithm. Thus, having tentatively chosen
the program looks ahead to the calculation of
. The criterion[121]
for accepting
is that the undamped steps decrease in magnitude,
(16–17) |
This prevents the iteration from stepping away from the region where there
is good reason to believe a solution lies. Should fail this criterion, the application rejects it and retries the step with
a halved damping parameter or a new Jacobian matrix. The damping parameter
is initially chosen to be as large as possible so that
does not violate various bounds that are set on the solution variables. We
know, for example, that the temperature and mass
flow rate must be
positive, and that the species
mass fractions
must be between zero and one. The concentrations of many species, such as fuels downwind of
a flame, are close to zero and frequently threaten to place the solution out of
bounds.
The Newton iteration continues until
the maximum norm of the undamped correction vector is reduced to within a user-specified tolerance. Specifically, the
criteria for Newton iteration convergence is when the solution correction vector
satisfies
(16–18) |
The relative and absolute
tolerances are parameters that govern the convergence criteria for the
Newton iteration. Roughly speaking the relative tolerance indicates how many significant
digits the converged solution should contain, and the
absolute tolerance serves to exclude solution components smaller than
from the relative convergence criteria. Typically, the absolute tolerance
should be smaller than the maximum
mass fraction of
any species of interest. The relative tolerance should
be in the range of 10-3 to 10-4, which
will serve to provide 3 to 4 digits of accuracy.
If damping cannot produce a suitable correction, then a new Jacobian is computed. If, after computing a new Jacobian, a damped Newton step still cannot produce a suitable correction, then the application begins to take pseudo time steps. This strategy is described further in Pseudo Time-Stepping Procedure .