https://mooseframework.inl.gov
SubChannelApp.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 "SubChannelApp.h"
11 #include "Moose.h"
12 #include "AppFactory.h"
13 #include "FluidPropertiesApp.h"
14 #include "HeatTransferApp.h"
15 #include "ReactorApp.h"
16 #include "MooseSyntax.h"
17 #include "SubChannelSyntax.h"
18 
21 {
23  params.set<bool>("use_legacy_initial_residual_evaluation_behavior") = false;
24  params.set<bool>("use_legacy_material_output") = false;
25 
26  return params;
27 }
28 
29 SubChannelApp::SubChannelApp(const InputParameters & parameters) : MooseApp(parameters)
30 {
32 }
33 
34 void
36 {
37  Registry::registerObjectsTo(f, {"SubChannelApp"});
38  Registry::registerActionsTo(af, {"SubChannelApp"});
39 
40  // Cited by --citations whenever any SubChannel object is used in a simulation
41  Registry::addAppCitation("SubChannelApp",
42  "kyriakopoulos2022development",
43  R"(@article{kyriakopoulos2022development,
44  title={Development of a Single-Phase, Transient, Subchannel Code, within the MOOSE Multi-Physics Computational Framework},
45  author={Kyriakopoulos, Vasileios and Tano, Mauricio E and Ragusa, Jean C},
46  journal={Energies},
47  volume={15},
48  number={11},
49  pages={3948},
50  year={2022},
51  publisher={MDPI}
52 })");
53  Registry::addAppCitation("SubChannelApp",
54  "kyriakopoulos2026numerical",
55  R"(@article{kyriakopoulos2026numerical,
56  title={Numerical implementation of the MOOSE subchannel module (SCM) algorithm},
57  author={Kyriakopoulos, Vasileios and Tano, Mauricio},
58  journal={Nuclear Engineering and Design},
59  volume={450},
60  pages={114802},
61  year={2026},
62  publisher={Elsevier}
63 })");
64 
65  /* register custom execute flags, action syntax, etc. here */
66  SCM::associateSyntax(s, af);
67 
68  // Register new syntax for SCMClosures
69  auto & syntax = s;
70  registerSyntaxTask("AddSCMClosureAction", "SCMClosures/*", "add_scm_closure");
71  registerMooseObjectTask("add_scm_closure", SCMClosureBase, /*default task*/ false);
72 
75  ReactorApp::registerAll(f, af, s);
76 }
77 
78 void
80 {
81  registerApp(SubChannelApp);
82 
86 }
87 
88 /***************************************************************************************************
89  *********************** Dynamic Library Entry Points - DO NOT MODIFY ******************************
90  **************************************************************************************************/
91 extern "C" void
93 {
95 }
96 extern "C" void
98 {
100 }
static void registerApps()
static void registerAll(Factory &f, ActionFactory &af, Syntax &s)
Definition: SubChannelApp.C:35
void associateSyntax(Syntax &syntax, ActionFactory &action_factory)
Application used when running the subchannel module directly.
Definition: SubChannelApp.h:17
static void registerApps()
static void addAppCitation(const std::string &app_name, const std::string &key, const std::string &bibtex)
static InputParameters validParams()
Definition: SubChannelApp.C:20
T & set(const std::string &name, bool quiet_mode=false)
static void registerObjectsTo(Factory &f, const std::set< std::string > &labels)
Syntax _syntax
Syntax & syntax()
static InputParameters validParams()
void SubChannelApp__registerAll(Factory &f, ActionFactory &af, Syntax &s)
Definition: SubChannelApp.C:92
static void registerActionsTo(ActionFactory &f, const std::set< std::string > &labels)
Real f(Real x)
Test function for Brents method.
ActionFactory _action_factory
void SubChannelApp__registerApps()
Definition: SubChannelApp.C:97
static void registerApps()
Definition: ReactorApp.C:42
SubChannelApp(const InputParameters &parameters)
Definition: SubChannelApp.C:29
Base class for SCM closures.
Factory _factory
static void registerApps()
Definition: SubChannelApp.C:79
static void registerAll(Factory &f, ActionFactory &af, Syntax &s)
static void registerAll(Factory &f, ActionFactory &af, Syntax &s)
Definition: ReactorApp.C:32
static void registerAll(Factory &f, ActionFactory &af, Syntax &s)