https://mooseframework.inl.gov
MFEMGenericFunctorMaterial.C
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #ifdef MOOSE_MFEM_ENABLED
11 
13 #include "MFEMProblem.h"
14 
16 
19 {
21  params.addClassDescription("Declares material scalar properties based on names and coefficients "
22  "prescribed by input parameters.");
23  params.addRequiredParam<std::vector<std::string>>(
24  "prop_names", "The names of the properties this material will have");
25  params.addRequiredParam<std::vector<MFEMScalarCoefficientName>>(
26  "prop_values",
27  "The corresponding names of coefficients associated with the named properties");
28 
29  return params;
30 }
31 
33  : MFEMFunctorMaterial(parameters),
34  _prop_names(getParam<std::vector<std::string>>("prop_names")),
35  _prop_values(getParam<std::vector<MFEMScalarCoefficientName>>("prop_values"))
36 {
37  if (_prop_names.size() != _prop_values.size())
38  paramError("prop_names", "Must match the size of prop_values");
39 
40  for (const auto i : index_range(_prop_names))
43 }
44 
46 
47 #endif
Moose::MFEM::CoefficientManager & _properties
mfem::Coefficient & declareScalarProperty(const std::string &name, const std::vector< std::string > &blocks, const std::string &existing_or_literal)
Use an existing scalar coefficient for a property on some blocks of the mesh.
const std::vector< MFEMScalarCoefficientName > & _prop_values
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
void addRequiredParam(const std::string &name, const std::string &doc_string)
This method adds a parameter and documentation string to the InputParameters object that will be extr...
const std::vector< std::string > & _prop_names
static InputParameters validParams()
std::vector< std::string > subdomainsToStrings(const std::vector< SubdomainName > &subdomain_names)
std::vector< SubdomainName > _subdomain_names
Stores the names of the subdomains.
registerMooseObject("MooseApp", MFEMGenericFunctorMaterial)
void paramError(const std::string &param, Args... args) const
Emits an error prefixed with the file and line number of the given param (from the input file) along ...
Declares material properties based on names and functions prescribed by input parameters.
void addClassDescription(const std::string &doc_string)
This method adds a description of the class that will be displayed in the input file syntax dump...
auto index_range(const T &sizable)
static InputParameters validParams()
MFEMGenericFunctorMaterial(const InputParameters &parameters)