xref: /petsc/src/mat/impls/dummy/matdummy.c (revision 16b643558ddb2850265bc9ef423683e46e446b85)
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