https://mooseframework.inl.gov
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
CNSAction Class Reference

This class allows us to have a section of the input file like the following which automatically adds variables, kernels, aux kernels, bcs for setting up the Navier-Stokes equation. More...

#include <CNSAction.h>

Inheritance diagram for CNSAction:
[legend]

Public Types

typedef DataFileName DataFileParameterType
 

Public Member Functions

 CNSAction (const InputParameters &parameters)
 
virtual void act () override
 
void timedAct ()
 
virtual void addRelationshipManagers (Moose::RelationshipManagerType when_type)
 
MooseObjectName uniqueActionName () const
 
const std::string & specificTaskName () const
 
const std::set< std::string > & getAllTasks () const
 
void appendTask (const std::string &task)
 
MooseApp & getMooseApp () const
 
const std::string & type () const
 
const std::string & name () const
 
std::string typeAndName () const
 
MooseObjectParameterName uniqueParameterName (const std::string &parameter_name) const
 
MooseObjectName uniqueName () const
 
const InputParameters & parameters () const
 
const hit::Node * getHitNode () const
 
bool hasBase () const
 
const std::string & getBase () const
 
const T & getParam (const std::string &name) const
 
std::vector< std::pair< T1, T2 > > getParam (const std::string &param1, const std::string &param2) const
 
const T * queryParam (const std::string &name) const
 
const T & getRenamedParam (const std::string &old_name, const std::string &new_name) const
 
T getCheckedPointerParam (const std::string &name, const std::string &error_string="") const
 
bool isParamValid (const std::string &name) const
 
bool isParamSetByUser (const std::string &name) const
 
void connectControllableParams (const std::string &parameter, const std::string &object_type, const std::string &object_name, const std::string &object_parameter) const
 
void paramError (const std::string &param, Args... args) const
 
void paramWarning (const std::string &param, Args... args) const
 
void paramWarning (const std::string &param, Args... args) const
 
void paramInfo (const std::string &param, Args... args) const
 
std::string messagePrefix (const bool hit_prefix=true) const
 
std::string errorPrefix (const std::string &) const
 
void mooseError (Args &&... args) const
 
void mooseDocumentedError (const std::string &repo_name, const unsigned int issue_num, Args &&... args) const
 
void mooseErrorNonPrefixed (Args &&... args) const
 
void mooseWarning (Args &&... args) const
 
void mooseWarning (Args &&... args) const
 
void mooseWarningNonPrefixed (Args &&... args) const
 
void mooseWarningNonPrefixed (Args &&... args) const
 
void mooseDeprecated (Args &&... args) const
 
void mooseDeprecated (Args &&... args) const
 
void mooseDeprecatedNoTrace (Args &&... args) const
 
void mooseInfo (Args &&... args) const
 
void callMooseError (std::string msg, const bool with_prefix, const hit::Node *node=nullptr, const bool show_trace=true) const
 
std::string getDataFileName (const std::string &param) const
 
std::string getDataFileNameByName (const std::string &relative_path) const
 
std::string getDataFilePath (const std::string &relative_path) const
 
PerfGraph & perfGraph ()
 
const Parallel::Communicator & comm () const
 
processor_id_type n_processors () const
 
processor_id_type processor_id () const
 

Static Public Member Functions

static InputParameters validParams ()
 
static void callMooseError (MooseApp *const app, const InputParameters &params, std::string msg, const bool with_prefix, const hit::Node *node, const bool show_trace=true)
 

Public Attributes

 usingCombinedWarningSolutionWarnings
 
const ConsoleStream _console
 

Static Public Attributes

static const std::string unique_action_name_param
 
static const std::string type_param
 
static const std::string name_param
 
static const std::string unique_name_param
 
static const std::string app_param
 
static const std::string moose_base_param
 
static const std::string kokkos_object_param
 
static constexpr auto SYSTEM
 
static constexpr auto NAME
 

Protected Member Functions

void setKernelCommonParams (InputParameters &params)
 
void setBCCommonParams (InputParameters &params)
 
void setStagnationBCCommonParams (InputParameters &params, unsigned int i)
 
void coupleVelocities (InputParameters &params)
 
void coupleMomentums (InputParameters &params)
 
void addNSTimeKernels ()
 
void addNSMassInviscidFlux ()
 
void addNSMomentumInviscidFlux (unsigned int component)
 
void addNSEnergyInviscidFlux ()
 
void addNSSUPGMass ()
 
void addNSSUPGMomentum (unsigned int component)
 
void addNSSUPGEnergy ()
 
void addPressureOrTemperatureAux (const std::string &kernel_type)
 
void addNSVelocityAux (unsigned int component)
 
void addSpecificTotalEnthalpyAux ()
 
void addNSMachAux ()
 
void addNSInternalEnergyAux ()
 
void addSpecificVolumeComputation ()
 
void addNSMassWeakStagnationBC ()
 
void addNSEnergyWeakStagnationBC ()
 
void addNSMomentumWeakStagnationBC (unsigned int component)
 
void addNoPenetrationBC (unsigned int component)
 
void addNSMassUnspecifiedNormalFlowBC ()
 
void addNSEnergyInviscidSpecifiedPressureBC ()
 
void addNSMomentumInviscidSpecifiedPressureBC (unsigned int component)
 
bool addRelationshipManagers (Moose::RelationshipManagerType when_type, const InputParameters &moose_object_pars)
 
void associateWithParameter (const std::string &param_name, InputParameters &params) const
 
void associateWithParameter (const InputParameters &from_params, const std::string &param_name, InputParameters &params) const
 
const T & getMeshProperty (const std::string &data_name, const std::string &prefix)
 
const T & getMeshProperty (const std::string &data_name)
 
bool hasMeshProperty (const std::string &data_name, const std::string &prefix) const
 
bool hasMeshProperty (const std::string &data_name, const std::string &prefix) const
 
bool hasMeshProperty (const std::string &data_name) const
 
bool hasMeshProperty (const std::string &data_name) const
 
std::string meshPropertyName (const std::string &data_name) const
 
PerfID registerTimedSection (const std::string &section_name, const unsigned int level) const
 
PerfID registerTimedSection (const std::string &section_name, const unsigned int level, const std::string &live_message, const bool print_dots=true) const
 
std::string timedSectionName (const std::string &section_name) const
 
void flagInvalidSolutionInternal (const InvalidSolutionID invalid_solution_id) const
 
