https://mooseframework.inl.gov
Namespaces | Functions
PolynomialQuadrature.C File Reference

Go to the source code of this file.

Namespaces

 PolynomialQuadrature
 Polynomials and quadratures based on defined distributions for Polynomial Chaos.
 

Functions

std::unique_ptr< const Polynomial > PolynomialQuadrature::makePolynomial (const Distribution *dist)
 
Real PolynomialQuadrature::legendre (const unsigned int order, const Real x, const Real lower_bound=-1.0, const Real upper_bound=1.0)
 Legendre polynomial of specified order. More...
 
Real PolynomialQuadrature::hermite (const unsigned int order, const Real x, const Real mu=0.0, const Real sig=1.0)
 Hermite polynomial of specified order. More...
 
void PolynomialQuadrature::gauss_legendre (const unsigned int order, std::vector< Real > &points, std::vector< Real > &weights, const Real lower_bound, const Real upper_bound)
 Generalized formula for any polynomial order. More...
 
void PolynomialQuadrature::gauss_hermite (const unsigned int order, std::vector< Real > &points, std::vector< Real > &weights, const Real mu, const Real sig)
 Generalized formula for any polynomial order. More...
 
void PolynomialQuadrature::clenshaw_curtis (const unsigned int order, std::vector< Real > &points, std::vector< Real > &weights)
 
template<>
void dataStore (std::ostream &stream, std::unique_ptr< const PolynomialQuadrature::Polynomial > &ptr, void *context)
 
template<>
void dataLoad (std::istream &stream, std::unique_ptr< const PolynomialQuadrature::Polynomial > &ptr, void *context)
 

Function Documentation

◆ dataLoad()

template<>
void dataLoad ( std::istream &  stream,
std::unique_ptr< const PolynomialQuadrature::Polynomial > &  ptr,
void context 
)

Definition at line 578 of file PolynomialQuadrature.C.

581 {
582  std::string poly_type;
583  dataLoad(stream, poly_type, context);
584  if (poly_type == "Legendre")
585  {
586  Real lower_bound, upper_bound;
587  dataLoad(stream, lower_bound, context);
588  dataLoad(stream, upper_bound, context);
589  ptr = std::make_unique<const PolynomialQuadrature::Legendre>(lower_bound, upper_bound);
590  }
591  else if (poly_type == "Hermite")
592  {
593  Real mean, stddev;
594  dataLoad(stream, mean, context);
595  dataLoad(stream, stddev, context);
596  ptr = std::make_unique<const PolynomialQuadrature::Hermite>(mean, stddev);
597  }
598  else
599  ::mooseError("Unknown Polynomaial type: ", poly_type);
600 }
void dataLoad(std::istream &stream, std::unique_ptr< const PolynomialQuadrature::Polynomial > &ptr, void *context)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

◆ dataStore()

template<>
void dataStore ( std::ostream &  stream,
std::unique_ptr< const PolynomialQuadrature::Polynomial > &  ptr,
void context 
)

Definition at line 569 of file PolynomialQuadrature.C.

Referenced by PolynomialQuadrature::Legendre::store(), and PolynomialQuadrature::Hermite::store().

572 {
573  ptr->store(stream, context);
574 }