Unbounded SPLIT Newton with pseudo-transient continuation and backtracking
Good for ill-conditioned problems where there are two different sets of systems
Particular applications include
- Fast-Slow Reaction-Diffusion systems
- CFD - Pressure-Velocity coupling
The system is divided into two and for ease of communication, let's refer to first set of variables as "outer" and the second as "inner".
-
Holding the outer variables fixed, Newton iteration is performed till convergence using the sub-Jacobian
-
One Newton step is performed for the outer variables with inner held fixed (using its sub-Jacobian)
-
This process is repeated till convergence criterion is met for the full system (same as in Newton)
Just run
pip install splitnewton
There is an examples folder that contains a test function and driver program
Consider the test problem
and the second system
and using logspace
for variation in
$$ F(u) = \lambda_{a} u^{4}{1} + ... + \lambda{b} u^{4}{\lfloor N/2 \rfloor} + \lambda{c} u^{4}{\lceil N/2 \rceil} + ... + \lambda{d} u^{4}_{N}$$
For N=5000 (with no backtracking and pseudo-transient continuation),
Method | Time | Iterations |
---|---|---|
Split Newton | 9 seconds | 32 |
Newton | not converged > 1 min | NA |
Please direct your queries to gpavanb1 for any questions.