MUQ  0.4.3
AdaptiveSmolyakPCE.h
Go to the documentation of this file.
1 #ifndef ADAPTIVESMOLYAKPCE_H
2 #define ADAPTIVESMOLYAKPCE_H
3 
7 
9 
10 namespace muq {
11 namespace Approximation {
12 
13  class AdaptiveSmolyakPCE : public SmolyakEstimator<std::shared_ptr<PolynomialChaosExpansion>> {
14 
15  public:
16  AdaptiveSmolyakPCE(std::shared_ptr<muq::Modeling::ModPiece> const& modelIn,
17  std::vector<std::shared_ptr<Quadrature>> const& quad1dIn,
18  std::vector<std::shared_ptr<IndexedScalarBasis>> const& polys1dIn);
19 
20  virtual ~AdaptiveSmolyakPCE() = default;
21 
22  protected:
23  virtual std::vector<Eigen::VectorXd> OneTermPoints(std::shared_ptr<muq::Utilities::MultiIndex> const& multi) override;
24 
25  virtual std::shared_ptr<PolynomialChaosExpansion> ComputeOneTerm(std::shared_ptr<muq::Utilities::MultiIndex> const& multi,
26  std::vector<std::reference_wrapper<const Eigen::VectorXd>> const& modEvals) override;
27 
28  virtual std::shared_ptr<PolynomialChaosExpansion> AddEstimates(double w1, std::shared_ptr<PolynomialChaosExpansion> const& part1,
29  double w2, std::shared_ptr<PolynomialChaosExpansion> const& part2) const override;
30 
31  virtual double ComputeMagnitude(std::shared_ptr<PolynomialChaosExpansion> const& estimate) const override;
32 
34 
35  }; // class AdaptiveSmolyakPCE
36 
37 } // namespace Approximation
38 } // namespace muq
39 
40 
41 #endif
virtual std::vector< Eigen::VectorXd > OneTermPoints(std::shared_ptr< muq::Utilities::MultiIndex > const &multi) override
virtual double ComputeMagnitude(std::shared_ptr< PolynomialChaosExpansion > const &estimate) const override
AdaptiveSmolyakPCE(std::shared_ptr< muq::Modeling::ModPiece > const &modelIn, std::vector< std::shared_ptr< Quadrature >> const &quad1dIn, std::vector< std::shared_ptr< IndexedScalarBasis >> const &polys1dIn)
virtual std::shared_ptr< PolynomialChaosExpansion > AddEstimates(double w1, std::shared_ptr< PolynomialChaosExpansion > const &part1, double w2, std::shared_ptr< PolynomialChaosExpansion > const &part2) const override
virtual std::shared_ptr< PolynomialChaosExpansion > ComputeOneTerm(std::shared_ptr< muq::Utilities::MultiIndex > const &multi, std::vector< std::reference_wrapper< const Eigen::VectorXd >> const &modEvals) override
Factory class for constructing a pseudo-spectral polynomial chaos approximation using a fixed quadrat...
Definition: PCEFactory.h:22