https://mooseframework.inl.gov
INSAction.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 
25 class INSAction : public Action
26 {
27 public:
29 
31 
32  virtual void act() override;
33 
34 protected:
35  // Helper function that sets the parameters which are common to all INS Kernels.
37  void setNoBCCommonParams(InputParameters & params);
38 
39  // Helper functions that add various inviscid flux Kernels.
40  void addINSTimeKernels();
41  void addINSMass();
42  void addINSMomentum();
43  void addINSTemperature();
44  void addINSVelocityAux();
45 
46  // Helper functions that add BCs.
47  void addINSVelocityBC();
49  void addINSNoBCBC();
50  void addINSPressureBC();
51  void addINSTemperatureBC();
52 
56  std::vector<SubdomainName> _blocks;
58  std::vector<BoundaryName> _velocity_boundary;
60  std::vector<FunctionName> _velocity_function;
62  std::vector<BoundaryName> _pressure_boundary;
64  std::vector<FunctionName> _pressure_function;
66  std::vector<BoundaryName> _no_bc_boundary;
70  BoundaryName _pinned_node;
72  std::vector<BoundaryName> _fixed_temperature_boundary;
74  std::vector<FunctionName> _temperature_function;
78  bool _use_ad;
82  unsigned int _dim;
84  std::set<SubdomainID> _block_ids;
86  const std::string _pressure_variable_name;
87 };
BoundaryName _pinned_node
The node set name of the pinned node.
Definition: INSAction.h:70
static InputParameters validParams()
Definition: INSAction.C:36
void addINSMass()
Definition: INSAction.C:566
void addINSTemperatureBC()
Definition: INSAction.C:934
MooseEnum _type
Equation type, transient or steady-state.
Definition: INSAction.h:54
std::vector< FunctionName > _temperature_function
Temperature function names at fixed temperature boundaries.
Definition: INSAction.h:74
VariableName _temperature_variable_name
Temperature variable name to facilitate temperature variable added outside.
Definition: INSAction.h:80
void addINSVelocityAux()
Definition: INSAction.C:602
virtual void act() override
Definition: INSAction.C:241
std::vector< BoundaryName > _velocity_boundary
Boundaries with velocity specified.
Definition: INSAction.h:58
std::vector< SubdomainName > _blocks
Subdomains Navier-Stokes equation is defined on.
Definition: INSAction.h:56
This class allows us to have a section of the input file like the following which automatically adds ...
Definition: INSAction.h:25
const std::string _pressure_variable_name
pressure variable name
Definition: INSAction.h:86
std::set< SubdomainID > _block_ids
Subdomain IDs.
Definition: INSAction.h:84
bool _use_ad
Whether we use AD or not.
Definition: INSAction.h:78
void addINSVelocityBC()
Definition: INSAction.C:821
void setNoBCCommonParams(InputParameters &params)
Definition: INSAction.C:1065
libMesh::FEType _fe_type
FE type for various variables.
Definition: INSAction.h:76
void addINSMomentum()
Definition: INSAction.C:617
void addINSPressureBC()
Definition: INSAction.C:968
std::vector< FunctionName > _pressure_function
Pressure function names at pressure boundaries.
Definition: INSAction.h:64
void addINSNoBCBC()
Definition: INSAction.C:1006
void addINSTimeKernels()
Definition: INSAction.C:514
INSAction(const InputParameters &parameters)
Definition: INSAction.C:168
std::vector< BoundaryName > _fixed_temperature_boundary
Boundaries with temperature specified.
Definition: INSAction.h:72
bool _has_pinned_node
Whether or not we need to pin pressure at a node.
Definition: INSAction.h:68
void setKernelCommonParams(InputParameters &params)
Definition: INSAction.C:1040
unsigned int _dim
Mesh dimension.
Definition: INSAction.h:82
const InputParameters & parameters() const
std::vector< BoundaryName > _pressure_boundary
Boundaries with pressure specified.
Definition: INSAction.h:62
void addINSTemperature()
Definition: INSAction.C:733
void addINSPinnedPressureBC()
Definition: INSAction.C:996
std::vector< BoundaryName > _no_bc_boundary
No-BC boundaries.
Definition: INSAction.h:66
std::vector< FunctionName > _velocity_function
Velocity function names at velocity boundaries.
Definition: INSAction.h:60