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