SANDIA_SGMGG
Sparse Grid Mixed Growth, Generalized Construction
SANDIA_SGMGG
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
NI array.
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,3)
(0,2) (1,2)
(0,1) (1,1)
(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.
Licensing:
The computer code and data files described and made available on this web page
are distributed under
the GNU LGPL license.
Languages:
SANDIA_SGMGG is available in
a C++ version and
a FORTRAN90 version and
a MATLAB version.
Related Data and Programs:
SGMGA,
a MATLAB library which
creates sparse grids based on a mixture of 1D quadrature rules,
allowing anisotropic weights for each dimension.
Reference:
-
Thomas Gerstner, Michael Griebel,
Dimension-adaptive tensor-product quadrature,
Computing,
Volume 71, Number 1, August 2003, pages 65-87.
Source Code:
-
i4_modp.m,
returns the nonnegative remainder of integer division;
-
i4_wrap.m,
forces an integer to lie between given limits;
-
i4mat_transpose_print.m,
prints an I4MAT, transposed;
-
i4mat_transpose_print_some.m,
prints some of an I4MAT, transposed;
-
i4vec_print.m,
prints an I4VEC;
-
r8_uniform_01.m,
returns a unit pseudorandom R8;
-
r8vec_indexed_heap_d.m,
creates a descending heap from an indexed R8VEC.
-
r8vec_indexed_heap_d_extract.m,
extract from heap descending indexed R8VEC.
-
r8vec_indexed_heap_d_insert.m,
insert value into heap descending indexed R8VEC.
-
r8vec_indexed_heap_d_max.m,
maximum value in heap descending indexed R8VEC.
-
sandia_sgmgg_coef_inc2.m,
computes tentative coefficient changes.
-
sandia_sgmgg_coef_naive.m,
returns the combinatorial coefficients.
-
sandia_sgmgg_neighbor_naive.m,
returns the immediate forward neighbor vector.
-
sgmgg_print.m,
prints out an SGMGG data structure.
-
timestamp.m,
prints the current YMDHMS date as a time stamp.
Examples and Tests:
-
sandia_sgmgg_test.m,
a sample calling program.
-
sandia_sgmgg_test01.m,
demonstrates the naive coefficient calculations.
-
sandia_sgmgg_test02.m,
demonstrates the naive neighbor calculations.
-
sandia_sgmgg_test03.m,
sets up the GG data structure.
-
sandia_sgmgg_test04.m,
simulates a set of incremental coefficient calculations.
-
sandia_sgmgg_test05.m,
demonstrates SANDIA_SGMGG_COEF_INC2.
-
sandia_sgmgg_test06.m,
demonstrates SANDIA_SGMGG_COEF_INC2.
-
sandia_sgmgg_coef_naive_test.m,
demonstrates SANDIA_SGMGG_COEF_NAIVE.
-
sandia_sgmgg_neighbor_naive_test.m,
demonstrates SANDIA_SGMGG_NEIGHBOR_NAIVE.
-
sandia_sgmgg_test_output.txt,
the output file.
You can go up one level to
the MATLAB source codes.
Last revised on 24 August 2011.