Skip to main content
`Ctrl`+`K`

# 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 Notes

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

Matrices, `Mat`, `VecSetBindingPropagates()`, `MatGetBindingPropagates()`

## Level

developer

## Location

src/mat/utils/gcreate.c

Index of all Mat routines
Table of Contents for all manual pages
Index of all manual pages