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