https://mooseframework.inl.gov
Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
PCNSFVHLLCMomentumBC< T > Class Template Reference

Template class for implementing the advective flux plus pressure terms in the porous conservation of momentum equation at boundaries when using a HLLC discretization. More...

#include <PCNSFVHLLCMomentumBC.h>

Inheritance diagram for PCNSFVHLLCMomentumBC< T >:
[legend]

Public Member Functions

 PCNSFVHLLCMomentumBC (const InputParameters &params)
 
template<>
InputParameters validParams ()
 
template<>
InputParameters validParams ()
 

Static Public Member Functions

static InputParameters validParams ()
 
static void addCommonParams (InputParameters &params)
 

Protected Member Functions

virtual ADReal fluxElem () override
 flux functions on elem & boundary, i.e. standard left/right values of F More...
 
virtual ADReal fluxBoundary () override
 
virtual ADReal hllcElem () override
 HLLC modifications to flux for elem & boundary, see Toro. More...
 
virtual ADReal hllcBoundary () override
 
virtual ADReal conservedVariableElem () override
 
virtual ADReal conservedVariableBoundary () override
 

Protected Attributes

const unsigned int _index
 

Detailed Description

template<typename T>
class PCNSFVHLLCMomentumBC< T >

Template class for implementing the advective flux plus pressure terms in the porous conservation of momentum equation at boundaries when using a HLLC discretization.

Definition at line 20 of file PCNSFVHLLCMomentumBC.h.

Constructor & Destructor Documentation

◆ PCNSFVHLLCMomentumBC()

template<typename T >
PCNSFVHLLCMomentumBC< T >::PCNSFVHLLCMomentumBC ( const InputParameters params)

Definition at line 49 of file PCNSFVHLLCMomentumBC.C.

50  : T(params), _index(this->template getParam<MooseEnum>("momentum_component"))
51 {
52 }
const unsigned int _index

Member Function Documentation

◆ addCommonParams()

template<typename T >
void PCNSFVHLLCMomentumBC< T >::addCommonParams ( InputParameters params)
static

Definition at line 17 of file PCNSFVHLLCMomentumBC.C.

18 {
19  MooseEnum momentum_component("x=0 y=1 z=2");
21  "momentum_component",
22  momentum_component,
23  "The component of the momentum equation that this kernel applies to.");
24 }
void addRequiredParam(const std::string &name, const std::string &doc_string)

◆ conservedVariableBoundary()

template<typename T >
ADReal PCNSFVHLLCMomentumBC< T >::conservedVariableBoundary ( )
overrideprotectedvirtual

Definition at line 108 of file PCNSFVHLLCMomentumBC.C.

109 {
110  return this->_eps_boundary * this->_rho_boundary * this->_vel_boundary(_index);
111 }
const unsigned int _index

◆ conservedVariableElem()

template<typename T >
ADReal PCNSFVHLLCMomentumBC< T >::conservedVariableElem ( )
overrideprotectedvirtual

conserved variable of this equation This is not just _u_elem/_u_boundary to allow using different sets of variables in the future

Definition at line 100 of file PCNSFVHLLCMomentumBC.C.

101 {
102  return this->_eps_elem[this->_qp] * this->_rho_elem[this->_qp] *
103  this->_vel_elem[this->_qp](_index);
104 }
const unsigned int _index

◆ fluxBoundary()

template<typename T >
ADReal PCNSFVHLLCMomentumBC< T >::fluxBoundary ( )
overrideprotectedvirtual

Definition at line 65 of file PCNSFVHLLCMomentumBC.C.

66 {
67  return this->_normal_speed_boundary * this->_eps_boundary * this->_rho_boundary *
68  this->_vel_boundary(_index) +
69  this->_normal(_index) * this->_eps_boundary * this->_pressure_boundary;
70 }
const unsigned int _index

◆ fluxElem()

template<typename T >
ADReal PCNSFVHLLCMomentumBC< T >::fluxElem ( )
overrideprotectedvirtual

flux functions on elem & boundary, i.e. standard left/right values of F

Definition at line 56 of file PCNSFVHLLCMomentumBC.C.

57 {
58  return this->_normal_speed_elem * this->_eps_elem[this->_qp] * this->_rho_elem[this->_qp] *
59  this->_vel_elem[this->_qp](_index) +
60  this->_normal(_index) * this->_eps_elem[this->_qp] * this->_pressure_elem[this->_qp];
61 }
const unsigned int _index

◆ hllcBoundary()

template<typename T >
ADReal PCNSFVHLLCMomentumBC< T >::hllcBoundary ( )
overrideprotectedvirtual

Definition at line 87 of file PCNSFVHLLCMomentumBC.C.

88 {
89  auto vel_nonnormal = this->_vel_boundary - this->_normal_speed_boundary * this->_normal;
90  return this->_normal(_index) * this->_SM + vel_nonnormal(_index);
91 
92  // For some reason, the below expression doesn't give as good results as the
93  // above one.
94  // return this->_normal(_index) * (_SM - this->_normal_speed_boundary) +
95  // this->_vel_elem[this->_qp](_index);
96 }
const unsigned int _index

◆ hllcElem()

template<typename T >
ADReal PCNSFVHLLCMomentumBC< T >::hllcElem ( )
overrideprotectedvirtual

HLLC modifications to flux for elem & boundary, see Toro.

Definition at line 74 of file PCNSFVHLLCMomentumBC.C.

75 {
76  auto vel_nonnormal = this->_vel_elem[this->_qp] - this->_normal_speed_elem * this->_normal;
77  return this->_normal(_index) * this->_SM + vel_nonnormal(_index);
78 
79  // For some reason, the below expression doesn't give as good results as the
80  // above one.
81  // return this->_normal(_index) * (_SM - this->_normal_speed_elem) +
82  // this->_vel_elem[this->_qp](_index);
83 }
const unsigned int _index

◆ validParams() [1/3]

template<typename T >
InputParameters PCNSFVHLLCMomentumBC< T >::validParams ( )
static

Definition at line 28 of file PCNSFVHLLCMomentumBC.C.

29 {
31  addCommonParams(params);
32  params.addClassDescription("Implements the momentum boundary flux portion of the porous HLLC "
33  "discretization given specified mass fluxes and fluid temperature");
34  return params;
35 }
static void addCommonParams(InputParameters &params)
InputParameters validParams()
void addClassDescription(const std::string &doc_string)

◆ validParams() [2/3]

Definition at line 39 of file PCNSFVHLLCMomentumBC.C.

40 {
42  addCommonParams(params);
43  params.addClassDescription("Implements the momentum boundary flux portion of the porous HLLC "
44  "discretization given specified pressure");
45  return params;
46 }
static void addCommonParams(InputParameters &params)
void addClassDescription(const std::string &doc_string)

◆ validParams() [3/3]

Member Data Documentation

◆ _index

template<typename T >
const unsigned int PCNSFVHLLCMomentumBC< T >::_index
protected

Definition at line 44 of file PCNSFVHLLCMomentumBC.h.


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