The graph will represent the nonzero structure of the matrix in Section 4.4 below. It is defined in terms of the grid and stencil objects described in Sections 4.1 and 4.2 above.
On process 0, the following code will set up the graph for the example problem.
HYPRE_SStructGraph graph; int addindex[9][2] = {{ 2,0},{2,1},{2,2},{2,3}, {-1,3},{0,3},{1,3},{2,3}, { 1,2}}; int addentries[9][2] = {{-1,0},{-1,1},{-1,2},{-1,3}, { 9,9},{10,9},{11,9},{12,9}, { 1,2}}; HYPRE_SStructGraphCreate(MPI_COMM_WORLD, grid, &graph); HYPRE_SStructGraphSetStencil(graph, 0, 0, stencil); /* Add graph edge entries at grid part boundaries */ HYPRE_SStructGraphAddEntries(graph, 0, addindex[0], 0, 2, addentries[0], 0); HYPRE_SStructGraphAddEntries(graph, 0, addindex[0], 0, 2, addentries[1], 0); HYPRE_SStructGraphAddEntries(graph, 0, addindex[1], 0, 2, addentries[0], 0); ... /* Add graph edge entries at index (1,2) */ HYPRE_SStructGraphAddEntries(graph, 0, addindex[8], 0, 0, addentries[8], 1); HYPRE_SStructGraphAddEntries(graph, 0, addindex[8], 1, 0, addentries[8], 0);