SPARSE_GRID_HERMITE_DATASET
Create Gauss-Hermite Sparse Grid Dataset
SPARSE_GRID_HERMITE_DATASET
is a FORTRAN90 program which
creates a Gauss-Hermite sparse grid dataset.
Usage:
sparse_grid_hermite_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:
The code described and made available on this web page is distributed
under the
GNU LGPL license.
Languages:
SPARSE_GRID_HERMITE_DATASET is available in
a C++ version and
a FORTRAN90 version and
a MATLAB version.
Related Data and Programs:
MONTE_CARLO_RULE,
a FORTRAN90 program which
generates a dataset of N random M-dimensional points,
regards it as a quadrature rule for the unit hypercube,
and writes out three files of information.
QUADRATURE_RULES,
a dataset directory which
define quadrature rules;
a number of examples of sparse grid quadrature rules are included.
QUADRULE,
a FORTRAN90 library which
defines quadrature rules for
various intervals and weight functions.
SGMGA,
a FORTRAN90 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 FORTRAN90 program which
creates a sparse grid dataset based on Clenshaw-Curtis rules.
SPARSE_GRID_F2,
a dataset directory which
contains the abscissas of sparse
grids based on a Fejer Type 2 rule.
SPARSE_GRID_GL_DATASET,
a FORTRAN90 program which
creates a sparse grid dataset based on Gauss-Legendre rules.
SPARSE_GRID_GP,
a dataset directory which
contains the abscissas of sparse
grids based on a Gauss Patterson rule.
SPARSE_GRID_HERMITE_DATASET,
a FORTRAN90 program which
creates a sparse grid dataset based on Gauss-Hermite rules.
SPARSE_GRID_HERMITE,
a dataset directory which
contains Gauss-Hermite sparse grids.
SPARSE_GRID_HW,
a FORTRAN90 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_MIXED_DATASET,
a FORTRAN90 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 FORTRAN90 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:
-
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:
Here are the three quadrature files created by the command
sparse_grid_hermite_dataset 2 3
List of Routines:
-
MAIN is the main program for SPARSE_GRID_HERMITE_DATASET.
-
COMP_NEXT computes the compositions of the integer N into K parts.
-
GET_UNIT returns a free FORTRAN unit number.
-
HERMITE_COMPUTE computes a Gauss-Hermite quadrature rule.
-
HERMITE_COMPUTE_POINTS computes points of a Hermite quadrature rule.
-
HERMITE_COMPUTE_WEIGHTS computes weights of a Hermite quadrature rule.
-
IMTQLX diagonalizes a symmetric tridiagonal matrix.
-
LEVEL_TO_ORDER_HERMITE: default growth for Hermite sparse grids.
-
MONOMIAL_INTEGRAL_HERMITE integrates a Hermite monomial.
-
MONOMIAL_QUADRATURE_HERMITE applies a quadrature rule to a monomial.
-
MONOMIAL_VALUE evaluates a monomial.
-
PRODUCT_HERMITE_WEIGHT computes the weights of a Hermite product rule.
-
R8_CHOOSE computes the binomial coefficient C(N,K) as an R8.
-
R8_FACTORIAL2 computes the double factorial function.
-
R8_GAMMA evaluates Gamma(X) for a real argument.
-
R8_HUGE returns a very large R8.
-
R8_MOP returns the I-th power of -1 as an R8.
-
R8COL_COMPARE compares columns in an R8COL.
-
R8COL_SORT_HEAP_A ascending heapsorts an R8COL.
-
R8COL_SORT_HEAP_INDEX_A does an indexed heap ascending sort of an R8COL.
-
R8COL_SORTED_UNIQUE_COUNT counts unique elements in a sorted R8COL.
-
R8COL_SWAP swaps columns I and J of an R8COL.
-
R8COL_TOL_UNIQUE_COUNT counts tolerably unique entries in an R8COL.
-
R8COL_UNDEX returns unique sorted indexes for an R8COL.
-
R8MAT_PRINT prints an R8MAT.
-
R8MAT_PRINT_SOME prints some of an R8MAT.
-
R8MAT_TRANSPOSE_PRINT prints an R8MAT, transposed.
-
R8MAT_TRANSPOSE_PRINT_SOME prints some of an R8MAT, transposed.
-
R8MAT_WRITE writes an R8MAT file.
-
R8VEC_COMPARE compares two R8VEC's.
-
R8VEC_DIRECT_PRODUCT2 creates a direct product of R8VEC's.
-
R8VEC_PRINT_SOME prints "some" of an R8VEC.
-
S_BLANK_DELETE removes blanks from a string, left justifying the remainder.
-
S_TO_I4 reads an integer value from a string.
-
SORT_HEAP_EXTERNAL externally sorts a list of items into ascending order.
-
SPARSE_GRID_HERMITE computes a Hermite sparse grid.
-
SPARSE_GRID_HERMITE_INDEX indexes a Hermite sparse grid.
-
SPARSE_GRID_HERMITE_POINT computes the points of a Hermite sparse grid.
-
SPARSE_GRID_HERMITE_SIZE sizes a Hermite sparse grid, discounting duplicates.
-
SPARSE_GRID_HERMITE_SIZE_TOTAL Hermite sparse grid size counting duplicates.
-
SPARSE_GRID_HERMITE_UNIQUE_INDEX maps nonunique points to unique points.
-
SPARSE_GRID_HERMITE_WEIGHT computes Hermite sparse grid weights.
-
SPARSE_GRID_HERMITE_WRITE writes a Hermite sparse grid rule to files.
-
TIMESTAMP prints the current YMDHMS date as a time stamp.
-
VEC_COLEX_NEXT3 generates vectors in colex order.
You can go up one level to
the FORTRAN90 source codes.
Last revised on 16 May 2012.