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