IDL specification for the SMG structured multigrid preconditioner from hypre
static stencil NewStencil(in int dim, in int size);
int SetStencilElement(in int index, in array<int> offset);
static grid NewGrid(in mpi_com com, in int dimension);
int SetGridExtents(inout array<int> lower, array<int> upper);
static vector NewVector(in mpi_com, in grid g, in stencil s);
int SetVectorBoxValues(/* long argument list omitted */);
class matrix { /* matrix member functions omitted */ };
int Setup(inout matrix A, inout vector b, inout vector x);
int Solve(inout matrix A, inout vector b, inout vector x);