1! 2! 3#include <petsc/finclude/petscmat.h> 4program main 5 use petscmat 6 implicit none 7 8 PetscErrorCode ierr 9 PetscInt i, one, twelve, j 10 Mat m 11 PetscScalar value 12 13 PetscCallA(PetscInitialize(ierr)) 14 twelve = 12 15 PetscCallA(MatCreate(PETSC_COMM_WORLD, m, ierr)) 16 PetscCallA(MatSetSizes(m, PETSC_DECIDE, PETSC_DECIDE, twelve, twelve, ierr)) 17 PetscCallA(MatSetFromOptions(m, ierr)) 18 PetscCallA(MatMPIAIJSetPreallocation(m, PETSC_DEFAULT_INTEGER, PETSC_NULL_INTEGER_ARRAY, PETSC_DEFAULT_INTEGER, PETSC_NULL_INTEGER_ARRAY, ierr)) 19 20 value = 3.0 21 i = 4 22 one = 1 23 PetscCallA(MatSetValuesMPIAIJ(m, one, [i], one, [i], [value], ADD_VALUES, ierr)) 24 i = 5 25 j = 7 26 PetscCallA(MatSetValuesMPIAIJ(m, one, [i], one, [j], [value], ADD_VALUES, ierr)) 27 i = 10 28 j = 9 29 PetscCallA(MatSetValuesMPIAIJ(m, one, [i], one, [j], [value], ADD_VALUES, ierr)) 30 PetscCallA(MatAssemblyBegin(m, MAT_FINAL_ASSEMBLY, ierr)) 31 PetscCallA(MatAssemblyEnd(m, MAT_FINAL_ASSEMBLY, ierr)) 32 33 PetscCallA(MatDestroy(m, ierr)) 34 PetscCallA(PetscFinalize(ierr)) 35end 36 37!/*TEST 38! 39! test: 40! nsize: 2 41! output_file: output/empty.out 42! 43!TEST*/ 44