InvalidSolutionID registerInvalidSolutionInternal (const std::string &message, const bool warning) const
 

Static Protected Member Functions

static std::string meshPropertyName (const std::string &data_name, const std::string &prefix)
 

Protected Attributes

MooseEnum _type
 Equation type, transient or steady-state.
 
UserObjectName _fp_name
 Name of the FluidProperties object to pass on to Kernels.
 
std::vector< SubdomainName > _blocks
 Subdomains Navier-Stokes equation is defined on.
 
std::vector< BoundaryName > _stagnation_boundary
 Boundaries stagnation BC applies.
 
std::vector< Real > _stagnation_pressure
 Pressures on stagnation boundaries.
 
std::vector< Real > _stagnation_temperature
 Temperatures on stagnation boundaries.
 
std::vector< Real > _stagnation_direction
 Flow directions on stagnation boundaries.
 
std::vector< BoundaryName > _no_penetration_boundary
 Boundaries no-penetration BC applies.
 
std::vector< BoundaryName > _static_pressure_boundary
 Boundaries static pressure BC applies.
 
std::vector< Real > _static_pressure
 Pressures on static pressure boundaries.
 
libMesh::FEType _fe_type
 FE type for various variables.
 
Real _initial_pressure
 Initial value for pressure.
 
Real _initial_temperature
 Initial value for temperature.
 
RealVectorValue _initial_velocity
 Initial value for velocity.
 
unsigned int _dim
 Mesh dimension.
 
std::set< SubdomainID > _block_ids
 Subdomain IDs.
 
const std::string _pressure_variable_name
 pressure variable name
 
std::string _registered_identifier
 
std::string _specific_task_name
 
std::set< std::string > _all_tasks
 
ActionWarehouse & _awh
 
const std::string & _current_task
 
std::shared_ptr< MooseMesh > & _mesh
 
std::shared_ptr< MooseMesh > & _displaced_mesh
 
std::shared_ptr< FEProblemBase > & _problem
 
PerfID _act_timer
 
MooseApp & _app
 
Factory & _factory
 
ActionFactory & _action_factory
 
const std::string & _name
 
const InputParameters & _pars
 
MooseApp & _pg_moose_app
 
const std::string _prefix
 
const Parallel::Communicator & _communicator
 

Private Member Functions

bool addRelationshipManager (Moose::RelationshipManagerType input_rm_type, const InputParameters &moose_object_pars, std::string rm_name, Moose::RelationshipManagerType rm_type, Moose::RelationshipManagerInputParameterCallback rm_input_parameter_func, Moose::RMSystemType sys_type=Moose::RMSystemType::NONE)
 
virtual std::string meshPropertyPrefix (const std::string &data_name) const
 
const RestartableDataValue & getMeshPropertyInternal (const std::string &data_name, const std::string &prefix) const
 
void mooseErrorInternal (Args &&... args) const
 

Static Private Member Functions

static const hit::Node * getHitNode (const InputParameters &params)
 
static std::string messagePrefix (const InputParameters &params, const bool hit_prefix)
 

Private Attributes

const ParallelParamObject & _parent
 
MooseApp & _meta_data_app
 
const MooseObject *const _meta_data_object
 
const MooseBase & _si_moose_base
 
const FEProblemBase * _si_problem
 

Detailed Description

This class allows us to have a section of the input file like the following which automatically adds variables, kernels, aux kernels, bcs for setting up the Navier-Stokes equation.

[Modules] [CompressibleNavierStokes] [] []

Definition at line 28 of file CNSAction.h.

Constructor & Destructor Documentation

◆ CNSAction()

CNSAction::CNSAction ( const InputParameters &  parameters)

Definition at line 95 of file CNSAction.C.

97 _type(getParam<MooseEnum>("equation_type")),
98 _fp_name(getParam<UserObjectName>("fluid_properties")),
99 _blocks(getParam<std::vector<SubdomainName>>("block")),
100 _stagnation_boundary(getParam<std::vector<BoundaryName>>("stagnation_boundary")),
101 _stagnation_pressure(getParam<std::vector<Real>>("stagnation_pressure")),
102 _stagnation_temperature(getParam<std::vector<Real>>("stagnation_temperature")),
103 _stagnation_direction(getParam<std::vector<Real>>("stagnation_flow_direction")),
104 _no_penetration_boundary(getParam<std::vector<BoundaryName>>("no_penetration_boundary")),
105 _static_pressure_boundary(getParam<std::vector<BoundaryName>>("static_pressure_boundary")),
106 _static_pressure(getParam<std::vector<Real>>("static_pressure")),
107 _fe_type(Utility::string_to_enum<Order>(getParam<MooseEnum>("order")),
108 Utility::string_to_enum<FEFamily>(getParam<MooseEnum>("family"))),
109 _initial_pressure(getParam<Real>("initial_pressure")),
110 _initial_temperature(getParam<Real>("initial_temperature")),
111 _initial_velocity(getParam<RealVectorValue>("initial_velocity")),
112 _pressure_variable_name(isParamValid("pressure_variable_name")
113 ? getParam<std::string>("pressure_variable_name")
114 : "p")
115{
116 if (_stagnation_pressure.size() != _stagnation_boundary.size())
117 paramError("stagnation_pressure",
118 "Size is not the same as the number of boundaries in 'stagnation_boundary'");
120 paramError("stagnation_temperature",
121 "Size is not the same as the number of boundaries in 'stagnation_boundary'");
122 if (_static_pressure.size() != _static_pressure_boundary.size())
123 paramError("static_pressure",
124 "Size is not the same as the number of boundaries in 'static_pressure_boundary'");
125}
const std::string _pressure_variable_name
pressure variable name
Definition CNSAction.h:115
UserObjectName _fp_name
Name of the FluidProperties object to pass on to Kernels.
Definition CNSAction.h:85
std::vector< Real > _stagnation_temperature
Temperatures on stagnation boundaries.
Definition CNSAction.h:93
std::vector< BoundaryName > _stagnation_boundary
Boundaries stagnation BC applies.
Definition CNSAction.h:89
std::vector< BoundaryName > _static_pressure_boundary
Boundaries static pressure BC applies.
Definition CNSAction.h:99
std::vector< SubdomainName > _blocks
Subdomains Navier-Stokes equation is defined on.
Definition CNSAction.h:87
MooseEnum _type
Equation type, transient or steady-state.
Definition CNSAction.h:83
libMesh::FEType _fe_type
FE type for various variables.
Definition CNSAction.h:103
RealVectorValue _initial_velocity
Initial value for velocity.
Definition CNSAction.h:109
std::vector< BoundaryName > _no_penetration_boundary
Boundaries no-penetration BC applies.
Definition CNSAction.h:97
Real _initial_pressure
Initial value for pressure.
Definition CNSAction.h:105
std::vector< Real > _stagnation_direction
Flow directions on stagnation boundaries.
Definition CNSAction.h:95
Real _initial_temperature
Initial value for temperature.
Definition CNSAction.h:107
std::vector< Real > _stagnation_pressure
Pressures on stagnation boundaries.
Definition CNSAction.h:91
std::vector< Real > _static_pressure
Pressures on static pressure boundaries.
Definition CNSAction.h:101
const InputParameters & parameters() const
void paramError(const std::string &param, Args... args) const
const T & getParam(const std::string &name) const
bool isParamValid(const std::string &name) const

