1a3b2e22bSHong Zhang #include <petsc/private/matimpl.h> /*I "petscmat.h" I*/ 216b64355SHong Zhang #include <../src/mat/impls/aij/seq/aij.h> 316b64355SHong Zhang 4*f68bb481SHong Zhang PetscErrorCode MatDestroySubMatrix_Dummy(Mat C) 516b64355SHong Zhang { 616b64355SHong Zhang PetscErrorCode ierr; 75c39f6d9SHong Zhang Mat_SubSppt *submatj = (Mat_SubSppt*)C->data; 816b64355SHong Zhang 916b64355SHong Zhang PetscFunctionBegin; 1016b64355SHong Zhang ierr = submatj->destroy(C);CHKERRQ(ierr); 11*f68bb481SHong Zhang ierr = MatDestroySubMatrix_Private(submatj);CHKERRQ(ierr); 1216b64355SHong Zhang PetscFunctionReturn(0); 1316b64355SHong 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