Skip to main content
`Ctrl`+`K`

# SNESCompositeType

Determines how two or more preconditioners are composed with the `SNESType` of `SNESCOMPOSITE`

## Synopsis

    typedef enum {
      SNES_COMPOSITE_ADDITIVE,
      SNES_COMPOSITE_MULTIPLICATIVE,
      SNES_COMPOSITE_ADDITIVEOPTIMAL
    } SNESCompositeType;

## Values

- `SNES_COMPOSITE_ADDITIVE` - results from application of all preconditioners are added together

- `SNES_COMPOSITE_MULTIPLICATIVE` - preconditioners are applied sequentially to the residual freshly computed after the previous preconditioner application

- `SNES_COMPOSITE_ADDITIVEOPTIMAL` - uses a linear combination of the solutions obtained with each preconditioner that approximately minimize the function value at the new iteration.

## See Also

Preconditioners, `PCCOMPOSITE`, `PCFIELDSPLIT`, `PC`, `PCCompositeSetType()`, `PCCompositeType`

## Level

beginner

## Location

include/petscsnes.h

Index of all SNES routines
Table of Contents for all manual pages
Index of all manual pages