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