25 "order",
"Specify the maximum order of the polynomials in the expansion.");
26 MooseEnum grid(
"none smolyak clenshaw-curtis",
"none");
28 "sparse_grid", grid,
"Type of sparse grid to use, if none, full tensor product is used.");
31 "The distribution names to be sampled, the number of distributions provided defines the " 32 "number of columns per matrix and their type defines the quadrature.");
39 std::vector<std::unique_ptr<const PolynomialQuadrature::Polynomial>> poly_1d;
40 for (
auto dname :
getParam<std::vector<DistributionName>>(
"distributions"))
44 switch (getParam<MooseEnum>(
"sparse_grid"))
48 _grid = std::make_unique<const PolynomialQuadrature::TensorGrid>(
49 getParam<unsigned int>(
"order") + 1, poly_1d);
54 _grid = std::make_unique<const PolynomialQuadrature::SmolyakGrid>(
55 getParam<unsigned int>(
"order"), poly_1d);
60 _grid = std::make_unique<const PolynomialQuadrature::ClenshawCurtisGrid>(
61 getParam<unsigned int>(
"order"), poly_1d);
64 paramError(
"sparse_grid",
"Unknown or unimplemented sparse grid type.");
74 return _grid->quadraturePoint(row_index, col_index);
80 return _grid->quadratureWeight(row_index);
A class used to produce samples based on quadrature for Polynomial Chaos.
void setNumberOfRows(dof_id_type n_rows)
registerMooseObjectAliased("StochasticToolsApp", QuadratureSampler, "Quadrature")
static InputParameters validParams()
std::unique_ptr< const Polynomial > makePolynomial(const Distribution *dist)
static InputParameters validParams()
QuadratureSampler(const InputParameters ¶meters)
registerMooseObjectReplaced("StochasticToolsApp", QuadratureSampler, "07/01/2020 00:00", Quadrature)
const T & getParam(const std::string &name) const
Real getQuadratureWeight(dof_id_type row_index) const
void paramError(const std::string ¶m, Args... args) const
const Distribution & getDistributionByName(const DistributionName &name) const
std::unique_ptr< const PolynomialQuadrature::Quadrature > _grid
Quadrature weights and points.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void setNumberOfCols(dof_id_type n_cols)
virtual Real computeSample(dof_id_type row_index, dof_id_type col_index) override
Return the sample for the given row and column.