Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions paper/paper.bib
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ @article{Piazzola2021
}

@article{Li2024,
title = {Characterizing Aquifer Properties through a Sparse Grid-Based Bayesian Framework and InSAR Measurements: A Basin-Scale Application to {A}lto {G}uadalentín, {S}pain},
title = {Characterizing Aquifer Properties through a Sparse Grid-Based {B}ayesian Framework and InSAR Measurements: A Basin-Scale Application to {A}lto {G}uadalentín, {S}pain},
url = {http://dx.doi.org/10.22541/essoar.172373105.53381390/v1},
DOI = {10.22541/essoar.172373105.53381390/v1},
publisher = {Authorea, Inc.},
Expand Down Expand Up @@ -241,7 +241,7 @@ @url{Dakota
}

@article{spinterp,
title = {Algorithm 847: {spinterp}: piecewise multilinear hierarchical sparse grid interpolation in {MATLAB}},
title = {Algorithm 847: {Spinterp}: piecewise multilinear hierarchical sparse grid interpolation in {MATLAB}},
volume = {31},
ISSN = {1557-7295},
url = {http://dx.doi.org/10.1145/1114268.1114275},
Expand Down Expand Up @@ -356,7 +356,7 @@ @article{julia
}

@article{Bittens2023,
title = {DistributedSparseGrids.jl: A Julia library implementing
title = {DistributedSparseGrids.jl: A {J}ulia library implementing
an Adaptive Sparse Grid collocation method},
volume = {8},
ISSN = {2475-9066},
Expand Down
20 changes: 10 additions & 10 deletions paper/paper.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,19 +22,19 @@ bibliography: paper.bib

# Summary
Approximating functions with high-dimensional domains is crucial in modern scientific and engineering problems.
An example of this is constructing surrogate models for quantities of interest in high-dimensional, parametrized PDE problems.
An example of this is constructing surrogate models for quantities of interest in high-dimensional, parameterized PDE problems.
These surrogate models are constructed to provide computationally inexpensive yet accurate approximations that can be used in applications such as uncertainty quantification, optimization, and parameter estimation [@UQHandbook2017].
For suitably smooth functions, accurate surrogates can be constructed using global polynomial approximation techniques over the parameter domain, and a common approach is the use of sparse grid polynomial approximation.
In particular, sparse grid polynomial interpolation techniques enable practitioners to approximate solutions to parametric problems in a non-intrusive manner using existing numerical solvers.

`SparseGridsKit.jl` provides a Julia toolbox to manually and adaptively construct sparse grid polynomial approximations [@julia].
`SparseGridsKit.jl` provides a Julia [@julia] toolbox to manually and adaptively construct sparse grid polynomial approximations.
Interpolation and quadrature routines allow evaluation and integration of the surrogate models.
Multi-fidelity approximation via the multi-index stochastic collocation algorithm is also possible [@HajiAli2016; @Jakeman2019; @Piazzola2022].
Approximations can be represented either in a basis of global Lagrange interpolation polynomials or in a basis of domain appropriate spectral-type global polynomials (e.g.\ Legendre, Chebyshev, Hermite...).
Approximations can be represented either in a basis of global Lagrange interpolation polynomials or in a basis of domain appropriate spectral-type global polynomials (e.g.\ Legendre, Chebyshev, Hermite, etc.).

# Statement of need
Sparse grid approximation is a well-developed methodology and is featured in many survey articles and textbook chapters, e.g., [@Bungartz2004; @LeMaitre2010; @Schwab2011; @Cohen2015; @Sullivan2015].
The need for sparse grid surrogate modelling is demonstrated by its use in many applications, from simpler elliptic and parabolic PDEs to complex practical engineering problems, e.g., \ [@Piazzola2021; @Piazzola2022; @Li2024].
Sparse grid approximation is a well-developed methodology and is featured in many survey articles and textbook chapters [@Bungartz2004; @LeMaitre2010; @Schwab2011; @Cohen2015; @Sullivan2015].
The need for sparse grid surrogate modelling is demonstrated by its use in many applications, from simpler elliptic and parabolic PDEs to complex practical engineering problems [@Piazzola2021; @Piazzola2022; @Li2024].
The `SparseGridsKit.jl` implementation offers a rich set of features to enable this.

Specifically, `SparseGridsKit.jl` is a Julia implementation of adaptive sparse grid global polynomial approximation methods.
Expand All @@ -46,7 +46,7 @@ The functionality includes:
- Multi-index set construction and manipulation.
- Combination technique sparse grid approximations, and functionality for interpolation, integration and derivatives of the surrogate model.
- Adaptive sparse grid approximation construction based on the ubiquitous Gerstner-Griebel dimensional adaptive algorithm [@Gerstner2003].
This implementation uses profit indicators as described in [@Nobile2016].
This implementation uses profit indicators as described in @Nobile2016.
- Adaptive multi-fidelity approximation via the Multi-Index Stochastic Collocation (MISC) algorithm [@HajiAli2016; @Jakeman2019; @Piazzola2022].
- Conversion to and from Polynomial Chaos / spectral polynomial series representation.
- Limited support for surrogate model differentiation via automatic differentiation.
Expand All @@ -55,9 +55,9 @@ The functionality described above is tested and documented with examples include

Other sparse grid approximation packages in Julia include:

- [`DistributedSparseGrids.jl`](https://github.com/baxmittens/DistributedSparseGrids.jl) [@Bittens2023]: a Julia package providing adaptive sparse grid approximation using a local hierarchical basis and distributed computing functionality.
- [`Tasmanian.jl`](https://github.com/floswald/Tasmanian.jl): a Julia interface to the C++ [Tasmanian library](https://github.com/ORNL/Tasmanian).
- [`AdaptiveSparseGrids.jl`](https://github.com/jacobadenbaum/AdaptiveSparseGrids.jl): a Julia package offering sparse grid approximation using a local hierarchical basis.
- [`DistributedSparseGrids.jl`](https://github.com/baxmittens/DistributedSparseGrids.jl) [@Bittens2023]: A Julia package providing adaptive sparse grid approximation using a local hierarchical basis and distributed computing functionality.
- [`Tasmanian.jl`](https://github.com/floswald/Tasmanian.jl): A Julia interface to the C++ [Tasmanian library](https://github.com/ORNL/Tasmanian).
- [`AdaptiveSparseGrids.jl`](https://github.com/jacobadenbaum/AdaptiveSparseGrids.jl): A Julia package offering sparse grid approximation using a local hierarchical basis.

As described above, `SparseGridsKit.jl` instead offers functionality based upon global polynomial approximation targeting problems in which the function is assumed to be suitably smooth.
The adaptive approximation algorithm is also split cleanly into `SOLVE-ESTIMATE-MARK-REFINE` steps to aid adaptive algorithm development.
Expand All @@ -71,7 +71,7 @@ Other popular software packages implementing sparse grid approximation include:
- `PyApprox`: A Python package for high-dimensional approximation [@PyApprox].
- `Dakota`: A C++ library for optimisation and surrogate modelling [@Dakota].
- `UQTk`: A collection of C++/Python uncertainty quantification tools including sparse grid quadrature [@DebusschereUQTk:2017].
- `Tasmanian`,`SG++`,: C++ sparse grid approximation implementations with wrappers for many popular software languages [@stoyanov2015tasmanian; @pflueger10spatially].
- `Tasmanian`,`SG++`: C++ sparse grid approximation implementations with wrappers for many popular software languages [@stoyanov2015tasmanian; @pflueger10spatially].

`SparseGridsKit.jl` specifically offers a Julia toolkit sharing the ethos of the `Sparse Grids MATLAB Kit`: to be user-friendly and aid fast algorithm prototyping.
Notably, `SparseGridsKit.jl` also provides an implementation of the multi-index stochastic collocation algorithm which is currently only available in `PyApprox`.
Expand Down