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