CMP++: Uncertainty Quantification & Bayesian Calibration
Loading...
Searching...
No Matches
cmp::grid::SobolGrid Class Reference

Sobol low-discrepancy sequence grid generator. More...

#include <grid.h>

Inheritance diagram for cmp::grid::SobolGrid:
Collaboration diagram for cmp::grid::SobolGrid:

Public Member Functions

 SobolGrid (const Eigen::Ref< const Eigen::VectorXd > &lowerBound, const Eigen::Ref< const Eigen::VectorXd > &upperBound)
 
Eigen::MatrixXd construct (const size_t &nPoints) override
 
Eigen::VectorXd operator() ()
 
size_t dim () const override
 
- Public Member Functions inherited from cmp::grid::Grid
virtual ~Grid ()=default
 

Private Attributes

boost::random::sobol gen_
 Boost Sobol sequence generator.
 
size_t dimension_
 Number of dimensions.
 
Eigen::VectorXd lowerBound_
 Lower bounds vector.
 
Eigen::VectorXd upperBound_
 Upper bounds vector.
 

Detailed Description

Sobol low-discrepancy sequence grid generator.

Mathematical Formulation Generates points using the quasi-random Sobol sequence to minimize star discrepancy:

\[ D_N^*(\mathcal{P}) = O\left( \frac{\log^D N}{N} \right) \]

ensuring faster convergence of multi-dimensional integrals compared to standard Monte Carlo.

Implementation Algorithm

  1. Invokes Boost's Sobol generator.
  2. Multiplies generated uniform fractions by dimension bounds \([a_d, b_d]\).
  3. Shuffles output coordinates to break spatial correlations in short prefixes.

Constructor & Destructor Documentation

◆ SobolGrid()

cmp::grid::SobolGrid::SobolGrid ( const Eigen::Ref< const Eigen::VectorXd > &  lowerBound,
const Eigen::Ref< const Eigen::VectorXd > &  upperBound 
)
inline

Member Function Documentation

◆ construct()

Eigen::MatrixXd cmp::grid::SobolGrid::construct ( const size_t &  nPoints)
inlineoverridevirtual

Implements cmp::grid::Grid.

◆ dim()

size_t cmp::grid::SobolGrid::dim ( ) const
inlineoverridevirtual

Implements cmp::grid::Grid.

◆ operator()()

Eigen::VectorXd cmp::grid::SobolGrid::operator() ( )
inline

Member Data Documentation

◆ dimension_

size_t cmp::grid::SobolGrid::dimension_
private

Number of dimensions.

◆ gen_

boost::random::sobol cmp::grid::SobolGrid::gen_
private

Boost Sobol sequence generator.

◆ lowerBound_

Eigen::VectorXd cmp::grid::SobolGrid::lowerBound_
private

Lower bounds vector.

◆ upperBound_

Eigen::VectorXd cmp::grid::SobolGrid::upperBound_
private

Upper bounds vector.


The documentation for this class was generated from the following file: