Nonlinear Solver Control Parameters
These parameters control the nonlinear solver used in the calculation. Load balancing options are also included here.
- NL_Solver(int): The type of nonlinear solver to use in the calculation. Options are:
- 0: Built-In Newton Method: Often the method of choice; update damping is linked to physics in dft_newton.c.
- 1: NOX Newton Method: library based Newton solver with numerical updates.
- 2: Built-In Picard Method: simple successive substitution.
- 3: NOX Picard Method: also simple successive substitution using some NOX routines.
- 4: Built-In Picard/NOX method. This option runs a Picard method for Max_NL_iter iterations and then switches to the Built-In Newton Method. This can help if convergence from a simple initial guess is difficult.
- Max_NL_Iter(int): The maximum number of nonlinear iterations the code will peform before exiting.
- Physics_Scaling(int): A logical (0=FALSE, 1=TRUE) to turn on physics scaling in the WJDC code.
This scaling improves poor numerical performance that often can result from large chemical potentials in
- NL_rel_tol(real): Relative convergence tolerance for the nonlinear solver.
- NL_abs_tol(real): Absolute convergence tolerance for the nonlinear solver.
During the nonlinear solve, the code will mix some fraction of the new solution in with the old solution at each iteration. In the case of Newton steps, this parameter is the minimum step size the code will take; however, updates are adaptive and as the solution is approached, full updates are usually reached. In the case of picard iterations, a very slow mixing of old and new solutions is usually needed. At this time, the Picard update fraction is not adaptive. For Newton solves we recommend setting the parameter between 0.1 and 1.0 (starting with 1.0). For Picard solves, typical values are 0.001 to 0.01. When performing a mixed Picard/Nox solve set this parameter to about 0.2, and Tramonto will use a mixing parameter 100x smaller for the Picard steps.
- Load_Bal_Flag(int): Seclect option for load balancing the Tramonto problem. Options are:
- 0: LB_LINEAR - This results in a linear partitioning of the matrix, but a recursive bisection partitioning of the matrix fill.
- 1: LB_BOX - This results in a recursive bisection partitioning of the matrix fill and the matrix solve.
- 2: LB_WEIGHTS - This results in a weighted recursive bisection partitioning of the matrix fill and the matrix solve where some nodes
with simple residuals equations (i.e. density=zero in a surface) are given lesser weights than the remaining fluid nodes.