https://mooseframework.inl.gov
Loading...
Searching...
No Matches
FlowModelSetup.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 "FlowModelSetup.h"
11#include "MooseObjectAction.h"
12#include "AddVariableAction.h"
13#include "Numerics.h"
14
17{
19
20 params.addParam<bool>("2nd_order_mesh", false, "Use 2nd order elements in the mesh");
21 params.addParam<Real>(
22 "gravity_magnitude", THM::gravity_const, "Gravitational acceleration magnitude");
23
24 return params;
25}
26
28 : _this_params(params),
29 _this_app(*_this_params.getCheckedPointerParam<MooseApp *>(MooseBase::app_param)),
30 _this_action_factory(_this_app.getActionFactory()),
31 _this_action_warehouse(*_this_params.getCheckedPointerParam<ActionWarehouse *>("awh")),
32 _fe_family(AddVariableAction::getNonlinearVariableFamilies()),
33 _fe_order(AddVariableAction::getNonlinearVariableOrders()),
34 _gravity_magnitude(getParam<Real>("gravity_magnitude"))
35{
36 if (getParam<bool>("2nd_order_mesh"))
37 _fe_order = "SECOND";
38}
39
40void
41FlowModelSetup::addSolutionVariable(const VariableName & var_name, const Real & scaling)
42{
43 const std::string class_name = "AddVariableAction";
45 params.set<std::vector<Real>>("scaling") = {scaling};
46 params.set<MooseEnum>("family") = _fe_family;
47 params.set<MooseEnum>("order") = _fe_order;
48
49 std::shared_ptr<Action> action =
50 std::static_pointer_cast<Action>(_this_action_factory.create(class_name, var_name, params));
51
53}
54
55void
56FlowModelSetup::addAuxVariable(const VariableName & var_name)
57{
58 const std::string class_name = "AddAuxVariableAction";
60
61 std::shared_ptr<Action> action =
62 std::static_pointer_cast<Action>(_this_action_factory.create(class_name, var_name, params));
63
65}
66
67void
68FlowModelSetup::addFunctionIC(const VariableName & var_name, const FunctionName & function_name)
69{
70 const std::string class_name = "AddInitialConditionAction";
72 params.set<std::string>("type") = "FunctionIC";
73
74 std::shared_ptr<MooseObjectAction> action = std::static_pointer_cast<MooseObjectAction>(
75 _this_action_factory.create(class_name, var_name + "_IC", params));
76
77 action->getObjectParams().set<VariableName>("variable") = var_name;
78 action->getObjectParams().set<FunctionName>("function") = function_name;
79
81}
82
83void
85{
86 {
87 const std::string class_name = "AddMaterialAction";
89 params.set<std::string>("type") = "DirectionMaterial";
90
91 std::shared_ptr<MooseObjectAction> action = std::static_pointer_cast<MooseObjectAction>(
92 _this_action_factory.create(class_name, "direction_material", params));
94 }
95}
InputParameters emptyInputParameters()
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 & _this_action_warehouse
void addAuxVariable(const VariableName &var_name)
Adds an aux variable.
static InputParameters validParams()
void addFunctionIC(const VariableName &var_name, const FunctionName &function_name)
Adds a function initial condition.
void addSolutionVariable(const VariableName &var_name, const Real &scaling=1.0)
Adds a solution variable.
FlowModelSetup(const InputParameters &params)
virtual void addMaterials()
MooseEnum _fe_order
MooseEnum _fe_family
ActionFactory & _this_action_factory
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)
static const Real gravity_const
Definition Numerics.h:26