https://mooseframework.inl.gov
Loading...
Searching...
No Matches
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
16registerMooseAction("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
43void
47
48void
50{
51 for (unsigned int i = 0; i < _variables.size(); ++i)
52 {
55 }
56}
57
58void
63
64void
66{
68 // unity
69 {
70 const std::string class_name = "AddMaterialAction";
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
85void
registerMooseAction("ThermalHydraulicsTestApp", JacobianTestGeneralAction, "meta_action")
std::shared_ptr< Action > create(const std::string &action, const std::string &action_name, InputParameters &parameters)
InputParameters getValidParams(const std::string &name)
void addActionBlock(std::shared_ptr< Action > blk)
ActionWarehouse & _awh
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)
T & set(const std::string &name, bool quiet_mode=false)
Base class for adding common actions for Jacobian tests.
static InputParameters validParams()
Action for setting up a Jacobian test that does not need physics setup.
virtual void addInitialConditions() override
Adds the initial conditions.
const std::vector< FunctionName > _variable_values
List of values for the variables to add.
static InputParameters validParams()
virtual void addUserObjects() override
Adds user objects.
virtual void addAuxVariables() override
Adds aux variables.
virtual void addMaterials() override
Adds materials.
virtual void addSolutionVariables() override
Adds the solution variables.
JacobianTestGeneralAction(const InputParameters &params)
const std::vector< VariableName > _variables
List of variables to add.
void mooseError(Args &&... args) const
ActionFactory & _action_factory
virtual void addMaterials()
Adds materials.
Definition TestAction.C:216
void addFunctionIC(const VariableName &var_name, const FunctionName &function_name)
Adds a function initial condition.
Definition TestAction.C:283
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:232
virtual void addAuxVariables()
Adds aux variables.
Definition TestAction.C:182