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 "NavierStokesApp.h"
11 : #include "Moose.h"
12 : #include "AppFactory.h"
13 : #include "MooseSyntax.h"
14 :
15 : #include "FluidPropertiesApp.h"
16 : #include "HeatTransferApp.h"
17 :
18 : InputParameters
19 14326 : NavierStokesApp::validParams()
20 : {
21 14326 : InputParameters params = MooseApp::validParams();
22 :
23 14326 : params.set<bool>("automatic_automatic_scaling") = false;
24 :
25 14326 : params.set<bool>("use_legacy_material_output") = false;
26 14326 : params.set<bool>("use_legacy_initial_residual_evaluation_behavior") = false;
27 :
28 14326 : return params;
29 0 : }
30 :
31 : registerKnownLabel("NavierStokesApp");
32 :
33 14333 : NavierStokesApp::NavierStokesApp(const InputParameters & parameters) : MooseApp(parameters)
34 : {
35 14333 : NavierStokesApp::registerAll(_factory, _action_factory, _syntax);
36 14333 : }
37 :
38 14154 : NavierStokesApp::~NavierStokesApp() {}
39 :
40 : void
41 14252 : NavierStokesApp::registerApps()
42 : {
43 14252 : registerApp(NavierStokesApp);
44 :
45 14252 : FluidPropertiesApp::registerApps();
46 14252 : HeatTransferApp::registerApps();
47 14252 : }
48 :
49 : void
50 28659 : NavierStokesApp::registerAll(Factory & f, ActionFactory & af, Syntax & syntax)
51 : {
52 28659 : FluidPropertiesApp::registerAll(f, af, syntax);
53 28659 : HeatTransferApp::registerAll(f, af, syntax);
54 28659 : Registry::registerObjectsTo(f, {"NavierStokesApp"});
55 28659 : Registry::registerActionsTo(af, {"NavierStokesApp"});
56 :
57 : // Physics syntax
58 57318 : registerSyntax("WCNSFVFlowPhysics", "Physics/NavierStokes/Flow/*");
59 57318 : registerSyntax("WCNSLinearFVFlowPhysics", "Physics/NavierStokes/FlowSegregated/*");
60 57318 : registerSyntax("WCNSFVFluidHeatTransferPhysics", "Physics/NavierStokes/FluidHeatTransfer/*");
61 57318 : registerSyntax("WCNSLinearFVFluidHeatTransferPhysics",
62 : "Physics/NavierStokes/FluidHeatTransferSegregated/*");
63 57318 : registerSyntax("WCNSFVScalarTransportPhysics", "Physics/NavierStokes/ScalarTransport/*");
64 57318 : registerSyntax("WCNSLinearFVScalarTransportPhysics",
65 : "Physics/NavierStokes/ScalarTransportSegregated/*");
66 57318 : registerSyntax("WCNSFVTurbulencePhysics", "Physics/NavierStokes/Turbulence/*");
67 57318 : registerSyntax("PNSFVSolidHeatTransferPhysics", "Physics/NavierStokes/SolidHeatTransfer/*");
68 57318 : registerSyntax("WCNSFVTwoPhaseMixturePhysics", "Physics/NavierStokes/TwoPhaseMixture/*");
69 57318 : registerSyntax("WCNSLinearFVTwoPhaseMixturePhysics",
70 : "Physics/NavierStokes/TwoPhaseMixtureSegregated/*");
71 :
72 : // Create the Action syntax
73 57318 : registerSyntax("CNSAction", "Modules/CompressibleNavierStokes");
74 57318 : registerSyntax("INSAction", "Modules/IncompressibleNavierStokes");
75 :
76 : // Deprecated action syntax for NavierStokesFV
77 28659 : registerTask("nsfv_action_deprecation_task", /*is_required=*/false);
78 57318 : registerSyntax("NSFVActionDeprecation", "Modules/NavierStokesFV");
79 57318 : registerSyntax("WCNSFVFlowPhysics", "Modules/NavierStokesFV");
80 57318 : registerSyntax("WCNSFVFluidHeatTransferPhysics", "Modules/NavierStokesFV");
81 57318 : registerSyntax("WCNSFVScalarTransportPhysics", "Modules/NavierStokesFV");
82 57318 : registerSyntax("WCNSFVTurbulencePhysics", "Modules/NavierStokesFV");
83 :
84 : // Additional tasks to make the Physics work out
85 28659 : registerTask("get_turbulence_physics", /*is_required=*/false);
86 57318 : addTaskDependency("get_turbulence_physics", "init_physics");
87 57318 : addTaskDependency("check_integrity_early_physics", "get_turbulence_physics");
88 :
89 : // add variables action
90 28659 : registerTask("add_navier_stokes_variables", /*is_required=*/false);
91 57318 : addTaskDependency("add_navier_stokes_variables", "add_variable");
92 57318 : addTaskDependency("add_mortar_variable", "add_navier_stokes_variables");
93 :
94 : // add ICs action
95 28659 : registerTask("add_navier_stokes_ics", /*is_required=*/false);
96 57318 : addTaskDependency("add_navier_stokes_ics", "add_ic");
97 57318 : addTaskDependency("add_constraint", "add_navier_stokes_ics");
98 :
99 : // add user objects action
100 28659 : registerTask("add_navier_stokes_user_objects", /*is_required=*/false);
101 57318 : addTaskDependency("add_navier_stokes_user_objects", "add_user_object");
102 57318 : addTaskDependency("add_distribution", "add_navier_stokes_user_objects");
103 :
104 : // add Kernels action
105 28659 : registerTask("add_navier_stokes_kernels", /*is_required=*/false);
106 57318 : addTaskDependency("add_navier_stokes_kernels", "add_kernel");
107 57318 : addTaskDependency("resolve_optional_materials", "add_navier_stokes_kernels");
108 :
109 : // add BCs actions
110 28659 : registerTask("add_navier_stokes_bcs", /*is_required=*/false);
111 57318 : addTaskDependency("add_navier_stokes_bcs", "add_bc");
112 57318 : addTaskDependency("resolve_optional_materials", "add_navier_stokes_bcs");
113 :
114 : // register attributes
115 28659 : registerTask("ns_meta_action", /*is_required=*/true);
116 57318 : addTaskDependency("ns_meta_action", "meta_action");
117 57318 : addTaskDependency("dynamic_object_registration", "ns_meta_action");
118 :
119 : // register attributes
120 28659 : registerTask("add_navier_stokes_pps", /*is_required=*/false);
121 57318 : addTaskDependency("add_navier_stokes_pps", "add_postprocessor");
122 57318 : addTaskDependency("add_vector_postprocessor", "add_navier_stokes_pps");
123 :
124 : // register attributes
125 28659 : registerTask("add_navier_stokes_materials", /*is_required=*/false);
126 57318 : addTaskDependency("add_navier_stokes_materials", "add_material");
127 57318 : addTaskDependency("add_master_action_material", "add_navier_stokes_materials");
128 :
129 : // register tasks for copying variables
130 28659 : registerTask("navier_stokes_check_copy_nodal_vars", /*is_required=*/false);
131 57318 : addTaskDependency("navier_stokes_check_copy_nodal_vars", "check_copy_nodal_vars");
132 57318 : addTaskDependency("setup_mesh", "navier_stokes_check_copy_nodal_vars");
133 :
134 28659 : registerTask("navier_stokes_copy_nodal_vars", /*is_required=*/false);
135 57318 : addTaskDependency("navier_stokes_copy_nodal_vars", "copy_nodal_vars");
136 57318 : addTaskDependency("add_material", "navier_stokes_copy_nodal_vars");
137 28659 : }
138 :
139 : extern "C" void
140 0 : NavierStokesApp__registerAll(Factory & f, ActionFactory & af, Syntax & s)
141 : {
142 0 : NavierStokesApp::registerAll(f, af, s);
143 0 : }
144 : extern "C" void
145 0 : NavierStokesApp__registerApps()
146 : {
147 0 : NavierStokesApp::registerApps();
148 0 : }
|