SPARSE_GRID_CLOSED_DATASET
Sparse Grid from Closed 1D Quadrature Rule
SPARSE_GRID_CLOSED_DATASET
is a C++ program which
computes a sparse quadrature rule for
an arbitrary spatial dimension, associated with a particular
"level" of the Smolyak construction,
and based on a closed 1D quadrature rule.
Usage:
sparse_grid_closed_dataset dim_num level_max rule
where
-
dim_num is the spatial dimension, 1 or more;
-
level_max is the level of the Smolyak construction;
0 or more.
-
rule is a code for the 1D quadrature rule to use:
-
CC = Clenshaw Curtis,
-
NCC = Newton Cotes Closed.
Licensing:
The code described and made available on this web page is distributed
under the
GNU LGPL license.
Languages:
SPARSE_GRID_CLOSED_DATASET is available in
a C++ version and
a FORTRAN90 version and
a MATLAB version.
Related Data and Programs:
CC_DISPLAY
is 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.
CLENSHAW_CURTIS
is a C++ library which
can compute Clenshaw Curtis grids in multiple dimensions,
as well as sparse grids formed from sums of Clenshaw Curtis grids.
QUADRATURE_RULES
is a dataset directory which
contains quadrature rules;
a number of examples of sparse grid quadrature rules are included.
QUADRULE
is 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
is 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
is 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 Clenshaw-Curtis rules.
SPARSE_GRID_CLOSED
is a C++ library which
define define sparse grids based on closed nested quadrature rules.
SPARSE_GRID_DISPLAY
is a MATLAB library which
can display a 2D or 3D sparse grid.
SPARSE_GRID_F2
is a dataset directory which
contains the abscissas of sparse
grids based on a Fejer Type 2 rule.
SPARSE_GRID_MIXED_DATASET,
a C++ program which
creates a sparse grid dataset based on a mixture of 1D rules.
SPARSE_GRID_NCC
is a dataset directory which
contains the abscissas of sparse
grids based on a Newton Cotes closed rule.
SPARSE_GRID_NCO
is 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
is 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 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:
Examples and Tests:
CC_D2_LEVEL3 is a computation based on the Clenshaw Curtis rule
in dimension 2 and level 3.
NCC_D2_LEVEL3 is a computation based on the Newton Cotes Closed
rule in dimension 2 and level 3.
List of Routines:
-
MAIN is the main program for SPARSE_GRID_CLOSED_DATASET.
-
ABSCISSA_LEVEL_CLOSED_ND: first level at which given abscissa is generated.
-
CC_ABSCISSA returns the I-th abscissa of the Clenshaw Curtis rule.
-
CC_WEIGHTS computes Clenshaw Curtis weights.
-
CH_CAP capitalizes a single character.
-
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 I4 division.
-
I4_POWER returns the value of I^J.
-
I4_TO_STRING converts an I4 to a C++ string.
-
I4MAT_TRANSPOSE_PRINT_SOME prints some of an I4MAT, transposed.
-
I4VEC_PRODUCT multiplies the entries of an I4VEC.
-
INDEX_TO_LEVEL_CLOSED determines the level of a point given its index.
-
LEVEL_TO_ORDER 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.
-
NCC_ABSCISSA returns the I-th abscissa of the Newton-Cotes Closed rule.
-
NCC_WEIGHTS computes Newton-Cotes Closed weights.
-
PRODUCT_WEIGHTS_CLOSED: closed product rule weights.
-
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.
-
R8VEC_SUM returns the sum of an R8VEC.
-
S_EQI reports whether two strings are equal, ignoring case.
-
S_LEN_TRIM returns the length of a string to the last nonblank.
-
SPARSE_GRID_CFN_SIZE sizes a sparse grid using Closed Fully Nested rules.
-
SPGRID_CLOSED_INDEX indexes the points forming a sparse grid.
-
SPGRID_CLOSED_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 24 December 2009.