: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 src/mat/utils/gcreate.c --- [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)