15 #include "libmesh/boundary_info.h" 24 MooseEnum conversion_type(
"FIRST_ORDER SECOND_ORDER_NONFULL SECOND_ORDER COMPLETE_ORDER",
28 params.
addRequiredParam<MeshGeneratorName>(
"input",
"The mesh we want to modify");
30 "conversion_type", conversion_type,
"The type of element order conversion to perform");
37 _input(getMesh(
"input")),
42 std::unique_ptr<MeshBase>
45 std::unique_ptr<MeshBase>
mesh = std::move(
_input);
50 mesh->all_first_order();
53 mesh->all_second_order(
false);
56 mesh->all_second_order();
59 mesh->all_complete_order();
65 mesh->set_isnt_prepared();
static InputParameters validParams()
const OrderConversionType _conversion_type
Type of Element Order Conversion.
registerMooseObject("MooseApp", ElementOrderConversionGenerator)
std::unique_ptr< T_DEST, T_DELETER > dynamic_pointer_cast(std::unique_ptr< T_SRC, T_DELETER > &src)
These are reworked from https://stackoverflow.com/a/11003103.
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
static InputParameters validParams()
ElementOrderConversionGenerator(const InputParameters ¶meters)
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
virtual std::unique_ptr< MeshBase > generate() override
Generate / modify the mesh.
std::unique_ptr< MeshBase > & _input
The input mesh.
MeshGenerators are objects that can modify or add to an existing mesh.