kNaN Documentation
version 1.2b
kNaN is a solver for systems of nonlinear equations based on Newton's Method with line search backtracking.
Currently the solver can only work with explicit definitions of
f() and
jf() .
Following methods are planned to be implemented:
-
krylov
-
matrix-free
-
preconditioning
-
freezed jacobian
-
diffusion jacobian
-
diffusion + freezed jacobian
-
low order approximation to high order nonlinear system
-
inexact newton
-
multigrid
-
numerical jacobian
-
continuation
-
fokkema vorst: store resulting F vectors
-
singular systems
- deltax'e gore de durma kriteri - s based
- absolute
- relative
- introduce analytical jacobian, numerical(one by one and column based)
- introduce jacobian vector multiplication - either directional derivative, full, or sparse storage schemes.
- always compare with the exact value for scaled, small and large for both F and X.
- rename mybeta as beta after numerical_libraries are excluded with the implementation of Krylov Solvers or LU decomposition routines
- initial guess function (either parameter continuation or interpolation or just initialization)
- introduce analytical jacobian, numerical(one by one and column based)
- define weighted norm as a convergence option-option to compare different grids
- give a detailed analysis file with information on the iterations including the mesh size and weighted norm
- if relative residual is used then it is like weighted norms are used!
- reduce the number of extra F1 and F2 vectors. either by pointers or overwrites
- find a name for this version. this 1.2a - a letter might help :) !
- lambda plot!
problem sets are added
code changes
basic inexact newton is implemented
separate matrix vector multiplier MatVecMult() is added
bicgstab is added as a solver (matmul - no precon)
bicgstab_no_s is added as the default bicgstab solver (matmul- no precon)
absolute and relative tolerances are introduced. convergence options are introduced.
solverParameters and physicalParameters modules are added.
Debugging related extra information parameters are added.
module myFunctions is added. quadratic and cubic functions
are carried into this module.
machineps: machineps() - scalar function
calculates the machine eps
In this version the most basic form of a line search backtracking algorithm is implemented. In this program the example problem 6.5.1 given in [1] is examined
[1] Numerical Methods for Unconstrained Optimization and Nonlinear Equations - J.E. Dennis, R.B. Schnabel - SIAM - 1996 corrected edition
[2] Iterative Methods for Linear and Nonlinear Equations - C.T. Kelley - SIAM - 1995 [3] Testing Unconstrained Optimization Software - J.J. Moré, B.S. Garbow, K.E. Hillstorm - TOMS 7 pp 136-140 - 1981
pdf version of the documentation is
here.
code will be available
here after version 1.5.
Erhan Turan