https://mooseframework.inl.gov
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. More...
 
virtual unsigned int nDim () const override
 Inputted number of dimensions. More...
 
virtual std::vector< RealquadraturePoint (const unsigned int n) const override
 Quadrature point n. More...
 
virtual Real quadraturePoint (const unsigned int n, const unsigned int dim) const override
 Quadrature point n for dimension dim. More...
 
virtual Real quadratureWeight (const unsigned int n) const override
 Weight for quadrature point n. More...
 

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 }
R poly(const C &c, const T x, const bool derivative=false)
void mooseError(Args &&... args)
std::unique_ptr< const StochasticTools::WeightedCartesianProduct< Real, Real > > _quad

◆ 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  }
R poly(const C &c, const T x, const bool derivative=false)
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(); };
std::unique_ptr< const StochasticTools::WeightedCartesianProduct< Real, Real > > _quad

◆ 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(); };
std::unique_ptr< const StochasticTools::WeightedCartesianProduct< Real, Real > > _quad

◆ 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  };
std::unique_ptr< const StochasticTools::WeightedCartesianProduct< Real, Real > > _quad

◆ 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  };
std::unique_ptr< const StochasticTools::WeightedCartesianProduct< Real, Real > > _quad

◆ 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  };
std::unique_ptr< const StochasticTools::WeightedCartesianProduct< Real, Real > > _quad

Member Data Documentation

◆ _quad

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

Definition at line 175 of file PolynomialQuadrature.h.

Referenced by nDim(), nPoints(), quadraturePoint(), quadratureWeight(), and TensorGrid().


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