Skip to main content
`Ctrl`+`K`

# 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 -

## Options Database prefixes for the subsolvers this preconditioner uses

- -nn_coarse_pc_ - for the coarse grid preconditioner

- -is_localD_pc_ - for the Dirichlet subproblem preconditioner

- -is_localN_pc_ - for the Neumann subproblem preconditioner

## 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.).

Contributed by Paulo Goldfeld

## See Also

KSP: Linear System Solvers, `PCCreate()`, `PCSetType()`, `PCType`, `PC`, `MATIS`, `PCBDDC`

## 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