1 static char help[] = "Tests inserting new block into SBAIJ and BAIJ matrix \n ";
2
3 #include <petscdmda.h>
4
main(int argc,char ** argv)5 int main(int argc, char **argv)
6 {
7 DM dm;
8 Mat A;
9 PetscInt idm = 0, idn = 8;
10 PetscScalar v[] = {1, 2, 3, 4};
11
12 PetscFunctionBeginUser;
13 PetscCall(PetscInitialize(&argc, &argv, NULL, help));
14 PetscCall(DMDACreate2d(PETSC_COMM_WORLD, DM_BOUNDARY_NONE, DM_BOUNDARY_NONE, DMDA_STENCIL_STAR, 4, 4, PETSC_DECIDE, PETSC_DECIDE, 2, 1, NULL, NULL, &dm));
15 PetscCall(DMSetFromOptions(dm));
16 PetscCall(DMSetUp(dm));
17 PetscCall(DMCreateMatrix(dm, &A));
18 PetscCall(MatSetOption(A, MAT_NEW_NONZERO_LOCATION_ERR, PETSC_FALSE));
19 PetscCall(MatSetValuesBlocked(A, 1, &idm, 1, &idn, v, INSERT_VALUES));
20 PetscCall(MatAssemblyBegin(A, MAT_FINAL_ASSEMBLY));
21 PetscCall(MatAssemblyEnd(A, MAT_FINAL_ASSEMBLY));
22 PetscCall(MatDestroy(&A));
23 PetscCall(DMDestroy(&dm));
24 PetscCall(PetscFinalize());
25 return 0;
26 }
27
28 /*TEST
29
30 test:
31 args: -dm_mat_type {{aij baij sbaij}separate output} -mat_view
32
33 test:
34 suffix: 2
35 nsize: 2
36 args: -dm_mat_type {{aij baij sbaij}separate output} -mat_view
37
38 test:
39 suffix: 3
40 nsize: 3
41 args: -dm_mat_type {{aij baij sbaij}separate output} -mat_view
42
43 TEST*/
44