# SNESFAS
Full Approximation Scheme nonlinear multigrid solver. The nonlinear problem is solved by correction using coarse versions
of the nonlinear problem.  This problem is perturbed so that a projected
solution of the fine problem elicits no correction from the coarse problem.


## Options Database Keys and Prefixes

- ***-snes_fas_levels -*** The number of levels
- ***-snes_fas_cycles<1> -*** The number of cycles -- 1 for V, 2 for W
- ***-snes_fas_type<additive,multiplicative,full,kaskade>  -*** Additive or multiplicative cycle
- ***-snes_fas_galerkin<`PETSC_FALSE`> -*** Form coarse problems by projection back upon the fine problem
- ***-snes_fas_smoothup<1> -*** The number of iterations of the post-smoother
- ***-snes_fas_smoothdown<1> -*** The number of iterations of the pre-smoother
- ***-snes_fas_monitor -*** Monitor progress of all of the levels
- ***-snes_fas_full_downsweep<`PETSC_FALSE`> -*** call the downsmooth on the initial downsweep of full FAS
- ***-fas_levels_snes_ -*** `SNES` options for all smoothers
- ***-fas_levels_cycle_snes_ -*** `SNES` options for all cycles
- ***-fas_levels_i_snes_ -*** `SNES` options for the smoothers on level i
- ***-fas_levels_i_cycle_snes_ -*** `SNES` options for the cycle on level i
- ***-fas_coarse_snes_ -*** `SNES` options for the coarsest smoother



## Note
The organization of the FAS solver is slightly different from the organization of `PCMG`
As each level has smoother `SNES` instances(down and potentially up) and a cycle `SNES` instance.
The cycle `SNES` instance may be used for monitoring convergence on a particular level.




## References

- **** -*** Peter R. Brune, Matthew G. Knepley, Barry F. Smith, and Xuemin Tu, "Composing Scalable Nonlinear Algebraic Solvers",
SIAM Review, 57(4), 2015



## See Also
 `PCMG`, `SNESCreate()`, `SNES`, `SNESSetType()`, `SNESType`, `SNESFASSetRestriction()`, `SNESFASSetInjection()`,
`SNESFASFullGetTotal()`

## Level
beginner

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/snes/impls/fas/fas.c.html#SNESFAS">src/snes/impls/fas/fas.c</A>


---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/snes/impls/fas/fas.c)


[Index of all SNESFAS routines](index.md)  
[Table of Contents for all manual pages](/docs/manualpages/index.md)  
[Index of all manual pages](/docs/manualpages/singleindex.md)  
