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.
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 ...
Definition: MooseBase.h:435
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)
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)