API Reference¶
All public symbols are exported from the sparse_grid package.
Exported symbols¶
SparseGridGridPointcrosseval_basis_1d
SparseGrid¶
SparseGrid(dim=1, level=1)¶
Create a regular sparse grid.
Attributes
dim(int): number of dimensions.level(int): sparse-grid level.indices(list[list[int]]): generated multi-indices, each entry[l_1, p_1, ..., l_d, p_d].g_p(dict[tuple[int, ...], GridPoint]): map from index tuple toGridPoint.domain(tuple[tuple[float, float], ...]): per-dimension bounds, default \([0, 1]^d\).
SparseGrid.generate_points()¶
Generate all sparse-grid indices satisfying
and create the corresponding GridPoint objects stored in g_p.
SparseGrid.nodal_2_hier()¶
Convert all nodal values (fv) to hierarchical surplus values (hv) using the dimension-wise lifting algorithm:
Must be called after all fv values are set.
SparseGrid.eval_funct(x) -> float¶
Evaluate the sparse-grid interpolant at point x.
Parameters
x(list[float]): evaluation point in physical coordinates, length must equaldim.
Returns
The interpolated value
Must be called after nodal_2_hier().
SparseGrid.print_grid()¶
Print the current hierarchical subspace index to stdout.
SparseGrid.loop_hier_spaces()¶
Iterate over all hierarchical subspaces satisfying the admissibility condition and invoke the current action callback for each.
SparseGrid.generate_points_rec(dim, level, cur_level=None) -> list[list[int]]¶
Recursively generate multi-indices for all admissible hierarchical subspaces.
Parameters
dim(int): remaining dimensions.level(int): remaining level budget.cur_level(int | None): current recursion level (default:1).
Returns
List of interleaved multi-indices [l_1, p_1, ..., l_d, p_d].
SparseGrid.nodal_2_hier_1d(node, i, j, dim)¶
Apply the one-dimensional nodal-to-hierarchical transform along dimension dim at level i, position j.
Parameters
node(list[int]): fixed index components from other dimensions.i(int): level index.j(int): position index.dim(int): dimension being transformed.
GridPoint¶
GridPoint(index=None, domain=None)¶
Representation of a single sparse-grid point.
Attributes
pos(list[float]): physical coordinates.fv(float): nodal function value (default0.0).hv(float): hierarchical surplus value (default0.0).
GridPoint.point_position(index, domain=None) -> list[float]¶
Convert a multi-index to physical coordinates.
Parameters
index(list[int]): interleaved multi-index[l_1, p_1, ..., l_d, p_d].domain(tuple[tuple[float, float], ...] | None): per-dimension bounds.
Without a domain the mapping is:
With domain bounds \([a_i, b_i]\):
GridPoint.print_point()¶
Print point coordinates as a tab-separated line to stdout.
Utility functions¶
cross(*args) -> list[list[int]]¶
Compute the pairwise cross-product (concatenation) of two index lists. Used internally by generate_points_rec to combine per-dimension index sets.
Parameters
*args: two index collectionslist[list[int]].
Returns
Cross-product of the two lists.
eval_basis_1d(x, basis, interval=None) -> float¶
Evaluate a one-dimensional hat basis function:
Parameters
x(float): evaluation coordinate.basis(list[int]): basis index[level, position].interval(tuple[float, float] | None): physical interval (default: \([0, 1]\)).
Returns
Value of the hat basis at x.
References¶
See References for full citations.