https://mooseframework.inl.gov
CNSAction.h
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 #pragma once
11 
12 #include "Action.h"
13 
14 #include "MooseEnum.h"
15 #include "libmesh/fe_type.h"
16 #include "libmesh/vector_value.h"
17 
28 class CNSAction : public Action
29 {
30 public:
32 
34 
35  virtual void act() override;
36 
37 protected:
38  // Helper function that sets the parameters which are common to all NSKernels.
40 
41  // Helper function that sets the parameters which are common to all NSBCs.
42  void setBCCommonParams(InputParameters & params);
43  void setStagnationBCCommonParams(InputParameters & params, unsigned int i);
44 
45  // Couple the appropriate number (depending on the _dim) of velocity/momentum
46  // components into a Kernel.
47  void coupleVelocities(InputParameters & params);
48  void coupleMomentums(InputParameters & params);
49 
50  // Helper functions that add various inviscid flux Kernels.
51  void addNSTimeKernels();
52  void addNSMassInviscidFlux();
53  void addNSMomentumInviscidFlux(unsigned int component);
55 
56  // Helper functions that add SUPG Kernels
57  void addNSSUPGMass();
58  void addNSSUPGMomentum(unsigned int component);
59  void addNSSUPGEnergy();
60 
61  // Helper functions that add AuxKernels
62  void addPressureOrTemperatureAux(const std::string & kernel_type);
63  void addNSVelocityAux(unsigned int component);
65  void addNSMachAux();
68 
69  // Helper functions that add the various weak stagnation BCs.
72  void addNSMomentumWeakStagnationBC(unsigned int component);
73 
74  // Helper function that adds the no-penetration BCs
75  void addNoPenetrationBC(unsigned int component);
76 
77  // Helper function that adds the static pressure outlet BCs
81 
85  UserObjectName _fp_name;
87  std::vector<SubdomainName> _blocks;
89  std::vector<BoundaryName> _stagnation_boundary;
91  std::vector<Real> _stagnation_pressure;
93  std::vector<Real> _stagnation_temperature;
95  std::vector<Real> _stagnation_direction;
97  std::vector<BoundaryName> _no_penetration_boundary;
99  std::vector<BoundaryName> _static_pressure_boundary;
101  std::vector<Real> _static_pressure;
111  unsigned int _dim;
113  std::set<SubdomainID> _block_ids;
115  const std::string _pressure_variable_name;
116 };
void addNSMachAux()
Definition: CNSAction.C:414
Real _initial_temperature
Initial value for temperature.
Definition: CNSAction.h:107
std::vector< Real > _stagnation_direction
Flow directions on stagnation boundaries.
Definition: CNSAction.h:95
std::set< SubdomainID > _block_ids
Subdomain IDs.
Definition: CNSAction.h:113
void addPressureOrTemperatureAux(const std::string &kernel_type)
Definition: CNSAction.C:468
void setKernelCommonParams(InputParameters &params)
Definition: CNSAction.C:674
libMesh::FEType _fe_type
FE type for various variables.
Definition: CNSAction.h:103
std::vector< SubdomainName > _blocks
Subdomains Navier-Stokes equation is defined on.
Definition: CNSAction.h:87
std::vector< BoundaryName > _no_penetration_boundary
Boundaries no-penetration BC applies.
Definition: CNSAction.h:97
static const std::string component
Definition: NS.h:153
void setStagnationBCCommonParams(InputParameters &params, unsigned int i)
Definition: CNSAction.C:706
void addNSSUPGMomentum(unsigned int component)
Definition: CNSAction.C:343
std::vector< BoundaryName > _static_pressure_boundary
Boundaries static pressure BC applies.
Definition: CNSAction.h:99
void addNSMassUnspecifiedNormalFlowBC()
Definition: CNSAction.C:618
void addSpecificTotalEnthalpyAux()
Definition: CNSAction.C:434
void addNSInternalEnergyAux()
Definition: CNSAction.C:396
void addNSVelocityAux(unsigned int component)
Definition: CNSAction.C:450
void addNSSUPGMass()
Definition: CNSAction.C:328
void addNSMassWeakStagnationBC()
Definition: CNSAction.C:525
MooseEnum _type
Equation type, transient or steady-state.
Definition: CNSAction.h:83
std::vector< Real > _static_pressure
Pressures on static pressure boundaries.
Definition: CNSAction.h:101
static InputParameters validParams()
Definition: CNSAction.C:32
unsigned int _dim
Mesh dimension.
Definition: CNSAction.h:111
UserObjectName _fp_name
Name of the FluidProperties object to pass on to Kernels.
Definition: CNSAction.h:85
void addNSMassInviscidFlux()
Definition: CNSAction.C:483
This class allows us to have a section of the input file like the following which automatically adds ...
Definition: CNSAction.h:28
void addNSMomentumWeakStagnationBC(unsigned int component)
Definition: CNSAction.C:556
RealVectorValue _initial_velocity
Initial value for velocity.
Definition: CNSAction.h:109
void addNSEnergyInviscidFlux()
Definition: CNSAction.C:510
const std::string _pressure_variable_name
pressure variable name
Definition: CNSAction.h:115
void addNoPenetrationBC(unsigned int component)
Definition: CNSAction.C:600
void addNSMomentumInviscidFlux(unsigned int component)
Definition: CNSAction.C:493
void addNSEnergyWeakStagnationBC()
Definition: CNSAction.C:541
std::vector< BoundaryName > _stagnation_boundary
Boundaries stagnation BC applies.
Definition: CNSAction.h:89
virtual void act() override
Definition: CNSAction.C:130
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void addNSEnergyInviscidSpecifiedPressureBC()
Definition: CNSAction.C:656
CNSAction(const InputParameters &parameters)
Definition: CNSAction.C:97
std::vector< Real > _stagnation_pressure
Pressures on stagnation boundaries.
Definition: CNSAction.h:91
void addSpecificVolumeComputation()
Definition: CNSAction.C:378
void addNSMomentumInviscidSpecifiedPressureBC(unsigned int component)
Definition: CNSAction.C:633
const InputParameters & parameters() const
void addNSTimeKernels()
Definition: CNSAction.C:301
std::vector< Real > _stagnation_temperature
Temperatures on stagnation boundaries.
Definition: CNSAction.h:93
void setBCCommonParams(InputParameters &params)
Definition: CNSAction.C:691
void addNSSUPGEnergy()
Definition: CNSAction.C:363
void coupleMomentums(InputParameters &params)
Definition: CNSAction.C:733
Real _initial_pressure
Initial value for pressure.
Definition: CNSAction.h:105
void coupleVelocities(InputParameters &params)
Definition: CNSAction.C:721