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