https://mooseframework.inl.gov
GenericConstant2DArray.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 #include "GenericConstant2DArray.h"
11 
14 
15 template <bool is_ad>
18 {
19 
21  params.addRequiredParam<std::string>("prop_name",
22  "The names of the properties this material will have");
23  params.addRequiredParam<RealEigenMatrix>("prop_value",
24  "The values associated with the named properties");
25  params.declareControllable("prop_value");
26  params.addClassDescription(
27  "A material evaluating one material property in type of RealEigenMatrix");
28  params.set<MooseEnum>("constant_on") = "SUBDOMAIN";
29  return params;
30 }
31 
32 template <bool is_ad>
34  : Material(parameters),
35  _prop_name(getParam<std::string>("prop_name")),
36  _prop_value(getParam<RealEigenMatrix>("prop_value")),
37  _property(declareGenericProperty<RealEigenMatrix, is_ad>(_prop_name))
38 {
39 }
40 
41 template <bool is_ad>
42 void
44 {
45  computeQpProperties();
46 }
47 
48 template <bool is_ad>
49 void
51 {
52  auto & qp_prop = _property[_qp];
53  const auto m = _prop_value.rows(), n = _prop_value.cols();
54  qp_prop.resize(m, n);
55  for (const auto i : make_range(m))
56  for (const auto j : make_range(n))
57  qp_prop(i, j) = _prop_value(i, j);
58 }
59 
T & set(const std::string &name, bool quiet_mode=false)
Returns a writable reference to the named parameters.
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...
static InputParameters validParams()
Definition: Material.C:14
registerMooseObject("MooseApp", GenericConstant2DArray)
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
Definition: MooseEnum.h:33
virtual void initQpStatefulProperties() override
Initialize stateful properties at quadrature points.
Eigen::Matrix< Real, Eigen::Dynamic, Eigen::Dynamic > RealEigenMatrix
Definition: MooseTypes.h:151
Materials compute MaterialProperties.
Definition: Material.h:34
IntRange< T > make_range(T beg, T end)
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...
Template for defining a constant array material property, using automatic differentiation or not...
static InputParameters validParams()
virtual void computeQpProperties() override
Users must override this method.
void declareControllable(const std::string &name, std::set< ExecFlagType > execute_flags={})
Declare the given parameters as controllable.
GenericConstant2DArrayTempl(const InputParameters &parameters)