:orphan:
# MatSetBindingPropagates
Sets whether the state of being bound to the CPU for a GPU matrix type propagates to child and some other associated objects 
## Synopsis
```
#include "petscmat.h"  
PetscErrorCode MatSetBindingPropagates(Mat A, PetscBool flg)
```

## Input Parameters

- ***A -*** the matrix
- ***flg -*** flag indicating whether the boundtocpu flag should be propagated





## Notes
If the value of flg is set to true, the following will occur

- ***`MatCreateSubMatrices()` and `MatCreateRedundantMatrix()` -*** bind created matrices to CPU if the input matrix is bound to the CPU.
- ***`MatCreateVecs()` -*** bind created vectors to CPU if the input matrix is bound to the CPU.


The bindingpropagates flag itself is also propagated by the above routines.


## Developer Note
If the fine-scale `DMDA` has the `-dm_bind_below` option set to true, then `DMCreateInterpolationScale()` calls `MatSetBindingPropagates()`
on the restriction/interpolation operator to set the bindingpropagates flag to true.


## See Also
 [](ch_matrices), `Mat`, `VecSetBindingPropagates()`, `MatGetBindingPropagates()`

## Level
developer

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/mat/utils/gcreate.c.html#MatSetBindingPropagates">src/mat/utils/gcreate.c</A>


---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/mat/utils/gcreate.c)


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