20 "combinatorial_geometry",
21 "Function expression encoding a combinatorial geometry");
23 "Subdomain id to set for inside of the combinatorial");
24 params.
addParam<SubdomainName>(
"block_name",
25 "Subdomain name to set for inside of the combinatorial");
27 "Uses a parsed expression (`combinatorial_geometry`) to determine if an " 28 "element (via its centroid) is inside the region defined by the expression and " 29 "assigns a new block ID.");
59 mesh->subdomain_name(getParam<subdomain_id_type>(
"block_id")) =
60 getParam<SubdomainName>(
"block_name");
void setBlockName(std::unique_ptr< MeshBase > &mesh) override
Set block name for the block with new id if applicable.
GenericReal< is_ad > evaluate(SymFunctionPtr &, const std::string &object_name="")
Evaluate FParser object and check EvalError.
std::vector< unsigned int > _eeid_indices
Indices of the extra element ids used in the parsed expression.
static InputParameters validParams()
registerMooseObject("MooseApp", ParsedSubdomainMeshGenerator)
T * get(const std::unique_ptr< T > &u)
The MooseUtils::get() specializations are used to support making forwards-compatible code changes fro...
std::vector< subdomain_id_type > _excluded_ids
A list of excluded subdomain ids that will not be changed even if they are in the combinatorial geome...
static InputParameters validParams()
A base class for mesh generators that Use a parsed expression to assign new subdomain id(s) ...
bool isParamValid(const std::string &name) const
Test if the supplied parameter is valid.
void assignElemSubdomainID(Elem *elem) override
Assign the subdomain id to the element based on the parsed expression.
SymFunctionPtr _func_F
function parser object describing the combinatorial geometry
ParsedSubdomainMeshGenerator(const InputParameters ¶meters)
std::vector< GenericReal< is_ad > > _func_params
Array to stage the parameters passed to the functions when calling Eval.
MeshGenerator for defining a Subdomain inside or outside of combinatorial geometry.
const subdomain_id_type _block_id
Block ID to assign to the region.
auto index_range(const T &sizable)