# 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

- ***name_impl -*** name of a new user-defined implementation
- ***routine_create -*** 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](/docs/manualpages/index.md)  
[Index of all manual pages](/docs/manualpages/singleindex.md)  