Member Function Documentation

◆ act()

void CNSAction::act ( )
overridevirtual

Implements Action.

Definition at line 128 of file CNSAction.C.

129{
130 if (_current_task == "add_navier_stokes_variables")
131 {
132 _dim = _mesh->dimension();
133 for (const auto & subdomain_name : _blocks)
134 {
135 SubdomainID id = _mesh->getSubdomainID(subdomain_name);
136 _block_ids.insert(id);
137 }
138 if (_stagnation_direction.size() != _stagnation_boundary.size() * _dim)
139 paramError("stagnation_flow_direction",
140 "Size is not the same as the number of boundaries in 'stagnation_boundary' times "
141 "the mesh dimension");
142
143 // FIXME: need to check boundaries are non-overlapping and enclose the blocks
144
146 auto base_params = _factory.getValidParams(var_type);
147 base_params.set<MooseEnum>("order") = _fe_type.order.get_order();
148 base_params.set<MooseEnum>("family") = Moose::stringify(_fe_type.family);
149 if (_block_ids.size() != 0)
150 for (const SubdomainID & id : _block_ids)
151 base_params.set<std::vector<SubdomainName>>("block").push_back(Moose::stringify(id));
152
153 // add primal variables
154 InputParameters params(base_params);
155 params.set<std::vector<Real>>("scaling") = {getParam<Real>("density_scaling")};
156 _problem->addVariable(var_type, NS::density, params);
157
158 auto mscaling = getParam<RealVectorValue>("momentum_scaling");
159 params.set<std::vector<Real>>("scaling") = {mscaling(0)};
160 _problem->addVariable(var_type, NS::momentum_x, params);
161 if (_dim >= 2)
162 {
163 params.set<std::vector<Real>>("scaling") = {mscaling(1)};
164 _problem->addVariable(var_type, NS::momentum_y, params);
165 }
166 if (_dim >= 3)
167 {
168 params.set<std::vector<Real>>("scaling") = {mscaling(2)};
169 _problem->addVariable(var_type, NS::momentum_z, params);
170 }
171 params.set<std::vector<Real>>("scaling") = {getParam<Real>("total_energy_density_scaling")};
172 _problem->addVariable(var_type, NS::total_energy_density, params);
173
174 // Add Aux variables. These are all required in order for the code
175 // to run, so they should not be independently selectable by the
176 // user.
177 _problem->addAuxVariable(var_type, NS::velocity_x, base_params);
178 if (_dim >= 2)
179 _problem->addAuxVariable(var_type, NS::velocity_y, base_params);
180 if (_dim >= 3)
181 _problem->addAuxVariable(var_type, NS::velocity_z, base_params);
182 _problem->addAuxVariable(var_type, _pressure_variable_name, base_params);
183 _problem->addAuxVariable(var_type, NS::temperature, base_params);
184 _problem->addAuxVariable(var_type, NS::specific_total_enthalpy, base_params);
185 _problem->addAuxVariable(var_type, NS::mach_number, base_params);
186
187 // Needed for FluidProperties calculations
188 _problem->addAuxVariable(var_type, NS::specific_internal_energy, base_params);
189 _problem->addAuxVariable(var_type, NS::specific_volume, base_params);
190 }
191
192 if (_current_task == "add_navier_stokes_kernels")
193 {
194 if (_type == "transient")
196
197 // Add all the inviscid flux Kernels.
200 for (unsigned int component = 0; component < _dim; ++component)
201 addNSMomentumInviscidFlux(component);
202
203 // Add SUPG Kernels
206 for (unsigned int component = 0; component < _dim; ++component)
207 addNSSUPGMomentum(component);
208
209 // Add AuxKernels.
210 addPressureOrTemperatureAux("PressureAux");
211 addPressureOrTemperatureAux("TemperatureAux");
213 addNSMachAux();
216 for (unsigned int component = 0; component < _dim; ++component)
217 addNSVelocityAux(component);
218 }
219
220 if (_current_task == "add_navier_stokes_bcs")
221 {
222 if (_stagnation_boundary.size() > 0)
223 {
226 for (unsigned int component = 0; component < _dim; ++component)
228 }
229
230 if (_no_penetration_boundary.size() > 0)
231 {
232 for (unsigned int component = 0; component < _dim; ++component)
233 addNoPenetrationBC(component);
234 }
235
236 if (_static_pressure_boundary.size() > 0)
237 {
240 for (unsigned int component = 0; component < _dim; ++component)
242 }
243 }
244
245 if (_current_task == "add_navier_stokes_ics")
246 {
247 // add ICs for primal variables
248 std::vector<VariableName> vars;
249 vars.push_back(NS::density);
250 vars.push_back(NS::momentum_x);
251 if (_dim >= 2)
252 vars.push_back(NS::momentum_y);
253 if (_dim >= 3)
254 vars.push_back(NS::momentum_z);
256 for (const auto & name : vars)
257 {
258 InputParameters params = _factory.getValidParams("NSInitialCondition");
259 params.set<VariableName>("variable") = name;
260 params.set<Real>("initial_pressure") = _initial_pressure;
261 params.set<Real>("initial_temperature") = _initial_temperature;
262 params.set<RealVectorValue>("initial_velocity") = _initial_velocity;
263 params.set<UserObjectName>("fluid_properties") = _fp_name;
264 _problem->addInitialCondition("NSInitialCondition", name + std::string("_ic"), params);
265 }
266
267 // add ICs for aux variables (possibly we do not need this)
268 std::vector<VariableName> auxs;
269 auxs.push_back(NS::velocity_x);
270 if (_dim >= 2)
271 auxs.push_back(NS::velocity_y);
272 if (_dim >= 3)
273 auxs.push_back(NS::velocity_z);
274
275 auxs.push_back(_pressure_variable_name);
276 auxs.push_back(NS::temperature);
277 auxs.push_back(NS::specific_total_enthalpy);
278 auxs.push_back(NS::mach_number);
279
280 // Needed for FluidProperties calculations
281 auxs.push_back(NS::specific_internal_energy);
282 auxs.push_back(NS::specific_volume);
283 for (const auto & name : auxs)
284 {
285 InputParameters params = _factory.getValidParams("NSInitialCondition");
286 params.set<VariableName>("variable") = name;
287 params.set<Real>("initial_pressure") = _initial_pressure;
288 params.set<Real>("initial_temperature") = _initial_temperature;
289 params.set<RealVectorValue>("initial_velocity") = _initial_velocity;
290 params.set<UserObjectName>("fluid_properties") = _fp_name;
292 params.set<MooseEnum>("variable_type") = NS::pressure;
293 _problem->addInitialCondition("NSInitialCondition", name + std::string("_ic"), params);
294 }
295 }
296}
subdomain_id_type SubdomainID
char ** vars
std::shared_ptr< MooseMesh > & _mesh
std::shared_ptr< FEProblemBase > & _problem
const std::string & _current_task
static std::string variableType(const libMesh::FEType &fe_type, const bool is_fv=false, const bool is_array=false)
void addNSMomentumInviscidSpecifiedPressureBC(unsigned int component)
Definition CNSAction.C:631
void addNSMomentumInviscidFlux(unsigned int component)
Definition CNSAction.C:491
void addNSMomentumWeakStagnationBC(unsigned int component)
Definition CNSAction.C:554
void addSpecificTotalEnthalpyAux()
Definition CNSAction.C:432
void addNSMassUnspecifiedNormalFlowBC()
Definition CNSAction.C:616
void addNSSUPGMass()
Definition CNSAction.C:326
void addNSMachAux()
Definition CNSAction.C:412
unsigned int _dim
Mesh dimension.
Definition CNSAction.h:111
void addNSEnergyInviscidSpecifiedPressureBC()
Definition CNSAction.C:654
void addNSInternalEnergyAux()
Definition CNSAction.C:394
void addNSSUPGMomentum(unsigned int component)
Definition CNSAction.C:341
void addNSVelocityAux(unsigned int component)
Definition CNSAction.C:448
void addNSMassWeakStagnationBC()
Definition CNSAction.C:523
void addNoPenetrationBC(unsigned int component)
Definition CNSAction.C:598
void addNSEnergyInviscidFlux()
Definition CNSAction.C:508
void addNSTimeKernels()
Definition CNSAction.C:299
void addNSMassInviscidFlux()
Definition CNSAction.C:481
std::set< SubdomainID > _block_ids
Subdomain IDs.
Definition CNSAction.h:113
void addNSEnergyWeakStagnationBC()
Definition CNSAction.C:539
void addSpecificVolumeComputation()
Definition CNSAction.C:376
void addPressureOrTemperatureAux(const std::string &kernel_type)
Definition CNSAction.C:466
void addNSSUPGEnergy()
Definition CNSAction.C:361
InputParameters getValidParams(const std::string &name) const
T & set(const std::string &name, bool quiet_mode=false)
const std::string & name() const
Factory & _factory
OrderWrapper order
std::string stringify(const T &t)
static const std::string specific_volume
Definition NS.h:82
static const std::string density
Definition NS.h:34
static const std::string velocity_y
Definition NS.h:48
static const std::string temperature
Definition NS.h:60
static const std::string total_energy_density
Definition NS.h:66
static const std::string momentum_x
Definition NS.h:36
static const std::string velocity_z
Definition NS.h:49
static const std::string momentum_y
Definition NS.h:37
static const std::string mach_number
Definition NS.h:81
static const std::string specific_total_enthalpy
Definition NS.h:70
static const std::string velocity_x
Definition NS.h:47
static const std::string specific_internal_energy
Definition NS.h:63
static const std::string pressure
Definition NS.h:57
static const std::string momentum_z
Definition NS.h:38
T component(const RankTwoTensorTempl< T > &r2tensor, unsigned int i, unsigned int j)
VectorValue< Real > RealVectorValue
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

