# PCNN

Balancing Neumann-Neumann for scalar elliptic PDEs.

### Options Database Keys

| -pc_nn_turn_off_first_balancing | - do not balance the residual before solving the local Neumann problems (this skips the first coarse grid solve in the preconditioner)
| -pc_nn_turn_off_second_balancing | - do not balance the solution solving the local Neumann problems (this skips the second coarse grid solve in the preconditioner)
| -pc_is_damp_fixed <fact> | -
| -pc_is_remove_nullspace_fixed | -
| -pc_is_set_damping_factor_floating <fact> | -
| -pc_is_not_damp_floating | - + -pc_is_not_remove_nullspace_floating -

Notes: The matrix used with this preconditioner must be of type MATIS

Unlike more 'conventional' Neumann-Neumann preconditioners this iterates over ALL the degrees of freedom, NOT just those on the interface (this allows the use of approximate solvers on the subdomains; though in our experience using approximate solvers is slower.).

Options for the coarse grid preconditioner can be set with -nn_coarse_pc_xxx Options for the Dirichlet subproblem preconditioner can be set with -is_localD_pc_xxx Options for the Neumann subproblem preconditioner can be set with -is_localN_pc_xxx

Contributed by Paulo Goldfeld

### See Also

PCCreate(), PCSetType(), PCType (for list of available types), PC, MatIS

Level:intermediate
Location:src/ksp/pc/impls/is/nn/nn.c
Index of all PC routines
Table of Contents for all manual pages
Index of all manual pages