SPARSE_GRID_GL_DATASET
Create GaussLegendre Sparse Grid Dataset
SPARSE_GRID_GL_DATASET
is a C++ program which
creates a GaussLegendre sparse grid dataset.
Usage:
sparse_grid_gl_dataset dim_num level_max
where

dim_num is the spatial dimension, typically between 2 and 10;

level_max is the sparse grid level, typically between 0 and 6,
which controls the number of points
in the grid. The 1D rules used will have order 2^(level_max)+1.
Licensing:
The code described and made available on this web page is distributed
under the
GNU LGPL license.
Languages:
SPARSE_GRID_GL_DATASET is available in
a C++ version and
a FORTRAN90 version and
a MATLAB version.
Related Data and Programs:
CC_DISPLAY,
a MATLAB library which
can compute and display Clenshaw Curtis grids in two dimensions,
as well as sparse grids formed from sums of Clenshaw Curtis grids.
QUADRATURE_RULES,
a dataset directory which
defines quadrature rules;
a number of examples of sparse grid quadrature rules are included.
QUADRULE,
a C++ library which
defines quadrature rules for
various intervals and weight functions.
SGMGA,
a C++ library which
creates sparse grids based on a mixture of 1D quadrature rules,
allowing anisotropic weights for each dimension.
SMOLPACK,
a C library which
implements Novak and Ritter's method for estimating the integral
of a function over a multidimensional hypercube using sparse grids.
SPARSE_GRID_CC,
a dataset directory which
contains the abscissas of sparse
grids based on a Clenshaw Curtis rule.
SPARSE_GRID_CC_DATASET,
a C++ program which
creates a sparse grid dataset based on ClenshawCurtis rules.
SPARSE_GRID_F2,
a dataset directory which
contains the abscissas of sparse
grids based on a Fejer Type 2 rule.
SPARSE_GRID_GL,
a C++ library which
can create a GaussLegendre sparse grid.
SPARSE_GRID_GL,
a dataset directory which
contains GaussLegendre sparse grids.
SPARSE_GRID_GP,
a dataset directory which
contains the abscissas of sparse
grids based on a Gauss Patterson rule.
SPARSE_GRID_HERMITE_DATASET,
a C++ program which
creates a sparse grid dataset based on GaussHermite rules.
SPARSE_GRID_LAGUERRE_DATASET,
a C++ program which
creates a sparse grid dataset based on GaussLaguerrre rules.
SPARSE_GRID_MIXED_DATASET,
a C++ program which
creates a sparse grid dataset based on a mixture of 1D rules.
SPARSE_GRID_NCC,
a dataset directory which
contains the abscissas of sparse
grids based on a Newton Cotes closed rule.
SPARSE_GRID_NCO,
a dataset directory which
contains the abscissas of sparse
grids based on a Newton Cotes open rule.
SPARSE_GRID_OPEN_DATASET,
a C++ program which
creates a sparse grid dataset based on
open rules (Fejer 2, GaussPatterson, NewtonCotesOpen).
TOMS847,
a MATLAB program which
uses sparse grids to carry out multilinear hierarchical interpolation.
It is commonly known as SPINTERP, and is by Andreas Klimke.
Reference:

Volker Barthelmann, Erich Novak, Klaus Ritter,
High Dimensional Polynomial Interpolation on Sparse Grids,
Advances in Computational Mathematics,
Volume 12, Number 4, 2000, pages 273288.

Thomas Gerstner, Michael Griebel,
Numerical Integration Using Sparse Grids,
Numerical Algorithms,
Volume 18, Number 34, 1998, pages 209232.

Albert Nijenhuis, Herbert Wilf,
Combinatorial Algorithms for Computers and Calculators,
Second Edition,
Academic Press, 1978,
ISBN: 0125192606,
LC: QA164.N54.

Fabio Nobile, Raul Tempone, Clayton Webster,
A Sparse Grid Stochastic Collocation Method for Partial Differential
Equations with Random Input Data,
SIAM Journal on Numerical Analysis,
Volume 46, Number 5, 2008, pages 23092345.

Sergey Smolyak,
Quadrature and Interpolation Formulas for Tensor Products of
Certain Classes of Functions,
Doklady Akademii Nauk SSSR,
Volume 4, 1963, pages 240243.

Dennis Stanton, Dennis White,
Constructive Combinatorics,
Springer, 1986,
ISBN: 0387963472,
LC: QA164.S79.
Source Code:
Examples and Tests:
Here are the three quadrature files created by the command
sparse_grid_gl_dataset 2 3
List of Routines:

MAIN is the main program for SPARSE_GRID_GL_DATASET.

CHOOSE computes the binomial coefficient C(N,K).

COMP_NEXT computes the compositions of the integer N into K parts.

GL_ABSCISSA sets abscissas for multidimensional GaussLegendre quadrature.

GL_WEIGHTS returns weights for certain GaussLegendre quadrature rules.

I4_LOG_2 returns the integer part of the logarithm base 2 of an I4.

I4_MAX returns the maximum of two I4's.

I4_MIN returns the smaller of two I4's.

I4_MODP returns the nonnegative remainder of I4 division.

I4_POWER returns the value of I^J.

I4_TO_STRING converts an I4 to a C++ string.

I4VEC_PRODUCT multiplies the entries of an I4VEC.

INDEX_LEVEL_GL: determine first level at which given index is generated.

LEVEL_TO_ORDER_OPEN converts a level to an order for open rules.

MULTIGRID_INDEX_Z returns an indexed multidimensional grid.

PRODUCT_WEIGHT_GL: weights for a product GaussLegendre rule.

R8_EPSILON returns the R8 roundoff unit.

R8_HUGE returns a "huge" R8.

R8MAT_TRANSPOSE_PRINT_SOME prints some of an R8MAT, transposed.

R8MAT_WRITE writes an R8MAT file.

R8VEC_DIRECT_PRODUCT2 creates a direct product of R8VEC's.

R8VEC_PRINT_SOME prints "some" of an R8VEC.

S_LEN_TRIM returns the length of a string to the last nonblank.

SPARSE_GRID_GL computes a sparse grid of GaussLegendre points.

SPARSE_GRID_GL_INDEX indexes the points forming a sparse grid of GL points.

SPARSE_GRID_GL_SIZE sizes a sparse grid of GaussLegendre points.

TIMESTAMP prints the current YMDHMS date as a time stamp.

VEC_COLEX_NEXT2 generates vectors in colex order.
You can go up one level to
the C++ source codes.
Last revised on 07 November 2009.