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");
53 _allow_negative_qweights(getParam<bool>(
"allow_negative_qweights"))
55 for (
const auto & t : getParam<MultiMooseEnum>(
"custom_types"))
56 _custom_block_types.push_back(Moose::stringToEnum<libMesh::QuadratureType>(std::string(t)));
60 "Must have the same number of entries as 'custom_blocks' (got ",
static MooseEnum getQuadratureOrderEnum()
Return the potential selections for the order of the quadrature, with an 'auto' default.
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 ...
static MultiMooseEnum getQuadratureOrdersMultiEnum()
A MultiMooseEnum for selecting multiple quadrature orders.
T stringToEnum(const std::string &s)
const std::vector< std::pair< SubdomainID, MooseEnumItem > > _custom_block_orders
registerMooseAction("MooseApp", SetupQuadratureAction, "setup_quadrature")
The following methods are specializations for using the libMesh::Parallel::packed_range_* routines fo...
Order stringToEnum< Order >(const std::string &s)
const bool _allow_negative_qweights
static MooseEnum getQuadratureTypesEnum()
Return the possible selections for the type of the quadrature.
libMesh::QuadratureType _type
static InputParameters validParams()
virtual void act() override
Method to add objects to the simulation or perform other setup tasks.
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
static InputParameters validParams()
static MultiMooseEnum getQuadratureTypesMultiEnum()
A MultiMooseEnum for selecting multiple quadrature types (one per custom block)
const SubdomainID ANY_BLOCK_ID
Class for containing MooseEnum item information.
SetupQuadratureAction(const InputParameters ¶meters)
std::shared_ptr< FEProblemBase > & _problem
Convenience reference to a problem this action works on.
MOOSE now contains C++17 code, so give a reasonable error message stating what the user can do to add...
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type...
auto index_range(const T &sizable)
std::vector< libMesh::QuadratureType > _custom_block_types
Per-block quadrature types, parallel to _custom_block_orders. Falls back to _type if empty...