https://mooseframework.inl.gov
Loading...
Searching...
No Matches
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)
 
InputParameters validParams ()
 
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
 
virtual ADReal fluxBoundary () override
 
virtual ADReal hllcElem () override
 HLLC modifications to flux for elem & boundary, see Toro.
 
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 double T
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}

◆ 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}

◆ 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}

◆ 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}

◆ 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}

◆ 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}

◆ validParams() [1/3]

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

Definition at line 28 of file PCNSFVHLLCMomentumBC.C.

29{
30 InputParameters params = T::validParams();
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}
void addClassDescription(const std::string &doc_string)
static void addCommonParams(InputParameters &params)

◆ validParams() [2/3]

◆ validParams() [3/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}

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: