Skip to main content
`Ctrl`+`K`

# SNESMSRegister

register a multistage scheme for `SNESMS`

## Synopsis

    #include "petscsnes.h"
    PetscErrorCode SNESMSRegister(SNESMSType name, PetscInt nstages, PetscInt nregisters, PetscReal stability, const PetscReal gamma[], const PetscReal delta[], const PetscReal betasub[])

Logically Collective, No Fortran Support

## Input Parameters

- name - identifier for method

- nstages - number of stages

- nregisters - number of registers used by low-storage implementation

- stability - scaled stability region

- gamma - coefficients, see Ketcheson’s paper [Ket10]

- delta - coefficients, see Ketcheson’s paper [Ket10]

- betasub - subdiagonal of Shu-Osher form

## Notes

The notation is described in [Ket10] Ketcheson (2010) Runge-Kutta methods with minimum storage implementations.

Many multistage schemes are of the form

\[ \begin{align*} X_0 = X^{(n)} \\ X_k = X_0 + \alpha_k * F(X_{k-1}), k = 1,\ldots,s \\ X^{(n+1)} = X_s \end{align*} \]

These methods can be registered with

       SNESMSRegister("name",s,1,stability,NULL,NULL,alpha);

## References

[Ket10] (1,2,3)

David I Ketcheson. Runge–Kutta methods with minimum storage implementations. Journal of Computational Physics, 229(5):1763–1773, 2010.

## See Also

SNES: Nonlinear Solvers, `SNES`, `SNESMS`

## Level

advanced

## Location

src/snes/impls/ms/ms.c

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