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 "PostprocessorAsControlAction.h" 11 : #include "Simulation.h" 12 : #include "THMProblem.h" 13 : 14 : registerMooseAction("ThermalHydraulicsApp", PostprocessorAsControlAction, "add_postprocessor"); 15 : 16 : InputParameters 17 12293 : PostprocessorAsControlAction::validParams() 18 : { 19 12293 : InputParameters params = MooseObjectAction::validParams(); 20 12293 : params.addClassDescription( 21 : "This action adds a control object that copies a postprocessor value into the control " 22 : "system so that users can work with the postprocessor name directly."); 23 12293 : return params; 24 0 : } 25 : 26 12293 : PostprocessorAsControlAction::PostprocessorAsControlAction(const InputParameters & params) 27 12293 : : MooseObjectAction(params) 28 : { 29 12293 : } 30 : 31 : void 32 11997 : PostprocessorAsControlAction::act() 33 : { 34 11997 : THMProblem * thm_problem = dynamic_cast<THMProblem *>(_problem.get()); 35 11997 : if (thm_problem) 36 : { 37 10001 : const std::string class_name = "THMAddControlAction"; 38 10001 : InputParameters params = _action_factory.getValidParams(class_name); 39 10001 : params.set<std::string>("type") = "CopyPostprocessorValueControl"; 40 : 41 : std::shared_ptr<MooseObjectAction> action = std::static_pointer_cast<MooseObjectAction>( 42 20002 : _action_factory.create(class_name, _name + "_copy_ctrl", params)); 43 : 44 20002 : action->getObjectParams().set<PostprocessorName>("postprocessor") = _name; 45 : 46 30003 : _awh.addActionBlock(action); 47 10001 : } 48 11997 : }