https://mooseframework.inl.gov
JacobianTestGeneralAction.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 
11 #include "MooseObjectAction.h"
12 #include "ActionFactory.h"
13 #include "ActionWarehouse.h"
14 #include "MooseEnum.h"
15 
16 registerMooseAction("ThermalHydraulicsTestApp", JacobianTestGeneralAction, "meta_action");
17 
20 {
22 
23  params.addParam<std::vector<VariableName>>("variable_names", {}, "List of variables");
24  params.addParam<std::vector<FunctionName>>(
25  "variable_values", {}, "List of values of the variables");
26 
27  params.set<std::string>("fe_family") = "LAGRANGE";
28  params.set<std::string>("fe_order") = "FIRST";
29 
30  return params;
31 }
32 
34  : JacobianTestAction(params),
35  _variables(getParam<std::vector<VariableName>>("variable_names")),
36  _variable_values(getParam<std::vector<FunctionName>>("variable_values"))
37 {
38  if (_variables.size() != _variable_values.size())
39  mooseError("JacobianTestGeneral: The list parameters 'variable_names' and ",
40  "'variable_values' must have the same length.");
41 }
42 
43 void
45 {
46 }
47 
48 void
50 {
51  for (unsigned int i = 0; i < _variables.size(); ++i)
52  {
55  }
56 }
57 
58 void
60 {
62 }
63 
64 void
66 {
68  // unity
69  {
70  const std::string class_name = "AddMaterialAction";
71  InputParameters params = _action_factory.getValidParams(class_name);
72  params.set<std::string>("type") = "ConstantMaterial";
73 
74  std::shared_ptr<MooseObjectAction> action = std::static_pointer_cast<MooseObjectAction>(
75  _action_factory.create(class_name, "unity_material", params));
76 
77  action->getObjectParams().set<std::string>("property_name") = "unity";
78  action->getObjectParams().set<Real>("value") = 1.0;
79  action->getObjectParams().set<std::vector<VariableName>>("derivative_vars") = _variables;
80 
81  _awh.addActionBlock(action);
82  }
83 }
84 
85 void
87 {
88 }
const std::vector< FunctionName > _variable_values
List of values for the variables to add.
ActionWarehouse & _awh
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)
InputParameters getValidParams(const std::string &name)
virtual void addAuxVariables()
Adds aux variables.
Definition: TestAction.C:180
T & set(const std::string &name, bool quiet_mode=false)
void addActionBlock(std::shared_ptr< Action > blk)
const std::vector< VariableName > _variables
List of variables to add.
virtual void addUserObjects() override
Adds user objects.
virtual void addInitialConditions() override
Adds the initial conditions.
std::shared_ptr< Action > create(const std::string &action, const std::string &action_name, InputParameters &parameters)
JacobianTestGeneralAction(const InputParameters &params)
virtual void addMaterials() override
Adds materials.
InputParameters & getObjectParams()
Action for setting up a Jacobian test that does not need physics setup.
registerMooseAction("ThermalHydraulicsTestApp", JacobianTestGeneralAction, "meta_action")
void addSolutionVariable(const VariableName &var_name, const std::string &family="LAGRANGE", const std::string &order="FIRST", const Real &scaling=1.0)
Adds a solution variable.
Definition: TestAction.C:230
static InputParameters validParams()
virtual void addMaterials()
Adds materials.
Definition: TestAction.C:214
Base class for adding common actions for Jacobian tests.
ActionFactory & _action_factory
virtual void addAuxVariables() override
Adds aux variables.
static InputParameters validParams()
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void mooseError(Args &&... args) const
void addFunctionIC(const VariableName &var_name, const FunctionName &function_name)
Adds a function initial condition.
Definition: TestAction.C:281
virtual void addSolutionVariables() override
Adds the solution variables.