◆ addNoPenetrationBC()

void CNSAction::addNoPenetrationBC ( unsigned int  component)
protected

Definition at line 598 of file CNSAction.C.

599{
600 const static std::string momentums[3] = {NS::momentum_x, NS::momentum_y, NS::momentum_z};
601 const std::string kernel_type = "NSPressureNeumannBC";
602 InputParameters params = _factory.getValidParams(kernel_type);
603 params.set<NonlinearVariableName>("variable") = momentums[component];
604 setBCCommonParams(params);
605
606 // These BCs also need the component and couping to the pressure.
607 params.set<unsigned int>("component") = component;
609
610 params.set<std::vector<BoundaryName>>("boundary") = _no_penetration_boundary;
611 _problem->addBoundaryCondition(
612 kernel_type, momentums[component] + std::string("_no_penetration"), params);
613}
std::vector< VariableName > CoupledName
void setBCCommonParams(InputParameters &params)
Definition CNSAction.C:689

Referenced by act().

◆ addNSEnergyInviscidFlux()

void CNSAction::addNSEnergyInviscidFlux ( )
protected

Definition at line 508 of file CNSAction.C.

509{
510 const std::string kernel_type = "NSEnergyInviscidFlux";
511 InputParameters params = _factory.getValidParams(kernel_type);
512 params.set<NonlinearVariableName>("variable") = NS::total_energy_density;
513 setKernelCommonParams(params);
514
515 // Extra stuff needed by energy equation
517
518 // Add the Kernel
519 _problem->addKernel(kernel_type, "rhoE_if", params);
520}
void setKernelCommonParams(InputParameters &params)
Definition CNSAction.C:672

Referenced by act().

◆ addNSEnergyInviscidSpecifiedPressureBC()

void CNSAction::addNSEnergyInviscidSpecifiedPressureBC ( )
protected

Definition at line 654 of file CNSAction.C.

