Consider trying TSARKIMEX if the stiff part is strongly nonlinear. Many br
udot = f(u)
by the stage equations Many br
k_i = h f(u_0 + sum_j alpha_ij k_j) + h J sum_j gamma_ij k_j
and step completion formula Many br
u_1 = u_0 + sum_j b_j k_j
with step size h and coefficients alpha_ij, gamma_ij, and b_i. Implementing the method in this form would require f(u) Many brand the Jacobian J to be available, in addition to the shifted matrix I - h gamma_ii J. Following Hairer and Wanner, Many brwe define new variables for the stage equations Many br
y_i = gamma_ij k_j
The k_j can be recovered because Gamma is invertible. Let C be the lower triangular part of Gamma^{-1} and define Many br
A = Alpha Gamma^{-1}, bt^T = b^T Gamma^{-1}
to rewrite the method as Many br
[M/(h gamma_ii) - J] y_i = f(u_0 + sum_j a_ij y_j) + M sum_j (c_ij/h) y_j
u_1 = u_0 + sum_j bt_j y_j
where we have introduced the mass matrix M. Continue by defining Many br
ydot_i = 1/(h gamma_ii) y_i - sum_j (c_ij/h) y_j
or, more compactly in tensor notation Many br
Ydot = 1/h (Gamma^{-1} \otimes I) Y .
Note that Gamma^{-1} is lower triangular. With this definition of Ydot in terms of known quantities and the current Many brstage y_i, the stage equations reduce to performing one Newton step (typically with a lagged Jacobian) on the Many brequation Many br
g(u_0 + sum_j a_ij y_j + y_i, ydot_i) = 0
with initial guess y_i = 0. Many br
Many br
Level:beginner
Location:src/ts/impls/rosw/rosw.c
Index of all TS routines
Table of Contents for all manual pages
Index of all manual pages