https://mooseframework.inl.gov
Loading...
Searching...
No Matches
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
28class CNSAction : public Action
29{
30public:
32
34
35 virtual void act() override;
36
37protected:
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.
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();
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
80 void addNSMomentumInviscidSpecifiedPressureBC(unsigned int component);
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;
109 RealVectorValue _initial_velocity;
111 unsigned int _dim;
113 std::set<SubdomainID> _block_ids;
115 const std::string _pressure_variable_name;
116};
This class allows us to have a section of the input file like the following which automatically adds ...
Definition CNSAction.h:29
const std::string _pressure_variable_name
pressure variable name
Definition CNSAction.h:115
void addNSMomentumInviscidSpecifiedPressureBC(unsigned int component)
Definition CNSAction.C:633
void addNSMomentumInviscidFlux(unsigned int component)
Definition CNSAction.C:493
void addNSMomentumWeakStagnationBC(unsigned int component)
Definition CNSAction.C:556
void addSpecificTotalEnthalpyAux()
Definition CNSAction.C:434
virtual void act() override
Definition CNSAction.C:130
UserObjectName _fp_name
Name of the FluidProperties object to pass on to Kernels.
Definition CNSAction.h:85
void addNSMassUnspecifiedNormalFlowBC()
Definition CNSAction.C:618
void addNSSUPGMass()
Definition CNSAction.C:328
void addNSMachAux()
Definition CNSAction.C:414
unsigned int _dim
Mesh dimension.
Definition CNSAction.h:111
std::vector< Real > _stagnation_temperature
Temperatures on stagnation boundaries.
Definition CNSAction.h:93
void addNSEnergyInviscidSpecifiedPressureBC()
Definition CNSAction.C:656
void addNSInternalEnergyAux()
Definition CNSAction.C:396
void addNSSUPGMomentum(unsigned int component)
Definition CNSAction.C:343
std::vector< BoundaryName > _stagnation_boundary
Boundaries stagnation BC applies.
Definition CNSAction.h:89
void addNSVelocityAux(unsigned int component)
Definition CNSAction.C:450
void addNSMassWeakStagnationBC()
Definition CNSAction.C:525
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
void setBCCommonParams(InputParameters &params)
Definition CNSAction.C:691
void setStagnationBCCommonParams(InputParameters &params, unsigned int i)
Definition CNSAction.C:706
void setKernelCommonParams(InputParameters &params)
Definition CNSAction.C:674
void addNoPenetrationBC(unsigned int component)
Definition CNSAction.C:600
static InputParameters validParams()
Definition CNSAction.C:32
void addNSEnergyInviscidFlux()
Definition CNSAction.C:510
void coupleVelocities(InputParameters &params)
Definition CNSAction.C:721
void addNSTimeKernels()
Definition CNSAction.C:301
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
void addNSMassInviscidFlux()
Definition CNSAction.C:483
std::set< SubdomainID > _block_ids
Subdomain IDs.
Definition CNSAction.h:113
void coupleMomentums(InputParameters &params)
Definition CNSAction.C:733
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
void addNSEnergyWeakStagnationBC()
Definition CNSAction.C:541
void addSpecificVolumeComputation()
Definition CNSAction.C:378
void addPressureOrTemperatureAux(const std::string &kernel_type)
Definition CNSAction.C:468
Real _initial_temperature
Initial value for temperature.
Definition CNSAction.h:107
std::vector< Real > _stagnation_pressure
Pressures on stagnation boundaries.
Definition CNSAction.h:91
void addNSSUPGEnergy()
Definition CNSAction.C:363
std::vector< Real > _static_pressure
Pressures on static pressure boundaries.
Definition CNSAction.h:101
const InputParameters & parameters() const