# SPARSE_GRID_MIXED_DATASET Create Sparse Grid Using Mixed Rules

SPARSE_GRID_MIXED_DATASET is a MATLAB program which creates a sparse grid dataset from a mixture of 1D rules, using instructions from a user.

SPARSE_GRID_MIXED_DATASET relies on the availability of two other directories of MATLAB functions, namely SPARSE_GRID_MIXED and SANDIA_RULES. As written, it will issue the commands

```        addpath ( '../sparse_grid_mixed' )
```
so these directories would need to be downloaded from the web and installed in directories that are at the same level as the directory containing SPARSE_GRID_MIXED_DATASET.

The available 1D quadrature rules are identified by a 2 or 3 letter code, and include:

1. CC, Clenshaw-Curtis:
defined on [-1,+1], with w(x)=1,
a closed, fully nested rule.
2. F2, Fejer Type 2:
defined on (-1,+1), with w(x)=1,
an open, fully nested rule.
3. GP, Gauss Patterson:
defined on (-1,+1), with w(x)=1,
a family of the midpoint rule, the 3 point Gauss Legendre rule, and then successive Patterson refinements,
an open, fully nested rule.
4. GL, Gauss Legendre:
defined on (-1,+1), with w(x)=1,
an open, weakly nested rule.
5. GH, Gauss Hermite:
defined on (-oo,+oo), with w(x)=exp(-x*x),
an open, weakly nested rule.
6. GGH, Generalized Gauss Hermite:
defined on (-oo,+oo), with w(x)=|x|^alpha * exp(-x*x),
an open, weakly nested rule.
7. LG, Gauss Laguerre:
defined on (0,+oo) with w(x)=exp(-x),
an open, non-nested rule.
8. GLG, Generalized Gauss Laguerre:
defined on (0,+oo) with w(x)=x^alpha * exp(-x),
an open, non-nested rule.
9. GJ, Gauss Jacobi:
defined on [-1,+1] with w(x)=(1-x)^alpha (1+x)^beta
an open, non-nested rule.
10. GW, Golub Welsch:
a rule defined by the user based on the Golub-Welsch algorithm,
with points and weights supplied by external routines,
presumably an open, non-nested rule.
(not supported yet)
11. CCS, Clenshaw-Curtis Slow-Growth:
defined on [-1,+1], with w(x)=1,
a closed, fully nested rule.
12. F2S, Fejer Type 2, Slow-Growth:
defined on (-1,+1), with w(x)=1,
an open, fully nested rule.
13. GPS, Gauss Patterson, Slow-Growth:
defined on (-1,+1), with w(x)=1,
a family of the midpoint rule, the 3 point Gauss Legendre rule, and then successive Patterson refinements,
an open, fully nested rule.

### Usage:

The user first specifies:

• M the spatial dimension of the quadrature region,
• L the level that defines the Smolyak grid.
and these two values can actuallyb be specified on the command line.

Then the user specifies rules for each of the M dimensions. A rule, when specified, may be used for one, or for multiple consecutive dimensions.

• RULE identifies the 1D rule, and must be one of "CC", "F2", "GP", "GL", "GH", "GGH", "LG", "GLG", "GJ", "GW", "CCS", "F2S", "GPS".
• the number of times the rule is to be used for consecutive dimensions;
• ALPHA, a rule parameter, if needed. (Rules GGH, GLG and GJ);
• BETA, a rule parameter, if needed. (Rule GJ only).

Finally, the user specifies a "file identifier", that is, the main part of a string to be used when creating the files.

### Languages:

SPARSE_GRID_MIXED_DATASET is available in a CPP version and a FORTRAN90 version and a MATLAB version.

### Related Data and Programs:

SANDIA_RULES, a MATLAB library which produces 1D quadrature rules of Chebyshev, Clenshaw Curtis, Fejer 2, Gegenbauer, generalized Hermite, generalized Laguerre, Hermite, Jacobi, Laguerre, Legendre and Patterson types.

SPARSE_GRID_CC_DATASET, a MATLAB program which creates a sparse grid dataset based on Clenshaw-Curtis rules.

SPARSE_GRID_GL_DATASET, a MATLAB program which creates a sparse grid dataset based on Gauss-Legendre rules.

SPARSE_GRID_HERMITE_DATASET, a MATLAB program which creates a sparse grid dataset based on Gauss-Hermite rules.

SPARSE_GRID_HW, a MATLAB library which creates sparse grids based on Gauss-Legendre, Gauss-Hermite, Gauss-Patterson, or a nested variation of Gauss-Hermite rules, by Florian Heiss and Viktor Winschel.

SPARSE_GRID_LAGUERRE_DATASET, a MATLAB program which creates a sparse grid dataset based on Gauss-Laguerrre rules.

SPARSE_GRID_MIXED, a MATLAB library which creates a sparse grid dataset based on a mixed set of 1D factor rules.

SPARSE_GRID_MIXED, a dataset directory which contains multidimensional Smolyak sparse grids based on a mixed set of 1D factor rules.

SPARSE_GRID_OPEN_DATASET, a MATLAB program which creates a sparse grid dataset based on open rules (Fejer 2, Gauss-Patterson, Newton-Cotes-Open).

### Reference:

1. Thomas Gerstner, Michael Griebel,
Numerical Integration Using Sparse Grids,
Numerical Algorithms,
Volume 18, Number 3-4, 1998, pages 209-232.
2. 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 2309-2345.
3. Sergey Smolyak,
Quadrature and Interpolation Formulas for Tensor Products of Certain Classes of Functions,