28 params.
addParam<std::vector<SubdomainID>>(
"custom_blocks",
29 std::vector<SubdomainID>{},
30 "list of blocks to specify custom quadrature order");
34 "list of quadrature orders for the blocks specified in `custom_blocks`");
38 "list of quadrature types for the blocks specified in `custom_blocks` "
39 "(must match length of custom_blocks; omit to use global type for all custom blocks)");
41 "allow_negative_qweights",
true,
"Whether or not allow negative quadrature weights");
50 _element_order(
Moose::stringToEnum<Order>(getParam<
MooseEnum>(
"element_order"))),
51 _side_order(
Moose::stringToEnum<Order>(getParam<
MooseEnum>(
"side_order"))),
53 _allow_negative_qweights(getParam<bool>(
"allow_negative_qweights"))
55 for (
const auto & t : getParam<MultiMooseEnum>(
"custom_types"))
60 "Must have the same number of entries as 'custom_blocks' (got ",
registerMooseAction("MooseApp", SetupQuadratureAction, "setup_quadrature")
static InputParameters validParams()
std::shared_ptr< FEProblemBase > & _problem
Convenience reference to a problem this action works on.
void paramError(const std::string ¶m, Args... args) const
Emits an error prefixed with the file and line number of the given param (from the input file) along ...
Class for containing MooseEnum item information.
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type.
static MultiMooseEnum getQuadratureOrdersMultiEnum()
A MultiMooseEnum for selecting multiple quadrature orders.
static InputParameters validParams()
libMesh::QuadratureType _type
const bool _allow_negative_qweights
const std::vector< std::pair< SubdomainID, MooseEnumItem > > _custom_block_orders
static MooseEnum getQuadratureOrderEnum()
Return the potential selections for the order of the quadrature, with an 'auto' default.
static MultiMooseEnum getQuadratureTypesMultiEnum()
A MultiMooseEnum for selecting multiple quadrature types (one per custom block)
std::vector< libMesh::QuadratureType > _custom_block_types
Per-block quadrature types, parallel to _custom_block_orders. Falls back to _type if empty.
SetupQuadratureAction(const InputParameters ¶meters)
virtual void act() override
Method to add objects to the simulation or perform other setup tasks.
static MooseEnum getQuadratureTypesEnum()
Return the possible selections for the type of the quadrature.
MOOSE now contains C++17 code, so give a reasonable error message stating what the user can do to add...
const SubdomainID ANY_BLOCK_ID
libMesh::QuadratureType stringToEnum< libMesh::QuadratureType >(const std::string &s)
Order stringToEnum< Order >(const std::string &s)
The following methods are specializations for using the libMesh::Parallel::packed_range_* routines fo...