https://mooseframework.inl.gov
Loading...
Searching...
No Matches
Namespaces | Functions
PolynomialQuadrature.C File Reference

Go to the source code of this file.

Namespaces

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

Functions

std::unique_ptr< const PolynomialPolynomialQuadrature::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.
 
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.
 
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.
 
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.
 
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

Referenced by dataLoad().

◆ dataStore()

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

Definition at line 569 of file PolynomialQuadrature.C.

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