1*a3b2e22bSHong Zhang #include <petsc/private/matimpl.h> /*I "petscmat.h" I*/ 2*a3b2e22bSHong Zhang #include <../src/sys/utils/hash.h> 3*a3b2e22bSHong Zhang 4*a3b2e22bSHong Zhang typedef struct { 5*a3b2e22bSHong Zhang PetscHashJK ht; 6*a3b2e22bSHong Zhang PetscInt *dnz, *onz; 7*a3b2e22bSHong Zhang } Mat_Preallocator; 8*a3b2e22bSHong Zhang 9*a3b2e22bSHong Zhang PetscErrorCode MatDestroy_Dummy(Mat A) 10*a3b2e22bSHong Zhang { 11*a3b2e22bSHong Zhang PetscErrorCode ierr; 12*a3b2e22bSHong Zhang 13*a3b2e22bSHong Zhang PetscFunctionBegin; 14*a3b2e22bSHong Zhang printf("MatDestroy_Dummy...\n"); 15*a3b2e22bSHong Zhang ierr = PetscFree(A->data);CHKERRQ(ierr); 16*a3b2e22bSHong Zhang ierr = PetscObjectChangeTypeName((PetscObject) A, 0);CHKERRQ(ierr); 17*a3b2e22bSHong Zhang PetscFunctionReturn(0); 18*a3b2e22bSHong Zhang } 19*a3b2e22bSHong Zhang 20*a3b2e22bSHong Zhang PetscErrorCode MatSetOption_Dummy(Mat A, MatOption op, PetscBool flg) 21*a3b2e22bSHong Zhang { 22*a3b2e22bSHong Zhang PetscFunctionBegin; 23*a3b2e22bSHong Zhang PetscFunctionReturn(0); 24*a3b2e22bSHong Zhang } 25*a3b2e22bSHong Zhang 26*a3b2e22bSHong Zhang /*MC 27*a3b2e22bSHong Zhang MATDUMMY - A matrix type to be used for reusing specific internal data structure. 28*a3b2e22bSHong Zhang 29*a3b2e22bSHong Zhang Level: advanced 30*a3b2e22bSHong Zhang 31*a3b2e22bSHong Zhang .seealso: Mat 32*a3b2e22bSHong Zhang 33*a3b2e22bSHong Zhang M*/ 34*a3b2e22bSHong Zhang 35*a3b2e22bSHong Zhang PETSC_EXTERN PetscErrorCode MatCreate_Dummy(Mat A) 36*a3b2e22bSHong Zhang { 37*a3b2e22bSHong Zhang PetscErrorCode ierr; 38*a3b2e22bSHong Zhang 39*a3b2e22bSHong Zhang PetscFunctionBegin; 40*a3b2e22bSHong Zhang /* matrix ops */ 41*a3b2e22bSHong Zhang ierr = PetscMemzero(A->ops, sizeof(struct _MatOps));CHKERRQ(ierr); 42*a3b2e22bSHong Zhang A->ops->destroy = MatDestroy_Dummy; 43*a3b2e22bSHong Zhang 44*a3b2e22bSHong Zhang /* special MATPREALLOCATOR functions */ 45*a3b2e22bSHong Zhang ierr = PetscObjectChangeTypeName((PetscObject) A, MATDUMMY);CHKERRQ(ierr); 46*a3b2e22bSHong Zhang PetscFunctionReturn(0); 47*a3b2e22bSHong Zhang } 48