655{
656 const std::string kernel_type = "NSEnergyInviscidSpecifiedPressureBC";
657 InputParameters params = _factory.getValidParams(kernel_type);
658 params.set<NonlinearVariableName>("variable") = NS::total_energy_density;
659 setBCCommonParams(params);
660 // This BC also requires the current value of the temperature.
662 for (unsigned int i = 0; i < _static_pressure_boundary.size(); ++i)
663 {
664 params.set<std::vector<BoundaryName>>("boundary") = {_static_pressure_boundary[i]};
665 params.set<Real>("specified_pressure") = _static_pressure[i];
666 _problem->addBoundaryCondition(
667 kernel_type, "rhoE_specified_pressure_outflow_" + Moose::stringify(i), params);
668 }
669}

Referenced by act().

◆ addNSEnergyWeakStagnationBC()

void CNSAction::addNSEnergyWeakStagnationBC ( )
protected

Definition at line 539 of file CNSAction.C.

540{
541 const std::string kernel_type = "NSEnergyWeakStagnationBC";
542 InputParameters params = _factory.getValidParams(kernel_type);
543 params.set<NonlinearVariableName>("variable") = NS::total_energy_density;
544 setBCCommonParams(params);
545 for (unsigned int i = 0; i < _stagnation_boundary.size(); ++i)
546 {
548 _problem->addBoundaryCondition(
549 kernel_type, "weak_stagnation_energy_inflow_" + Moose::stringify(i), params);
550 }
551}
void setStagnationBCCommonParams(InputParameters &params, unsigned int i)
Definition CNSAction.C:704

Referenced by act().

◆ addNSInternalEnergyAux()

void CNSAction::addNSInternalEnergyAux ( )
protected

Definition at line 394 of file CNSAction.C.

395{
396 const std::string kernel_type = "NSInternalEnergyAux";
397
398 InputParameters params = _factory.getValidParams(kernel_type);
399 params.set<AuxVariableName>("variable") = NS::specific_internal_energy;
400
401 // coupled variables
404
405 // Couple the appropriate number of velocities
406 coupleVelocities(params);
407
408 _problem->addAuxKernel(kernel_type, "specific_internal_energy_auxkernel", params);
409}
void coupleVelocities(InputParameters &params)
Definition CNSAction.C:719

Referenced by act().

◆ addNSMachAux()

void CNSAction::addNSMachAux ( )
protected

Definition at line 412 of file CNSAction.C.

413{
414 const std::string kernel_type = "NSMachAux";
415
416 InputParameters params = _factory.getValidParams(kernel_type);
417 params.set<AuxVariableName>("variable") = NS::mach_number;
418
419 // coupled variables
422
423 // Couple the appropriate number of velocities
424 coupleVelocities(params);
425
426 params.set<UserObjectName>("fluid_properties") = _fp_name;
427
428 _problem->addAuxKernel(kernel_type, "mach_auxkernel", params);
429}

Referenced by act().

◆ addNSMassInviscidFlux()

void CNSAction::addNSMassInviscidFlux ( )
protected

Definition at line 481 of file CNSAction.C.

482{
483 const std::string kernel_type = "NSMassInviscidFlux";
484 InputParameters params = _factory.getValidParams(kernel_type);
485 params.set<NonlinearVariableName>("variable") = NS::density;
486 setKernelCommonParams(params);
487 _problem->addKernel(kernel_type, "rho_if", params);
488}

Referenced by act().

◆ addNSMassUnspecifiedNormalFlowBC()

void CNSAction::addNSMassUnspecifiedNormalFlowBC ( )
protected

Definition at line 616 of file CNSAction.C.

617{
618 const std::string kernel_type = "NSMassUnspecifiedNormalFlowBC";
619 InputParameters params = _factory.getValidParams(kernel_type);
620 params.set<NonlinearVariableName>("variable") = NS::density;
621 setBCCommonParams(params);
622 for (unsigned int i = 0; i < _static_pressure_boundary.size(); ++i)
623 {
624 params.set<std::vector<BoundaryName>>("boundary") = {_static_pressure_boundary[i]};
625 params.set<Real>("specified_pressure") = _static_pressure[i];
626 _problem->addBoundaryCondition(kernel_type, "mass_outflow_" + Moose::stringify(i), params);
627 }
628}

Referenced by act().

◆ addNSMassWeakStagnationBC()

void CNSAction::addNSMassWeakStagnationBC ( )
protected

Definition at line 523 of file CNSAction.C.

524{
525 const std::string kernel_type = "NSMassWeakStagnationBC";
526 InputParameters params = _factory.getValidParams(kernel_type);
527 params.set<NonlinearVariableName>("variable") = NS::density;
528 setBCCommonParams(params);
529
530 for (unsigned int i = 0; i < _stagnation_boundary.size(); ++i)
531 {
533 _problem->addBoundaryCondition(
534 kernel_type, "weak_stagnation_mass_inflow_" + Moose::stringify(i), params);
535 }
536}

Referenced by act().

◆ addNSMomentumInviscidFlux()

void CNSAction::addNSMomentumInviscidFlux ( unsigned int  component)
protected

Definition at line 491 of file CNSAction.C.

492{
493 const static std::string momentums[3] = {NS::momentum_x, NS::momentum_y, NS::momentum_z};
494 const std::string kernel_type = "NSMomentumInviscidFlux";
495 InputParameters params = _factory.getValidParams(kernel_type);
496 params.set<NonlinearVariableName>("variable") = momentums[component];
497 setKernelCommonParams(params);
498
499 // Extra stuff needed by momentum Kernels
501 params.set<unsigned int>("component") = component;
502
503 // Add the Kernel
504 _problem->addKernel(kernel_type, momentums[component] + std::string("if"), params);
505}

Referenced by act().

◆ addNSMomentumInviscidSpecifiedPressureBC()

void CNSAction::addNSMomentumInviscidSpecifiedPressureBC ( unsigned int  component)
protected

Definition at line 631 of file CNSAction.C.

632{
633 const static std::string momentums[3] = {NS::momentum_x, NS::momentum_y, NS::momentum_z};
634 const std::string kernel_type = "NSMomentumInviscidSpecifiedPressureBC";
635 InputParameters params = _factory.getValidParams(kernel_type);
636 params.set<NonlinearVariableName>("variable") = momentums[component];
637 setBCCommonParams(params);
638
639 // These BCs also need the component.
640 params.set<unsigned int>("component") = component;
641
642 for (unsigned int i = 0; i < _static_pressure_boundary.size(); ++i)
643 {
644 params.set<std::vector<BoundaryName>>("boundary") = {_static_pressure_boundary[i]};
645 params.set<Real>("specified_pressure") = _static_pressure[i];
646 _problem->addBoundaryCondition(
647 kernel_type,
648 momentums[component] + std::string("_specified_pressure_outflow_") + Moose::stringify(i),
649 params);
650 }
651}

