https://mooseframework.inl.gov
Loading...
Searching...
No Matches
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
31registerKnownLabel("NavierStokesApp");
32
37
39
40void
48
49void
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("WCNSLinearFVTurbulencePhysics", "Physics/NavierStokes/TurbulenceSegregated/*");
68 registerSyntax("PNSFVSolidHeatTransferPhysics", "Physics/NavierStokes/SolidHeatTransfer/*");
69 registerSyntax("WCNSFVTwoPhaseMixturePhysics", "Physics/NavierStokes/TwoPhaseMixture/*");
70 registerSyntax("WCNSLinearFVTwoPhaseMixturePhysics",
71 "Physics/NavierStokes/TwoPhaseMixtureSegregated/*");
72
73 // Create the Action syntax
74 registerSyntax("CNSAction", "Modules/CompressibleNavierStokes");
75 registerSyntax("INSAction", "Modules/IncompressibleNavierStokes");
76
77 // Deprecated action syntax for NavierStokesFV
78 registerTask("nsfv_action_deprecation_task", /*is_required=*/false);
79 registerSyntax("NSFVActionDeprecation", "Modules/NavierStokesFV");
80 registerSyntax("WCNSFVFlowPhysics", "Modules/NavierStokesFV");
81 registerSyntax("WCNSFVFluidHeatTransferPhysics", "Modules/NavierStokesFV");
82 registerSyntax("WCNSFVScalarTransportPhysics", "Modules/NavierStokesFV");
83 registerSyntax("WCNSFVTurbulencePhysics", "Modules/NavierStokesFV");
84
85 // Additional tasks to make the Physics work out
86 registerTask("get_turbulence_physics", /*is_required=*/false);
87 addTaskDependency("get_turbulence_physics", "init_physics");
88 addTaskDependency("check_integrity_early_physics", "get_turbulence_physics");
89
90 // add variables action
91 registerTask("add_navier_stokes_variables", /*is_required=*/false);
92 addTaskDependency("add_navier_stokes_variables", "add_variable");
93 addTaskDependency("add_mortar_variable", "add_navier_stokes_variables");
94
95 // add ICs action
96 registerTask("add_navier_stokes_ics", /*is_required=*/false);
97 addTaskDependency("add_navier_stokes_ics", "add_ic");
98 addTaskDependency("add_constraint", "add_navier_stokes_ics");
99
100 // add user objects action
101 registerTask("add_navier_stokes_user_objects", /*is_required=*/false);
102 addTaskDependency("add_navier_stokes_user_objects", "add_user_object");
103 addTaskDependency("add_distribution", "add_navier_stokes_user_objects");
104
105 // add Kernels action
106 registerTask("add_navier_stokes_kernels", /*is_required=*/false);
107 addTaskDependency("add_navier_stokes_kernels", "add_kernel");
108 addTaskDependency("resolve_optional_materials", "add_navier_stokes_kernels");
109
110 // add BCs actions
111 registerTask("add_navier_stokes_bcs", /*is_required=*/false);
112 addTaskDependency("add_navier_stokes_bcs", "add_bc");
113 addTaskDependency("resolve_optional_materials", "add_navier_stokes_bcs");
114
115 // register attributes
116 registerTask("ns_meta_action", /*is_required=*/true);
117 addTaskDependency("ns_meta_action", "meta_action");
118 addTaskDependency("dynamic_object_registration", "ns_meta_action");
119
120 // register attributes
121 registerTask("add_navier_stokes_pps", /*is_required=*/false);
122 addTaskDependency("add_navier_stokes_pps", "add_postprocessor");
123 addTaskDependency("add_vector_postprocessor", "add_navier_stokes_pps");
124
125 // register attributes
126 registerTask("add_navier_stokes_materials", /*is_required=*/false);
127 addTaskDependency("add_navier_stokes_materials", "add_material");
128 addTaskDependency("add_master_action_material", "add_navier_stokes_materials");
129
130 // register tasks for copying variables
131 registerTask("navier_stokes_check_copy_nodal_vars", /*is_required=*/false);
132 addTaskDependency("navier_stokes_check_copy_nodal_vars", "check_copy_nodal_vars");
133 addTaskDependency("setup_mesh", "navier_stokes_check_copy_nodal_vars");
134
135 registerTask("navier_stokes_copy_nodal_vars", /*is_required=*/false);
136 addTaskDependency("navier_stokes_copy_nodal_vars", "copy_nodal_vars");
137 addTaskDependency("add_material", "navier_stokes_copy_nodal_vars");
138}
139
140extern "C" void
145extern "C" void
Real f(Real x)
Test function for Brents method.
registerKnownLabel("NavierStokesApp")
void NavierStokesApp__registerApps()
void NavierStokesApp__registerAll(Factory &f, ActionFactory &af, Syntax &s)
static void registerAll(Factory &f, ActionFactory &af, Syntax &s)
static void registerApps()
static void registerAll(Factory &f, ActionFactory &af, Syntax &s)
static void registerApps()
T & set(const std::string &name, bool quiet_mode=false)
Syntax & syntax()
ActionFactory _action_factory
static InputParameters validParams()
Factory _factory
Syntax _syntax
static void registerAll(Factory &f, ActionFactory &af, Syntax &s)
static InputParameters validParams()
virtual ~NavierStokesApp()
NavierStokesApp(const InputParameters &parameters)
static void registerApps()
static void registerActionsTo(ActionFactory &f, const std::set< std::string > &labels)
static void registerObjectsTo(Factory &f, const std::set< std::string > &labels)