MUQ  0.4.3
muq::Approximation::ExponentialGrowthQuadrature Class Reference

1d Quadrature rule with exponential growth More...

#include <ExponentialGrowthQuadrature.h>

Inheritance diagram for muq::Approximation::ExponentialGrowthQuadrature:

Detailed Description

1d Quadrature rule with exponential growth

In many cases, such as pseudo-spectral constructions of polynomial chaos expansions, it can be advantageous for the quadrature order to grow faster than normal. This rule facilitates that by wrapping around another one dimensional quadrature rule but transforming the index. If the original quadrature rule with index \(j\) is denoted by \(Q_0(j)\), then this rule will return \(q_1(k) = Q(2^k)\) for a specified index $k$.

Definition at line 19 of file ExponentialGrowthQuadrature.h.

Public Member Functions

 ExponentialGrowthQuadrature (std::shared_ptr< Quadrature > const &quadIn)
 
virtual ~ExponentialGrowthQuadrature ()=default
 
virtual void Compute (unsigned int index) override
 
virtual unsigned int Exactness (unsigned int quadOrder) const override
 
virtual Eigen::MatrixXd const & Points () const override
 
virtual Eigen::VectorXd const & Weights () const override
 
- Public Member Functions inherited from muq::Approximation::Quadrature
 Quadrature (unsigned int dimIn)
 
virtual ~Quadrature ()=default
 
virtual void Compute (Eigen::RowVectorXi const &orders)
 
virtual unsigned int Dim () const
 

Constructor & Destructor Documentation

◆ ExponentialGrowthQuadrature()

ExponentialGrowthQuadrature::ExponentialGrowthQuadrature ( std::shared_ptr< Quadrature > const &  quadIn)

Definition at line 5 of file ExponentialGrowthQuadrature.cpp.

◆ ~ExponentialGrowthQuadrature()

virtual muq::Approximation::ExponentialGrowthQuadrature::~ExponentialGrowthQuadrature ( )
virtualdefault

Member Function Documentation

◆ Compute()

void ExponentialGrowthQuadrature::Compute ( unsigned int  index)
overridevirtual

Implements muq::Approximation::Quadrature.

Definition at line 11 of file ExponentialGrowthQuadrature.cpp.

References otherQuad.

◆ Exactness()

unsigned int ExponentialGrowthQuadrature::Exactness ( unsigned int  quadOrder) const
overridevirtual

Returns the order of the polynomial that can be integrated exactly by this quadrature rule. An \(n\)-point Gauss quadrature rule integrates polynomials of order \(2n-1\) exactly. Thus, since \(n\)= quadOrder+1, for Gauss quadrature rules, this function will return 2*quadOrder+1.

In the multivariate tensor product rule, the maximum exactness across all dimensions is returned.

If not exactness information is known (or implemented) for a particular quadrature rule, an exception will be thrown.

Reimplemented from muq::Approximation::Quadrature.

Definition at line 16 of file ExponentialGrowthQuadrature.cpp.

References otherQuad.

◆ Points()

Eigen::MatrixXd const & ExponentialGrowthQuadrature::Points ( ) const
overridevirtual

Return the quadrature points. The output is (Dim x NumPts), where dim is the dimension of the integral under consideration and NumPts is the number of quadrature points used in the rule.

Reimplemented from muq::Approximation::Quadrature.

Definition at line 21 of file ExponentialGrowthQuadrature.cpp.

References otherQuad.

◆ Weights()

Eigen::VectorXd const & ExponentialGrowthQuadrature::Weights ( ) const
overridevirtual

Return the quadrature weights.

Reimplemented from muq::Approximation::Quadrature.

Definition at line 26 of file ExponentialGrowthQuadrature.cpp.

References otherQuad.

Member Data Documentation

◆ otherQuad

std::shared_ptr<Quadrature> muq::Approximation::ExponentialGrowthQuadrature::otherQuad
protected

Definition at line 35 of file ExponentialGrowthQuadrature.h.

Referenced by Compute(), Exactness(), Points(), and Weights().


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