:orphan:
# VecTaggerRegister
Adds an implementation of the `VecTagger` communication protocol. 
## Synopsis
```
#include "petscvec.h"  
PetscErrorCode VecTaggerRegister(const char sname[], PetscErrorCode (*function)(VecTagger))
```
Not Collective


## Input Parameters

- ***sname -*** name of a new user-defined implementation
- ***functions -*** routine to create method context





## Notes
`VecTaggerRegister()` may be called multiple times to add several user-defined implementations.


## Sample usage
```none
   VecTaggerRegister("my_impl", MyImplCreate);
```


Then, this implementation can be chosen with the procedural interface via
```none
VecTaggerSetType(tagger, "my_impl")
```
or at runtime via the option
```none
-snes_type my_solver
```


## See Also
 `VecTaggerRegisterAll()`, `VecTaggerRegisterDestroy()`

## Level
advanced

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/vec/vec/utils/tagger/interface/taggerregi.c.html#VecTaggerRegister">src/vec/vec/utils/tagger/interface/taggerregi.c</A>


---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/vec/vec/utils/tagger/interface/taggerregi.c)


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