# 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


## 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
- ***delta -*** coefficients, see Ketcheson's paper
- ***betasub -*** subdiagonal of Shu-Osher form



## Notes
The notation is described in Ketcheson (2010) Runge-Kutta methods with minimum storage implementations.

Many multistage schemes are of the form
$ X_0 = X^{(n)}
$ X_k = X_0 + \alpha_k * F(X_{k-1}), k = 1,\ldots,s
$ X^{(n+1)} = X_s
These methods can be registered with
```none
   SNESMSRegister("name",s,1,stability,NULL,NULL,alpha);
```





## See Also
 `SNESMS`

## Level
advanced

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


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


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