www.mooseframework.org
NSMomentumInviscidBC.h
Go to the documentation of this file.
1 /****************************************************************/
2 /* MOOSE - Multiphysics Object Oriented Simulation Environment */
3 /* */
4 /* All contents are licensed under LGPL V2.1 */
5 /* See LICENSE for full restrictions */
6 /****************************************************************/
7 #ifndef NSMOMENTUMINVISCIDBC_H
8 #define NSMOMENTUMINVISCIDBC_H
9 
10 #include "NSIntegratedBC.h"
11 #include "NSPressureDerivs.h"
12 
13 // Forward Declarations
15 
16 template <>
17 InputParameters validParams<NSMomentumInviscidBC>();
18 
58 {
59 public:
60  NSMomentumInviscidBC(const InputParameters & parameters);
61 
62 protected:
63  // Which spatial component of the momentum equations (0,1, or 2) is this
64  // kernel applied in?
65  const unsigned _component;
66 
67  // An object for computing pressure derivatives.
68  // Constructed via a reference to ourself
70 
71  // Declare ourselves friend to the helper class.
72  template <class U>
73  friend class NSPressureDerivs;
74 
75  // These functions can be mix-n-matched by derived classes to implement
76  // any of the following boundary conditions:
77  // .) Fully unspecified (both (rho*u)(u.n) and p computed implicitly, is this valid?)
78  // .) Specified pressure/unspecified (rho*u)(u.n)
79  // .) Unspecified pressure/specified (rho*u)(u.n)
80  // .) Fully specified (both pressure and (rho*u)(u.n) given, this may not be physically
81  // meaningful?)
82 
83  // Depending on the passed-in value, will compute the residual for either a specified
84  // pressure value or the residual at the current value of the pressure.
86 
87  // If the pressure is fixed, the Jacobian of the pressure term is zero, otherwise
88  // we return the Jacobian value for the passed-in variable number.
89  Real pressureQpJacobianHelper(unsigned var_number);
90 
91  // Depending on the passed-in vector, will compute the residual for either a specified
92  // value of (rho*u)(u.n) or the residual at the current value of (rho*u)(u.n).
93  // The passed-in value is the _component'th entry of the (rho*u)(u.n) vector.
94  Real convectiveQpResidualHelper(Real rhou_udotn);
95 
96  // If the value of (rho*u)(u.n) is fixed, the Jacobian of the
97  // convective term is zero, otherwise we return the correct value
98  // based on the passed-in variable number.
99  Real convectiveQpJacobianHelper(unsigned var_number);
100 };
101 
102 #endif // NSMOMENTUMINVISCIDBC_H
InputParameters validParams< NSMomentumInviscidBC >()
This class corresponds to the inviscid part of the "natural" boundary condition for the momentum equa...
This class couples together all the variables for the compressible Navier-Stokes equations to allow t...
Real convectiveQpResidualHelper(Real rhou_udotn)
Real convectiveQpJacobianHelper(unsigned var_number)
NSMomentumInviscidBC(const InputParameters &parameters)
Real pressureQpJacobianHelper(unsigned var_number)
const std::string pressure
Definition: NS.h:24
Real pressureQpResidualHelper(Real pressure)
NSPressureDerivs< NSMomentumInviscidBC > _pressure_derivs