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 "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 :
19 : InputParameters
20 539 : SubChannelApp::validParams()
21 : {
22 539 : InputParameters params = MooseApp::validParams();
23 539 : params.set<bool>("use_legacy_initial_residual_evaluation_behavior") = false;
24 539 : params.set<bool>("use_legacy_material_output") = false;
25 :
26 539 : return params;
27 0 : }
28 :
29 539 : SubChannelApp::SubChannelApp(const InputParameters & parameters) : MooseApp(parameters)
30 : {
31 539 : SubChannelApp::registerAll(_factory, _action_factory, _syntax);
32 539 : }
33 :
34 : void
35 1070 : SubChannelApp::registerAll(Factory & f, ActionFactory & af, Syntax & s)
36 : {
37 1070 : Registry::registerObjectsTo(f, {"SubChannelApp"});
38 1070 : Registry::registerActionsTo(af, {"SubChannelApp"});
39 :
40 : // Cited by --citations whenever any SubChannel object is used in a simulation
41 2140 : 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 2140 : 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 1070 : SCM::associateSyntax(s, af);
67 :
68 : // Register new syntax for SCMClosures
69 : auto & syntax = s;
70 2140 : registerSyntaxTask("AddSCMClosureAction", "SCMClosures/*", "add_scm_closure");
71 2140 : registerMooseObjectTask("add_scm_closure", SCMClosureBase, /*default task*/ false);
72 :
73 1070 : FluidPropertiesApp::registerAll(f, af, s);
74 1070 : HeatTransferApp::registerAll(f, af, s);
75 1070 : ReactorApp::registerAll(f, af, s);
76 1070 : }
77 :
78 : void
79 451 : SubChannelApp::registerApps()
80 : {
81 451 : registerApp(SubChannelApp);
82 :
83 451 : FluidPropertiesApp::registerApps();
84 451 : HeatTransferApp::registerApps();
85 451 : ReactorApp::registerApps();
86 451 : }
87 :
88 : /***************************************************************************************************
89 : *********************** Dynamic Library Entry Points - DO NOT MODIFY ******************************
90 : **************************************************************************************************/
91 : extern "C" void
92 0 : SubChannelApp__registerAll(Factory & f, ActionFactory & af, Syntax & s)
93 : {
94 0 : SubChannelApp::registerAll(f, af, s);
95 0 : }
96 : extern "C" void
97 0 : SubChannelApp__registerApps()
98 : {
99 0 : SubChannelApp::registerApps();
100 0 : }
|