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