1! 2! This program tests MatNullSpaceCreate() 3! 4 program main 5#include <petsc/finclude/petscmat.h> 6 use petscmat 7 implicit none 8 9 PetscErrorCode ierr 10 MatNullSpace nsp 11 Vec v(1) 12 PetscInt nloc,on 13 PetscScalar one 14 PetscReal norm 15 Vec, pointer :: vnsp(:) 16 17 PetscCallA(PetscInitialize(ierr)) 18 19 nloc = 12 20 on = 1 21 PetscCallA(VecCreateFromOptions(PETSC_COMM_WORLD,PETSC_NULL_CHARACTER,on,nloc,PETSC_DETERMINE,v(1),ierr)) 22 one = 1.0 23 PetscCallA(VecSet(v(1),one,ierr)) 24 PetscCallA(VecNormalize(v(1),norm,ierr)) 25 PetscCallA(MatNullSpaceCreate(PETSC_COMM_WORLD,PETSC_FALSE,on,[v],nsp,ierr)) 26 PetscCallA(MatNullSpaceGetVecs(nsp,PETSC_NULL_BOOL, PETSC_NULL_INTEGER, vnsp, ierr)) 27 PetscCallA(MatNullSpaceRestoreVecs(nsp,PETSC_NULL_BOOL, PETSC_NULL_INTEGER, vnsp, ierr)) 28 PetscCallA(MatNullSpaceDestroy(nsp,ierr)) 29 PetscCallA(VecDestroy(v(1),ierr)) 30 PetscCallA(PetscFinalize(ierr)) 31 end 32 33!/*TEST 34! 35! test: 36! output_file: output/empty.out 37! 38!TEST*/ 39