typedef enum {MAT_DO_NOT_COPY_VALUES,MAT_COPY_VALUES,MAT_SHARE_NONZERO_PATTERN} MatDuplicateOption;
Any additions/changes here MUST also be made in include/petsc/finclude/petscmat.h
MAT_DO_NOT_COPY_VALUES - Create a matrix using the same nonzero pattern as the original matrix,
                              with zeros for the numerical values.
MAT_COPY_VALUES - Create a matrix with the same nonzero pattern as the original matrix
                              and with the same numerical values.
MAT_SHARE_NONZERO_PATTERN - Create a matrix that shares the nonzero structure with the previous matrix
                              and does not copy it, using zeros for the numerical values. The parent and
                              child matrices will share their index (i and j) arrays, and you cannot
                              insert new nonzero entries into either matrix.