SPARSE_GRID_CC_DATASET\
Create Clenshaw-Curtis Sparse Grid Dataset {#sparse_grid_cc_dataset-create-clenshaw-curtis-sparse-grid-dataset align=”center”}
==========================================
SPARSE_GRID_CC_DATASET is a C++ program which creates a
Clenshaw-Curtis sparse grid dataset.
Usage: {#usage align=”center”}
sparse_grid_cc_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.
Each sparse grid is stored using the “quadrature rule” format, that is,
as three files:
- an “R” or “region” file, which lists two points that bound the
region;
- a “W” or “weight” file, which lists the weight for each abscissa;
- an “X” or “abscissa” file, which lists the abscissas of the rule.
The abscissas are ordered to respect the natural nesting of the sparse
grids by level. That is, the file of level 3 points begins by listing
the points in the level 2 grid.
Licensing: {#licensing align=”center”}
The code described and made available on this web page is distributed
under the GNU LGPL license.
Languages: {#languages align=”center”}
SPARSE_GRID_CC_DATASET is available in a C
version
and a C++
version
and a FORTRAN77
version
and a FORTRAN90
version
and a MATLAB
version.
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 of files which defines quadrature rules; a number of
examples of sparse grid quadrature rules are included.
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
C++ library which creates a Clenshaw-Curtis sparse grid.
SPARSE_GRID_CC, a
dataset directory which contains examples of Clenshaw-Curtis sparse
grids.
SPARSE_GRID_F2, a
dataset directory which conains the abscissas of sparse grids based on a
Fejer Type 2 rule.
SPARSE_GRID_GL_DATASET,
a C++ program which creates a Gauss-Legendre sparse grid and writes the
data to three files.
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 Gauss-Hermite sparse grid and write the
data to three files.
SPARSE_GRID_LAGUERRE_DATASET,
a C++ program which creates a Gauss-Laguerre sparse grid and write the
data to three files.
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, Gauss-Patterson, Newton-Cotes-Open).
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: {#reference align=”center”}
- Volker Barthelmann, Erich Novak, Klaus Ritter,\
High Dimensional Polynomial Interpolation on Sparse Grids,\
Advances in Computational Mathematics,\
Volume 12, Number 4, 2000, pages 273-288.
- Thomas Gerstner, Michael Griebel,\
Numerical Integration Using Sparse Grids,\
Numerical Algorithms,\
Volume 18, Number 3-4, 1998, pages 209-232.
- Albert Nijenhuis, Herbert Wilf,\
Combinatorial Algorithms for Computers and Calculators,\
Second Edition,\
Academic Press, 1978,\
ISBN: 0-12-519260-6,\
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 2309-2345.
- Sergey Smolyak,\
Quadrature and Interpolation Formulas for Tensor Products of Certain
Classes of Functions,\
Doklady Akademii Nauk SSSR,\
Volume 4, 1963, pages 240-243.
- Dennis Stanton, Dennis White,\
Constructive Combinatorics,\
Springer, 1986,\
ISBN: 0387963472,\
LC: QA164.S79.
Source Code: {#source-code align=”center”}
Examples and Tests: {#examples-and-tests align=”center”}
Here are the files created by the command
sparse_grid_cc_dataset 2 3
List of Routines: {#list-of-routines align=”center”}
- MAIN is the main program for SPARSE_GRID_CC_DATASET.
- ABSCISSA_LEVEL_CLOSED_ND: first level at which an abscissa is
generated.
- CC_ABSCISSA returns the I-th abscissa of the Clenshaw Curtis
rule.
- CC_WEIGHTS computes Clenshaw Curtis weights.
- CHOOSE computes the binomial coefficient C(N,K).
- COMP_NEXT computes the compositions of the integer N into K
parts.
- 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 integer 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 integer vector.
- INDEX_TO_LEVEL_CLOSED determines the level of a point given
its index.
- LEVEL_TO_ORDER_CLOSED converts a level to an order for closed
rules.
- MULTIGRID_INDEX0 returns an indexed multidimensional grid.
- MULTIGRID_SCALE_CLOSED renumbers a grid as a subgrid on a
higher level.
- PRODUCT_WEIGHTS_CC computes weights for a Clenshaw Curtis
product 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 with no header.
- 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_CC computes a sparse grid of Clenshaw Curtis
points.
- SPARSE_GRID_CC_INDEX indexes the points forming a sparse
grid.
- SPARSE_GRID_CFN_SIZE sizes a sparse grid of Closed Fully
Nested points.
- SPARSE_GRID_CC_WEIGHTS gathers the weights.
- 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 12 January 2010