https://mooseframework.inl.gov
Loading...
Searching...
No Matches
Public Member Functions | Private Attributes | List of all members
PolynomialQuadrature::TensorGrid Class Reference

Full tensor product of 1D quadratures. More...

#include <PolynomialQuadrature.h>

Inheritance diagram for PolynomialQuadrature::TensorGrid:
[legend]

Public Member Functions

 TensorGrid (const std::vector< unsigned int > &npoints, std::vector< std::unique_ptr< const Polynomial > > &poly)
 
 TensorGrid (const unsigned int npoints, std::vector< std::unique_ptr< const Polynomial > > &poly)
 
virtual unsigned int nPoints () const override
 Resulting number of quadrature points in grid.
 
virtual unsigned int nDim () const override
 Inputted number of dimensions.
 
virtual std::vector< Real > quadraturePoint (const unsigned int n) const override
 Quadrature point n.
 
virtual Real quadraturePoint (const unsigned int n, const unsigned int dim) const override
 Quadrature point n for dimension dim.
 
virtual Real quadratureWeight (const unsigned int n) const override
 Weight for quadrature point n.
 

Private Attributes

std::unique_ptr< const StochasticTools::WeightedCartesianProduct< Real, Real > > _quad = nullptr
 

Detailed Description

Full tensor product of 1D quadratures.

Definition at line 148 of file PolynomialQuadrature.h.

Constructor & Destructor Documentation

◆ TensorGrid() [1/2]

PolynomialQuadrature::TensorGrid::TensorGrid ( const std::vector< unsigned int > &  npoints,
std::vector< std::unique_ptr< const Polynomial > > &  poly 
)

Definition at line 433 of file PolynomialQuadrature.C.

435{
436 if (npoints.size() != poly.size())
437 ::mooseError("List of number of 1D quadrature points must be same size as number of Polynomial "
438 "objects.");
439
440 std::vector<std::vector<Real>> qpoints_1D(poly.size());
441 std::vector<std::vector<Real>> qweights_1D(poly.size());
442 for (unsigned int d = 0; d < poly.size(); ++d)
443 poly[d]->gaussQuadrature(npoints[d] - 1, qpoints_1D[d], qweights_1D[d]);
444
445 _quad = std::make_unique<const StochasticTools::WeightedCartesianProduct<Real, Real>>(
446 qpoints_1D, qweights_1D);
447}
std::unique_ptr< const StochasticTools::WeightedCartesianProduct< Real, Real > > _quad
R poly(const C &c, const T x, const bool derivative=false)

◆ TensorGrid() [2/2]

PolynomialQuadrature::TensorGrid::TensorGrid ( const unsigned int  npoints,
std::vector< std::unique_ptr< const Polynomial > > &  poly 
)
inline

Definition at line 153 of file PolynomialQuadrature.h.

154 : TensorGrid(std::vector<unsigned int>(poly.size(), npoints), poly)
155 {
156 }
TensorGrid(const std::vector< unsigned int > &npoints, std::vector< std::unique_ptr< const Polynomial > > &poly)

Member Function Documentation

◆ nDim()

virtual unsigned int PolynomialQuadrature::TensorGrid::nDim ( ) const
inlineoverridevirtual

Inputted number of dimensions.

Implements PolynomialQuadrature::Quadrature.

Definition at line 159 of file PolynomialQuadrature.h.

159{ return _quad->numCols(); };

◆ nPoints()

virtual unsigned int PolynomialQuadrature::TensorGrid::nPoints ( ) const
inlineoverridevirtual

Resulting number of quadrature points in grid.

Implements PolynomialQuadrature::Quadrature.

Definition at line 158 of file PolynomialQuadrature.h.

158{ return _quad->numRows(); };

◆ quadraturePoint() [1/2]

virtual std::vector< Real > PolynomialQuadrature::TensorGrid::quadraturePoint ( const unsigned int  n) const
inlineoverridevirtual

Quadrature point n.

Implements PolynomialQuadrature::Quadrature.

Definition at line 161 of file PolynomialQuadrature.h.

162 {
163 return _quad->computeRow(n);
164 };

◆ quadraturePoint() [2/2]

virtual Real PolynomialQuadrature::TensorGrid::quadraturePoint ( const unsigned int  n,
const unsigned int  dim 
) const
inlineoverridevirtual

Quadrature point n for dimension dim.

Implements PolynomialQuadrature::Quadrature.

Definition at line 165 of file PolynomialQuadrature.h.

166 {
167 return _quad->computeValue(n, dim);
168 };

◆ quadratureWeight()

virtual Real PolynomialQuadrature::TensorGrid::quadratureWeight ( const unsigned int  n) const
inlineoverridevirtual

Weight for quadrature point n.

Implements PolynomialQuadrature::Quadrature.

Definition at line 169 of file PolynomialQuadrature.h.

170 {
171 return _quad->computeWeight(n);
172 };

Member Data Documentation

◆ _quad

std::unique_ptr<const StochasticTools::WeightedCartesianProduct<Real, Real> > PolynomialQuadrature::TensorGrid::_quad = nullptr
private

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