www.mooseframework.org
NavierStokesApp.C
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
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 "NavierStokesApp.h"
11 #include "Moose.h"
12 #include "AppFactory.h"
13 #include "MooseSyntax.h"
14 
15 #include "FluidPropertiesApp.h"
16 #include "HeatConductionApp.h"
17 
18 template <>
19 InputParameters
21 {
22  InputParameters params = validParams<MooseApp>();
23 
24  params.set<bool>("automatic_automatic_scaling") = false;
25 
26  // Do not use legacy DirichletBC, that is, set DirichletBC default for preset = true
27  params.set<bool>("use_legacy_dirichlet_bc") = false;
28 
29  return params;
30 }
31 
32 registerKnownLabel("NavierStokesApp");
33 
34 NavierStokesApp::NavierStokesApp(InputParameters parameters) : MooseApp(parameters)
35 {
36  NavierStokesApp::registerAll(_factory, _action_factory, _syntax);
37 }
38 
40 
41 void
43 {
44  registerApp(NavierStokesApp);
45 }
46 
47 static void
48 associateSyntaxInner(Syntax & syntax, ActionFactory & /*action_factory*/)
49 {
50  // Create the syntax
51  registerSyntax("AddNavierStokesVariablesAction", "Modules/NavierStokes/Variables");
52  registerSyntax("AddNavierStokesICsAction", "Modules/NavierStokes/ICs");
53  registerSyntax("AddNavierStokesKernelsAction", "Modules/NavierStokes/Kernels");
54  registerSyntax("AddNavierStokesBCsAction", "Modules/NavierStokes/BCs/*");
55 
56  // add variables action
57  registerTask("add_navier_stokes_variables", /*is_required=*/false);
58  addTaskDependency("add_navier_stokes_variables", "add_variable");
59 
60  // add ICs action
61  registerTask("add_navier_stokes_ics", /*is_required=*/false);
62  addTaskDependency("add_navier_stokes_ics", "add_ic");
63 
64  // add Kernels action
65  registerTask("add_navier_stokes_kernels", /*is_required=*/false);
66  addTaskDependency("add_navier_stokes_kernels", "add_kernel");
67 
68  // add BCs actions
69  registerMooseObjectTask("add_navier_stokes_bcs", NSWeakStagnationInletBC, /*is_required=*/false);
70  appendMooseObjectTask("add_navier_stokes_bcs", NSNoPenetrationBC);
71  appendMooseObjectTask("add_navier_stokes_bcs", NSStaticPressureOutletBC);
72  addTaskDependency("add_navier_stokes_bcs", "add_bc");
73 }
74 
75 void
76 NavierStokesApp::registerAll(Factory & f, ActionFactory & af, Syntax & s)
77 {
80  Registry::registerObjectsTo(f, {"NavierStokesApp"});
81  Registry::registerActionsTo(af, {"NavierStokesApp"});
82  associateSyntaxInner(s, af);
83 }
84 
85 void
87 {
88  mooseDeprecated("use registerAll instead of registerObjectsDepends");
90 }
91 
92 void
94 {
95  mooseDeprecated("use registerAll instead of registerObjects");
96  Registry::registerObjectsTo(factory, {"NavierStokesApp"});
97 }
98 
99 void
100 NavierStokesApp::associateSyntaxDepends(Syntax & syntax, ActionFactory & action_factory)
101 {
102  mooseDeprecated("use registerAll instead of associateSyntaxDepends");
103  FluidPropertiesApp::associateSyntax(syntax, action_factory);
104 }
105 
106 void
107 NavierStokesApp::associateSyntax(Syntax & syntax, ActionFactory & action_factory)
108 {
109  mooseDeprecated("use registerAll instead of associateSyntax");
110  Registry::registerActionsTo(action_factory, {"NavierStokesApp"});
111  associateSyntaxInner(syntax, action_factory);
112 }
113 
114 void
116 {
117  mooseDeprecated("use registerAll instead of registerExecFlags");
118 }
119 
120 extern "C" void
121 NavierStokesApp__registerAll(Factory & f, ActionFactory & af, Syntax & s)
122 {
124 }
125 extern "C" void
127 {
129 }
NavierStokesApp::registerApps
static void registerApps()
Definition: NavierStokesApp.C:42
FluidPropertiesApp::registerAll
static void registerAll(Factory &f, ActionFactory &af, Syntax &s)
Definition: FluidPropertiesApp.C:51
NavierStokesApp::registerObjectDepends
static void registerObjectDepends(Factory &factory)
Definition: NavierStokesApp.C:86
HeatConductionApp::registerAll
static void registerAll(Factory &f, ActionFactory &af, Syntax &s)
Definition: HeatConductionApp.C:64
associateSyntaxInner
static void associateSyntaxInner(Syntax &syntax, ActionFactory &)
Definition: NavierStokesApp.C:48
NavierStokesApp::NavierStokesApp
NavierStokesApp(InputParameters parameters)
Definition: NavierStokesApp.C:34
NSWeakStagnationInletBC
This class facilitates adding weak stagnation inlet BCs via an Action by setting up the required para...
Definition: NSWeakStagnationInletBC.h:24
NavierStokesApp::registerAll
static void registerAll(Factory &f, ActionFactory &af, Syntax &s)
Definition: NavierStokesApp.C:76
NavierStokesApp::associateSyntaxDepends
static void associateSyntaxDepends(Syntax &syntax, ActionFactory &action_factory)
Definition: NavierStokesApp.C:100
NavierStokesApp::~NavierStokesApp
virtual ~NavierStokesApp()
Definition: NavierStokesApp.C:39
NavierStokesApp
Definition: NavierStokesApp.h:19
NavierStokesApp::associateSyntax
static void associateSyntax(Syntax &syntax, ActionFactory &action_factory)
Definition: NavierStokesApp.C:107
FluidPropertiesApp::associateSyntax
static void associateSyntax(Syntax &syntax, ActionFactory &action_factory)
Definition: FluidPropertiesApp.C:66
NavierStokesApp__registerAll
void NavierStokesApp__registerAll(Factory &f, ActionFactory &af, Syntax &s)
Definition: NavierStokesApp.C:121
HeatConductionApp.h
NavierStokesApp::registerExecFlags
static void registerExecFlags(Factory &factory)
Definition: NavierStokesApp.C:115
FluidPropertiesApp::registerObjects
static void registerObjects(Factory &factory)
Definition: FluidPropertiesApp.C:59
FluidPropertiesApp.h
NSStaticPressureOutletBC
This class facilitates adding specified static pressure outlet BCs for the Euler equations.
Definition: NSStaticPressureOutletBC.h:23
NavierStokesApp::registerObjects
static void registerObjects(Factory &factory)
Definition: NavierStokesApp.C:93
NavierStokesApp__registerApps
void NavierStokesApp__registerApps()
Definition: NavierStokesApp.C:126
NSNoPenetrationBC
This class facilitates adding solid wall "no penetration" BCs for the Euler equations.
Definition: NSNoPenetrationBC.h:23
NavierStokesApp.h
validParams< NavierStokesApp >
InputParameters validParams< NavierStokesApp >()
Definition: NavierStokesApp.C:20
registerKnownLabel
registerKnownLabel("NavierStokesApp")