LCOV - code coverage report
Current view: top level - src/base - FlowModelSetup.C (source / functions) Hit Total Coverage
Test: idaholab/moose thermal_hydraulics: #32971 (54bef8) with base c6cf66 Lines: 47 49 95.9 %
Date: 2026-05-29 20:41:18 Functions: 6 6 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       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             : 
      15             : InputParameters
      16          20 : FlowModelSetup::validParams()
      17             : {
      18          20 :   InputParameters params = emptyInputParameters();
      19             : 
      20          40 :   params.addParam<bool>("2nd_order_mesh", false, "Use 2nd order elements in the mesh");
      21          40 :   params.addParam<Real>(
      22             :       "gravity_magnitude", THM::gravity_const, "Gravitational acceleration magnitude");
      23             : 
      24          20 :   return params;
      25           0 : }
      26             : 
      27          20 : FlowModelSetup::FlowModelSetup(const InputParameters & params)
      28          20 :   : _this_params(params),
      29          20 :     _this_app(*_this_params.getCheckedPointerParam<MooseApp *>(MooseBase::app_param)),
      30          20 :     _this_action_factory(_this_app.getActionFactory()),
      31          20 :     _this_action_warehouse(*_this_params.getCheckedPointerParam<ActionWarehouse *>("awh")),
      32          20 :     _fe_family(AddVariableAction::getNonlinearVariableFamilies()),
      33          20 :     _fe_order(AddVariableAction::getNonlinearVariableOrders()),
      34          60 :     _gravity_magnitude(getParam<Real>("gravity_magnitude"))
      35             : {
      36          40 :   if (getParam<bool>("2nd_order_mesh"))
      37           0 :     _fe_order = "SECOND";
      38          20 : }
      39             : 
      40             : void
      41          60 : FlowModelSetup::addSolutionVariable(const VariableName & var_name, const Real & scaling)
      42             : {
      43          60 :   const std::string class_name = "AddVariableAction";
      44          60 :   InputParameters params = _this_action_factory.getValidParams(class_name);
      45          60 :   params.set<std::vector<Real>>("scaling") = {scaling};
      46          60 :   params.set<MooseEnum>("family") = _fe_family;
      47          60 :   params.set<MooseEnum>("order") = _fe_order;
      48             : 
      49             :   std::shared_ptr<Action> action =
      50          60 :       std::static_pointer_cast<Action>(_this_action_factory.create(class_name, var_name, params));
      51             : 
      52         180 :   _this_action_warehouse.addActionBlock(action);
      53         120 : }
      54             : 
      55             : void
      56         160 : FlowModelSetup::addAuxVariable(const VariableName & var_name)
      57             : {
      58         160 :   const std::string class_name = "AddAuxVariableAction";
      59         160 :   InputParameters params = _this_action_factory.getValidParams(class_name);
      60             : 
      61             :   std::shared_ptr<Action> action =
      62         160 :       std::static_pointer_cast<Action>(_this_action_factory.create(class_name, var_name, params));
      63             : 
      64         480 :   _this_action_warehouse.addActionBlock(action);
      65         320 : }
      66             : 
      67             : void
      68          80 : FlowModelSetup::addFunctionIC(const VariableName & var_name, const FunctionName & function_name)
      69             : {
      70          80 :   const std::string class_name = "AddInitialConditionAction";
      71          80 :   InputParameters params = _this_action_factory.getValidParams(class_name);
      72          80 :   params.set<std::string>("type") = "FunctionIC";
      73             : 
      74             :   std::shared_ptr<MooseObjectAction> action = std::static_pointer_cast<MooseObjectAction>(
      75         160 :       _this_action_factory.create(class_name, var_name + "_IC", params));
      76             : 
      77          80 :   action->getObjectParams().set<VariableName>("variable") = var_name;
      78          80 :   action->getObjectParams().set<FunctionName>("function") = function_name;
      79             : 
      80         240 :   _this_action_warehouse.addActionBlock(action);
      81         160 : }
      82             : 
      83             : void
      84          20 : FlowModelSetup::addMaterials()
      85             : {
      86             :   {
      87          20 :     const std::string class_name = "AddMaterialAction";
      88          20 :     InputParameters params = _this_action_factory.getValidParams(class_name);
      89          20 :     params.set<std::string>("type") = "DirectionMaterial";
      90             : 
      91             :     std::shared_ptr<MooseObjectAction> action = std::static_pointer_cast<MooseObjectAction>(
      92          20 :         _this_action_factory.create(class_name, "direction_material", params));
      93          60 :     _this_action_warehouse.addActionBlock(action);
      94          20 :   }
      95          20 : }

Generated by: LCOV version 1.14