Referenced by act().

◆ addNSMomentumWeakStagnationBC()

void CNSAction::addNSMomentumWeakStagnationBC ( unsigned int  component)
protected

Definition at line 554 of file CNSAction.C.

555{
556 const static std::string momentums[3] = {NS::momentum_x, NS::momentum_y, NS::momentum_z};
557
558 // Convective part
559 {
560 const std::string kernel_type = "NSMomentumConvectiveWeakStagnationBC";
561 InputParameters params = _factory.getValidParams(kernel_type);
562 params.set<NonlinearVariableName>("variable") = momentums[component];
563 setBCCommonParams(params);
564 // Momentum BCs also need the component.
565 params.set<unsigned int>("component") = component;
566 for (unsigned int i = 0; i < _stagnation_boundary.size(); ++i)
567 {
569 _problem->addBoundaryCondition(kernel_type,
570 std::string("weak_stagnation_") + momentums[component] +
571 std::string("_convective_inflow_") + Moose::stringify(i),
572 params);
573 }
574 }
575
576 // Pressure part
577 {
578 const std::string kernel_type = "NSMomentumPressureWeakStagnationBC";
579 InputParameters params = _factory.getValidParams(kernel_type);
580 params.set<NonlinearVariableName>("variable") = momentums[component];
581 setBCCommonParams(params);
582 // Momentum BCs also need the component.
583 params.set<unsigned int>("component") = component;
584
585 for (unsigned int i = 0; i < _stagnation_boundary.size(); ++i)
586 {
588
589 _problem->addBoundaryCondition(kernel_type,
590 std::string("weak_stagnation_") + momentums[component] +
591 std::string("_pressure_inflow_") + Moose::stringify(i),
592 params);
593 }
594 }
595}

Referenced by act().

◆ addNSSUPGEnergy()

void CNSAction::addNSSUPGEnergy ( )
protected

Definition at line 361 of file CNSAction.C.

362{
363 const std::string kernel_type = "NSSUPGEnergy";
364 InputParameters params = _factory.getValidParams(kernel_type);
365 params.set<NonlinearVariableName>("variable") = NS::total_energy_density;
366 setKernelCommonParams(params);
367
368 // SUPG Kernels also need temperature and specific_total_enthalpy currently.
371
372 _problem->addKernel(kernel_type, "rhoE_supg", params);
373}

Referenced by act().

◆ addNSSUPGMass()

void CNSAction::addNSSUPGMass ( )
protected

Definition at line 326 of file CNSAction.C.

327{
328 const std::string kernel_type = "NSSUPGMass";
329 InputParameters params = _factory.getValidParams(kernel_type);
330 params.set<NonlinearVariableName>("variable") = NS::density;
331 setKernelCommonParams(params);
332
333 // SUPG Kernels also need temperature and specific_total_enthalpy currently.
336
337 _problem->addKernel(kernel_type, "rho_supg", params);
338}

Referenced by act().

◆ addNSSUPGMomentum()

void CNSAction::addNSSUPGMomentum ( unsigned int  component)
protected

Definition at line 341 of file CNSAction.C.

342{
343 const static std::string momentums[3] = {NS::momentum_x, NS::momentum_y, NS::momentum_z};
344
345 const std::string kernel_type = "NSSUPGMomentum";
346 InputParameters params = _factory.getValidParams(kernel_type);
347 params.set<NonlinearVariableName>("variable") = momentums[component];
348 setKernelCommonParams(params);
349
350 // SUPG Kernels also need temperature and specific_total_enthalpy currently.
353
354 // Momentum Kernels also need the component.
355 params.set<unsigned int>("component") = component;
356
357 _problem->addKernel(kernel_type, momentums[component] + std::string("_supg"), params);
358}

Referenced by act().

◆ addNSTimeKernels()

void CNSAction::addNSTimeKernels ( )
protected

Definition at line 299 of file CNSAction.C.

300{
301 const std::string kernel_type = "TimeDerivative";
302 InputParameters params = _factory.getValidParams(kernel_type);
303 params.set<std::vector<SubdomainName>>("block") = _blocks;
304
305 params.set<NonlinearVariableName>("variable") = NS::density;
306 _problem->addKernel(kernel_type, NS::density + "_time_deriv", params);
307
308 params.set<NonlinearVariableName>("variable") = NS::momentum_x;
309 _problem->addKernel(kernel_type, NS::momentum_x + "_time_deriv", params);
310 if (_dim >= 2)
311 {
312 params.set<NonlinearVariableName>("variable") = NS::momentum_y;
313 _problem->addKernel(kernel_type, NS::momentum_y + "_time_deriv", params);
314 }
315 if (_dim >= 3)
316 {
317 params.set<NonlinearVariableName>("variable") = NS::momentum_z;
318 _problem->addKernel(kernel_type, NS::momentum_z + "_time_deriv", params);
319 }
320
321 params.set<NonlinearVariableName>("variable") = NS::total_energy_density;
322 _problem->addKernel(kernel_type, NS::total_energy_density + "_time_deriv", params);
323}

Referenced by act().

◆ addNSVelocityAux()

void CNSAction::addNSVelocityAux ( unsigned int  component)
protected

Definition at line 448 of file CNSAction.C.

449{
450 const std::string kernel_type = "NSVelocityAux";
451 const static std::string velocities[3] = {NS::velocity_x, NS::velocity_y, NS::velocity_z};
452 const static std::string momentums[3] = {NS::momentum_x, NS::momentum_y, NS::momentum_z};
453
454 InputParameters params = _factory.getValidParams(kernel_type);
455 params.set<AuxVariableName>("variable") = velocities[component];
456
457 // coupled variables
459 params.set<CoupledName>("momentum") = {momentums[component]};
460 params.set<UserObjectName>("fluid_properties") = _fp_name;
461
462 _problem->addAuxKernel(kernel_type, velocities[component] + "_auxkernel", params);
463}

Referenced by act().

◆ addPressureOrTemperatureAux()

