1*d8606c27SBarry Smith! 2*d8606c27SBarry Smith! This program tests MatCreateVecs() for Shell Matrix 3*d8606c27SBarry Smith! 4*d8606c27SBarry Smith subroutine mymatgetvecs(A,x,y,ierr) 5*d8606c27SBarry Smith#include <petsc/finclude/petscmat.h> 6*d8606c27SBarry Smith use petscmat 7*d8606c27SBarry Smith implicit none 8*d8606c27SBarry Smith 9*d8606c27SBarry Smith PetscErrorCode ierr 10*d8606c27SBarry Smith Mat A 11*d8606c27SBarry Smith Vec x,y 12*d8606c27SBarry Smith PetscInt tw 13*d8606c27SBarry Smith 14*d8606c27SBarry Smith tw = 12 15*d8606c27SBarry Smith PetscCallA(VecCreateSeq(PETSC_COMM_SELF,tw,x,ierr)) 16*d8606c27SBarry Smith PetscCallA(VecCreateSeq(PETSC_COMM_SELF,tw,y,ierr)) 17*d8606c27SBarry Smith return 18*d8606c27SBarry Smith end 19*d8606c27SBarry Smith 20*d8606c27SBarry Smith program main 21*d8606c27SBarry Smith#include <petsc/finclude/petscmat.h> 22*d8606c27SBarry Smith use petscmat 23*d8606c27SBarry Smith implicit none 24*d8606c27SBarry Smith 25*d8606c27SBarry Smith PetscErrorCode ierr 26*d8606c27SBarry Smith Vec x,y 27*d8606c27SBarry Smith Mat m 28*d8606c27SBarry Smith PetscInt tw 29*d8606c27SBarry Smith external mymatgetvecs 30*d8606c27SBarry Smith 31*d8606c27SBarry Smith PetscCallA(PetscInitialize(ierr)) 32*d8606c27SBarry Smith 33*d8606c27SBarry Smith tw = 12 34*d8606c27SBarry Smith PetscCallA(MatCreateShell(PETSC_COMM_SELF,tw,tw,tw,tw,0,m,ierr)) 35*d8606c27SBarry Smith PetscCallA(MatAssemblyBegin(m,MAT_FINAL_ASSEMBLY,ierr)) 36*d8606c27SBarry Smith PetscCallA(MatAssemblyEnd(m,MAT_FINAL_ASSEMBLY,ierr)) 37*d8606c27SBarry Smith PetscCallA(MatShellSetOperation(m,MATOP_CREATE_VECS,mymatgetvecs,ierr)) 38*d8606c27SBarry Smith PetscCallA(MatCreateVecs(m,x,y,ierr)) 39*d8606c27SBarry Smith PetscCallA(MatDestroy(m,ierr)) 40*d8606c27SBarry Smith PetscCallA(VecDestroy(x,ierr)) 41*d8606c27SBarry Smith PetscCallA(VecDestroy(y,ierr)) 42*d8606c27SBarry Smith PetscCallA(PetscFinalize(ierr)) 43*d8606c27SBarry Smith end 44*d8606c27SBarry Smith 45*d8606c27SBarry Smith!/*TEST 46*d8606c27SBarry Smith! 47*d8606c27SBarry Smith! test: 48*d8606c27SBarry Smith! nsize: 2 49*d8606c27SBarry Smith! 50*d8606c27SBarry Smith!TEST*/ 51