[P]arallel [Hi]gh-order [Li]brary for [P]DEs  Latest
Parallel High-Order Library for PDEs through hp-adaptive Discontinuous Galerkin methods
halton_sampling.h
1 #ifndef __HALTON_SAMPLING__
2 #define __HALTON_SAMPLING__
3 
4 #include <deal.II/numerics/vector_tools.h>
5 #include "parameters/all_parameters.h"
6 #include "pod_basis_online.h"
7 #include "rom_test_location.h"
8 #include <eigen/Eigen/Dense>
9 #include "nearest_neighbors.h"
10 #include "adaptive_sampling_base.h"
11 
12 namespace PHiLiP {
13 
14 using DealiiVector = dealii::LinearAlgebra::distributed::Vector<double>;
15 using Eigen::MatrixXd;
16 using Eigen::RowVectorXd;
17 using Eigen::VectorXd;
18 
20 /*
21 Based on the work in Donovan Blais' thesis:
22 Goal-Oriented Adaptive Sampling for Projection-Based Reduced-Order Models, 2022
23 
24 This is a sampling procedure similar to the adaptive sampling, which instead uses a halton sequence to select the snapshot parameter locations.
25 From Wikipedia (https://en.wikipedia.org/wiki/Halton_sequence):
26 In statistics, Halton sequences are sequences used to generate points in space for numerical methods such as Monte Carlo simulations.
27 The Halton sequence is constructed according to a deterministic method that uses coprime numbers as its bases.
28 */
29 template <int dim, int nstate>
30 class HaltonSampling: public AdaptiveSamplingBase<dim,nstate>
31 {
32 public:
34  HaltonSampling(const PHiLiP::Parameters::AllParameters *const parameters_input,
35  const dealii::ParameterHandler &parameter_handler_input);
36 
39 
41  int run_sampling () const override;
42 };
43 
44 }
45 
46 
47 #endif
Files for the baseline physics.
Definition: ADTypes.hpp:10
~HaltonSampling()
Destructor.
Halton sampling.
Main parameter class that contains the various other sub-parameter classes.
HaltonSampling(const PHiLiP::Parameters::AllParameters *const parameters_input, const dealii::ParameterHandler &parameter_handler_input)
Constructor.
int run_sampling() const override
Run Sampling Procedure.