void CNSAction::addPressureOrTemperatureAux ( const std::string &  kernel_type)
protected

Definition at line 466 of file CNSAction.C.

467{
468 InputParameters params = _factory.getValidParams(kernel_type);
469 std::string var_name = (kernel_type == "PressureAux" ? _pressure_variable_name : NS::temperature);
470 params.set<AuxVariableName>("variable") = var_name;
471
472 // coupled variables
474 params.set<CoupledName>("v") = {NS::specific_volume};
475 params.set<UserObjectName>("fp") = _fp_name;
476
477 _problem->addAuxKernel(kernel_type, var_name + "_auxkernel", params);
478}

Referenced by act().

◆ addSpecificTotalEnthalpyAux()

void CNSAction::addSpecificTotalEnthalpyAux ( )
protected

Definition at line 432 of file CNSAction.C.

433{
434 const std::string kernel_type = "NSSpecificTotalEnthalpyAux";
435
436 InputParameters params = _factory.getValidParams(kernel_type);
437 params.set<AuxVariableName>("variable") = NS::specific_total_enthalpy;
438
439 // coupled variables
443
444 _problem->addAuxKernel(kernel_type, "specific_total_enthalpy_auxkernel", params);
445}

Referenced by act().

◆ addSpecificVolumeComputation()

void CNSAction::addSpecificVolumeComputation ( )
protected

Definition at line 376 of file CNSAction.C.

377{
378 const std::string kernel_type = "ParsedAux";
379
380 InputParameters params = _factory.getValidParams(kernel_type);
381 params.set<AuxVariableName>("variable") = NS::specific_volume;
382
383 // arguments
384 params.set<CoupledName>("coupled_variables") = {NS::density};
385
386 // expression
387 std::string function = "if(" + NS::density + " = 0, 1e10, 1 / " + NS::density + ")";
388 params.set<std::string>("expression") = function;
389
390 _problem->addAuxKernel(kernel_type, "specific_volume_auxkernel", params);
391}

Referenced by act().

◆ coupleMomentums()

void CNSAction::coupleMomentums ( InputParameters &  params)
protected

Definition at line 731 of file CNSAction.C.

732{
734
735 if (_dim >= 2)
737
738 if (_dim >= 3)
740}

Referenced by setBCCommonParams(), and setKernelCommonParams().

◆ coupleVelocities()

void CNSAction::coupleVelocities ( InputParameters &  params)
protected

Definition at line 719 of file CNSAction.C.

720{
722
723 if (_dim >= 2)
725
726 if (_dim >= 3)
728}

Referenced by addNSInternalEnergyAux(), addNSMachAux(), setBCCommonParams(), and setKernelCommonParams().

◆ setBCCommonParams()

void CNSAction::setBCCommonParams ( InputParameters &  params)
protected

Definition at line 689 of file CNSAction.C.

690{
691 // coupled variables
694
695 // Couple the appropriate number of velocities
696 coupleVelocities(params);
697 coupleMomentums(params);
698
699 // FluidProperties object
700 params.set<UserObjectName>("fluid_properties") = _fp_name;
701}
void coupleMomentums(InputParameters &params)
Definition CNSAction.C:731

Referenced by addNoPenetrationBC(), addNSEnergyInviscidSpecifiedPressureBC(), addNSEnergyWeakStagnationBC(), addNSMassUnspecifiedNormalFlowBC(), addNSMassWeakStagnationBC(), addNSMomentumInviscidSpecifiedPressureBC(), and addNSMomentumWeakStagnationBC().

◆ setKernelCommonParams()

void CNSAction::setKernelCommonParams ( InputParameters &  params)
protected

Definition at line 672 of file CNSAction.C.

673{
674 params.set<std::vector<SubdomainName>>("block") = _blocks;
675
676 // coupled variables
679
680 // Couple the appropriate number of velocities
681 coupleVelocities(params);
682 coupleMomentums(params);
683
684 // FluidProperties object
685 params.set<UserObjectName>("fluid_properties") = _fp_name;
686}

Referenced by addNSEnergyInviscidFlux(), addNSMassInviscidFlux(), addNSMomentumInviscidFlux(), addNSSUPGEnergy(), addNSSUPGMass(), and addNSSUPGMomentum().

◆ setStagnationBCCommonParams()

void CNSAction::setStagnationBCCommonParams ( InputParameters &  params,
unsigned int  i 
)
protected

Definition at line 704 of file CNSAction.C.

705{
706 params.set<std::vector<BoundaryName>>("boundary") = {_stagnation_boundary[i]};
707 params.set<Real>("stagnation_pressure") = _stagnation_pressure[i];
708 params.set<Real>("stagnation_temperature") = _stagnation_temperature[i];
709 params.set<Real>("sx") = _stagnation_direction[_dim * i];
710 if (_dim == 1)
711 params.set<Real>("sy") = 0;
712 if (_dim >= 2)
713 params.set<Real>("sy") = _stagnation_direction[_dim * i + 1];
714 if (_dim >= 3)
715 params.set<Real>("sz") = _stagnation_direction[_dim * i + 2];
716}

Referenced by addNSEnergyWeakStagnationBC(), addNSMassWeakStagnationBC(), and addNSMomentumWeakStagnationBC().

◆ validParams()

InputParameters CNSAction::validParams ( )
static

Definition at line 30 of file CNSAction.C.

