1a3b2e22bSHong Zhang #include <petsc/private/matimpl.h> /*I "petscmat.h" I*/ 2*16b64355SHong Zhang #include <../src/mat/impls/aij/seq/aij.h> 3*16b64355SHong Zhang 4*16b64355SHong Zhang PetscErrorCode MatDestroy_Dummy_Submatrices(Mat C) 5*16b64355SHong Zhang { 6*16b64355SHong Zhang PetscErrorCode ierr; 7*16b64355SHong Zhang Mat_SubMat *submatj = (Mat_SubMat*)C->data; 8*16b64355SHong Zhang 9*16b64355SHong Zhang PetscFunctionBegin; 10*16b64355SHong Zhang ierr = submatj->destroy(C);CHKERRQ(ierr); 11*16b64355SHong Zhang ierr = MatDestroySubMatrices_Private(submatj); 12*16b64355SHong Zhang PetscFunctionReturn(0); 13*16b64355SHong Zhang } 14a3b2e22bSHong Zhang 15a3b2e22bSHong Zhang PetscErrorCode MatDestroy_Dummy(Mat A) 16a3b2e22bSHong Zhang { 17a3b2e22bSHong Zhang PetscErrorCode ierr; 18a3b2e22bSHong Zhang 19a3b2e22bSHong Zhang PetscFunctionBegin; 20a3b2e22bSHong Zhang ierr = PetscObjectChangeTypeName((PetscObject)A,0);CHKERRQ(ierr); 21a3b2e22bSHong Zhang PetscFunctionReturn(0); 22a3b2e22bSHong Zhang } 23a3b2e22bSHong Zhang 24a3b2e22bSHong Zhang /*MC 25a3b2e22bSHong Zhang MATDUMMY - A matrix type to be used for reusing specific internal data structure. 26a3b2e22bSHong Zhang 27a3b2e22bSHong Zhang Level: advanced 28a3b2e22bSHong Zhang 29a3b2e22bSHong Zhang .seealso: Mat 30a3b2e22bSHong Zhang 31a3b2e22bSHong Zhang M*/ 32a3b2e22bSHong Zhang 33a3b2e22bSHong Zhang PETSC_EXTERN PetscErrorCode MatCreate_Dummy(Mat A) 34a3b2e22bSHong Zhang { 35a3b2e22bSHong Zhang PetscErrorCode ierr; 36a3b2e22bSHong Zhang 37a3b2e22bSHong Zhang PetscFunctionBegin; 38a3b2e22bSHong Zhang /* matrix ops */ 39a3b2e22bSHong Zhang ierr = PetscMemzero(A->ops,sizeof(struct _MatOps));CHKERRQ(ierr); 40a3b2e22bSHong Zhang A->ops->destroy = MatDestroy_Dummy; 41a3b2e22bSHong Zhang 42a3b2e22bSHong Zhang /* special MATPREALLOCATOR functions */ 43a3b2e22bSHong Zhang ierr = PetscObjectChangeTypeName((PetscObject)A,MATDUMMY);CHKERRQ(ierr); 44a3b2e22bSHong Zhang PetscFunctionReturn(0); 45a3b2e22bSHong Zhang } 46