Sparse Grid Mixed Growth, Generalized Construction
is a MATLAB library which
contains some experimental code for the investigation of sparse
grids constructed in a generalized fashion, in which the set of
indices corresponding to a sparse grid is chosen in a generalized
way, rather than being defined by a linear constraint.
The sparse grid is associated with a data structure, whose management
is a significant part of the computation.
We assume we are working in a space of dimension ND. An
index vector is a list of ND nonnegative integers, which
represent the level of quadrature in each dimension. A single
index vector can be used to construct a product rule.
A sparse grid can be thought of as a weighted summation of product
rules; our represention of a sparse grid will then consist of a list
of NI index vectors, which we can regard as an ND by
Not every collection of index vectors will be admissible. For our
purposes, a collection of index vectors is admissible if each vector
in the set is admissible. An index vector that is part of a collection
is admissible if it is the 0 vector, or every vector formed by
decrementing exactly one entry by 1 is an admissible vector in the set.
Here is an example of an admissible collection of index vectors in 2D:
(0,0) (1,0) (2,0) (3,0) (4,0)
For the 2D case, an index is admissible if every possible index below
or to the left of it is also in the set.
The computer code and data files described and made available on this web page
are distributed under
the GNU LGPL license.
SANDIA_SGMGG is available in
a C++ version and
a FORTRAN90 version and
a MATLAB version.
Related Data and Programs:
a MATLAB library which
creates sparse grids based on a mixture of 1D quadrature rules,
allowing anisotropic weights for each dimension.
Thomas Gerstner, Michael Griebel,
Dimension-adaptive tensor-product quadrature,
Volume 71, Number 1, August 2003, pages 65-87.
returns the nonnegative remainder of integer division;
forces an integer to lie between given limits;
prints an I4MAT, transposed;
prints some of an I4MAT, transposed;
prints an I4VEC;
returns a unit pseudorandom R8;
creates a descending heap from an indexed R8VEC.
extract from heap descending indexed R8VEC.
insert value into heap descending indexed R8VEC.
maximum value in heap descending indexed R8VEC.
computes tentative coefficient changes.
returns the combinatorial coefficients.
returns the immediate forward neighbor vector.
prints out an SGMGG data structure.
prints the current YMDHMS date as a time stamp.
Examples and Tests:
a sample calling program.
demonstrates the naive coefficient calculations.
demonstrates the naive neighbor calculations.
sets up the GG data structure.
simulates a set of incremental coefficient calculations.
the output file.
You can go up one level to
the MATLAB source codes.
Last revised on 24 August 2011.