31{
33 params.addClassDescription("This class allows us to have a section of the input file like the "
34 "following which automatically adds Kernels and AuxKernels for all "
35 "the required nonlinear and auxiliary variables.");
36
37 MooseEnum type("steady-state transient", "steady-state");
38 params.addParam<MooseEnum>("equation_type", type, "Navier-Stokes equation type");
39
40 params.addParam<std::vector<SubdomainName>>(
41 "block", {}, "The list of block ids (SubdomainID) on which NS equation is defined on");
42
43 params.addRequiredParam<UserObjectName>("fluid_properties",
44 "The name of the user object for fluid properties");
45
46 params.addParam<std::vector<BoundaryName>>(
47 "stagnation_boundary", std::vector<BoundaryName>(), "Stagnation boundaries");
48 params.addParam<std::vector<Real>>(
49 "stagnation_pressure", std::vector<Real>(), "Pressure on stagnation boundaries");
50 params.addParam<std::vector<Real>>(
51 "stagnation_temperature", std::vector<Real>(), "Temperature on stagnation boundaries");
52 params.addParam<std::vector<Real>>(
53 "stagnation_flow_direction", std::vector<Real>(), "Flow directions on stagnation boundaries");
54 params.addParam<std::vector<BoundaryName>>(
55 "no_penetration_boundary", std::vector<BoundaryName>(), "No-penetration boundaries");
56 params.addParam<std::vector<BoundaryName>>(
57 "static_pressure_boundary", std::vector<BoundaryName>(), "Static pressure boundaries");
58 params.addParam<std::vector<Real>>(
59 "static_pressure", std::vector<Real>(), "Static pressure on boundaries");
60
63 params.addParam<MooseEnum>(
64 "family", families, "Specifies the family of FE shape functions to use for this variable");
65 params.addParam<MooseEnum>("order",
66 orders,
67 "Specifies the order of the FE shape function to use "
68 "for this variable (additional orders not listed are "
69 "allowed)");
70 params.addParam<Real>("density_scaling", 1, "Scaling for the density variable");
72 "momentum_scaling", RealVectorValue(1, 1, 1), "Scaling for the momentum variables");
73 params.addParam<Real>("total_energy_density_scaling", 1, "Scaling for the total-energy variable");
74
75 params.addRequiredParam<Real>("initial_pressure",
76 "The initial pressure, assumed constant everywhere");
77 params.addRequiredParam<Real>("initial_temperature",
78 "The initial temperature, assumed constant everywhere");
79 params.addRequiredParam<RealVectorValue>("initial_velocity",
80 "The initial velocity, assumed constant everywhere");
81
82 params.addParamNamesToGroup("equation_type block fluid_properties", "Base");
84 "stagnation_boundary stagnation_pressure stagnation_temperature "
85 "stagnation_flow_direction no_penetration_boundary static_pressure_boundary static_pressure",
86 "BoundaryCondition");
88 "family order density_scaling momentum_scaling total_energy_density_scaling", "Variable");
89 params.addParam<std::string>("pressure_variable_name",
90 "A name for the pressure variable. If this is not provided, a "
91 "sensible default will be used.");
92 return params;
93}
static InputParameters validParams()
static MooseEnum getNonlinearVariableFamilies()
static MooseEnum getNonlinearVariableOrders()
void addParamNamesToGroup(const std::string &space_delim_names, const std::string group_name)
void addRequiredParam(const std::string &name, const std::string &doc_string)
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)
void addClassDescription(const std::string &doc_string)
const std::string & type() const

Member Data Documentation

◆ _block_ids

std::set<SubdomainID> CNSAction::_block_ids
protected

Subdomain IDs.

Definition at line 113 of file CNSAction.h.

Referenced by act().

◆ _blocks

std::vector<SubdomainName> CNSAction::_blocks
protected

Subdomains Navier-Stokes equation is defined on.

Definition at line 87 of file CNSAction.h.

Referenced by act(), addNSTimeKernels(), and setKernelCommonParams().

◆ _dim

unsigned int CNSAction::_dim
protected

Mesh dimension.

Definition at line 111 of file CNSAction.h.

Referenced by act(), addNSTimeKernels(), coupleMomentums(), coupleVelocities(), and setStagnationBCCommonParams().

◆ _fe_type

libMesh::FEType CNSAction::_fe_type
protected

FE type for various variables.

Definition at line 103 of file CNSAction.h.

Referenced by act().

◆ _fp_name

UserObjectName CNSAction::_fp_name
protected

Name of the FluidProperties object to pass on to Kernels.

Definition at line 85 of file CNSAction.h.

Referenced by act(), addNSMachAux(), addNSVelocityAux(), addPressureOrTemperatureAux(), setBCCommonParams(), and setKernelCommonParams().

◆ _initial_pressure

Real CNSAction::_initial_pressure
protected

Initial value for pressure.

Definition at line 105 of file CNSAction.h.

Referenced by act().

◆ _initial_temperature

Real CNSAction::_initial_temperature
protected

Initial value for temperature.

Definition at line 107 of file CNSAction.h.

Referenced by act().

◆ _initial_velocity

RealVectorValue CNSAction::_initial_velocity
protected

Initial value for velocity.

Definition at line 109 of file CNSAction.h.

Referenced by act().

◆ _no_penetration_boundary

std::vector<BoundaryName> CNSAction::_no_penetration_boundary
protected

Boundaries no-penetration BC applies.

Definition at line 97 of file CNSAction.h.

Referenced by act(), and addNoPenetrationBC().

◆ _pressure_variable_name

const std::string CNSAction::_pressure_variable_name
protected

◆ _stagnation_boundary

std::vector<BoundaryName> CNSAction::_stagnation_boundary
protected

◆ _stagnation_direction

std::vector<Real> CNSAction::_stagnation_direction
protected

Flow directions on stagnation boundaries.

Definition at line 95 of file CNSAction.h.

Referenced by act(), and setStagnationBCCommonParams().

◆ _stagnation_pressure

std::vector<Real> CNSAction::_stagnation_pressure
protected

Pressures on stagnation boundaries.

Definition at line 91 of file CNSAction.h.

Referenced by CNSAction(), and setStagnationBCCommonParams().

◆ _stagnation_temperature

std::vector<Real> CNSAction::_stagnation_temperature
protected

Temperatures on stagnation boundaries.

Definition at line 93 of file CNSAction.h.

Referenced by CNSAction(), and setStagnationBCCommonParams().

◆ _static_pressure

std::vector<Real> CNSAction::_static_pressure
protected

Pressures on static pressure boundaries.

Definition at line 101 of file CNSAction.h.

Referenced by addNSEnergyInviscidSpecifiedPressureBC(), addNSMassUnspecifiedNormalFlowBC(), addNSMomentumInviscidSpecifiedPressureBC(), and CNSAction().

◆ _static_pressure_boundary

std::vector<BoundaryName> CNSAction::_static_pressure_boundary
protected

Boundaries static pressure BC applies.

Definition at line 99 of file CNSAction.h.

Referenced by act(), addNSEnergyInviscidSpecifiedPressureBC(), addNSMassUnspecifiedNormalFlowBC(), addNSMomentumInviscidSpecifiedPressureBC(), and CNSAction().

◆ _type

MooseEnum CNSAction::_type
protected

Equation type, transient or steady-state.

Definition at line 83 of file CNSAction.h.

Referenced by act().


The documentation for this class was generated from the following files: