https://mooseframework.inl.gov
Loading...
Searching...
No Matches
PCNSFVKT.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 "FVQpFluxKernel.h"
13#include <memory>
14#include <utility>
15
16namespace Moose
17{
18namespace FV
19{
20template <typename>
21class Limiter;
22}
23}
25
30{
31public:
33 PCNSFVKT(const InputParameters & params);
34
35protected:
36 virtual ADReal computeQpResidual() override;
37 std::pair<ADReal, ADReal> computeAlphaAndOmega(const ADReal & u_elem_normal,
38 const ADReal & u_neighbor_normal,
39 const ADReal & c_elem,
40 const ADReal & c_neighbor) const;
41 static ADReal computeFaceFlux(const ADReal & alpha,
42 const ADReal & omega,
43 const ADReal & sup_vel_elem_normal,
44 const ADReal & sup_vel_neighbor_normal,
45 const ADReal & adv_quant_elem,
46 const ADReal & adv_quant_neighbor);
47
50
65
72
79
84
87
89 const unsigned int _index;
90
97
99 std::unique_ptr<Moose::FV::Limiter<ADReal>> _limiter;
100
103 const bool _knp_for_omega;
104};
DualNumber< Real, DNDerivativeType, true > ADReal
Implements the centered Kurganov-Tadmor discretization of advective fluxes.
Definition PCNSFVKT.h:30
const MaterialProperty< Real > & _eps_elem
porosity left == elem, right == neighbor
Definition PCNSFVKT.h:81
const ADMaterialProperty< RealVectorValue > & _grad_T_fluid_elem
Definition PCNSFVKT.h:69
const ADMaterialProperty< Real > & _T_fluid_elem
fluid temperature left == elem, right == neighbor
Definition PCNSFVKT.h:67
const ADMaterialProperty< Real > & _sup_vel_y_neighbor
Definition PCNSFVKT.h:57
const ADMaterialProperty< RealVectorValue > & _grad_pressure_elem
Definition PCNSFVKT.h:76
const ADMaterialProperty< RealVectorValue > & _grad_T_fluid_neighbor
Definition PCNSFVKT.h:70
static ADReal computeFaceFlux(const ADReal &alpha, const ADReal &omega, const ADReal &sup_vel_elem_normal, const ADReal &sup_vel_neighbor_normal, const ADReal &adv_quant_elem, const ADReal &adv_quant_neighbor)
Definition PCNSFVKT.C:115
const ADMaterialProperty< RealVectorValue > & _grad_sup_vel_x_elem
Definition PCNSFVKT.h:54
const SinglePhaseFluidProperties & _fluid
fluid properties
Definition PCNSFVKT.h:49
static InputParameters validParams()
Definition PCNSFVKT.C:20
const unsigned int _index
When solving the momentum equation, the momentum component we are solving for.
Definition PCNSFVKT.h:89
const ADMaterialProperty< RealVectorValue > & _grad_sup_vel_z_neighbor
Definition PCNSFVKT.h:63
const ADMaterialProperty< RealVectorValue > & _grad_sup_vel_z_elem
Definition PCNSFVKT.h:62
const ADMaterialProperty< Real > & _sup_vel_x_elem
superficial velocities left == elem, right == neighbor
Definition PCNSFVKT.h:52
const ADVariableValue & _scalar_elem
passive scalar values left == elem, right == neighbor
Definition PCNSFVKT.h:92
const ADVariableGradient *const _grad_scalar_neighbor
Definition PCNSFVKT.h:95
const ADMaterialProperty< Real > & _sup_vel_y_elem
Definition PCNSFVKT.h:56
const ADMaterialProperty< Real > & _sup_vel_z_elem
Definition PCNSFVKT.h:60
std::unique_ptr< Moose::FV::Limiter< ADReal > > _limiter
The slope limiter we will apply when interpolating from cell centroids to faces.
Definition PCNSFVKT.h:99
const ADMaterialProperty< RealVectorValue > & _grad_pressure_neighbor
Definition PCNSFVKT.h:77
const ADMaterialProperty< RealVectorValue > & _grad_sup_vel_y_elem
Definition PCNSFVKT.h:58
const bool _knp_for_omega
Whether to use the Kurganov, Noelle, and Petrova method to compute the omega parameter for stabilizat...
Definition PCNSFVKT.h:103
const ADMaterialProperty< Real > & _sup_vel_x_neighbor
Definition PCNSFVKT.h:53
const ADMaterialProperty< RealVectorValue > & _grad_sup_vel_x_neighbor
Definition PCNSFVKT.h:55
std::pair< ADReal, ADReal > computeAlphaAndOmega(const ADReal &u_elem_normal, const ADReal &u_neighbor_normal, const ADReal &c_elem, const ADReal &c_neighbor) const
Definition PCNSFVKT.C:91
const ADMaterialProperty< Real > & _pressure_elem
pressure left == elem, right == neighbor
Definition PCNSFVKT.h:74
const MaterialProperty< Real > & _eps_neighbor
Definition PCNSFVKT.h:82
virtual ADReal computeQpResidual() override
Definition PCNSFVKT.C:128
const ADMaterialProperty< Real > & _sup_vel_z_neighbor
Definition PCNSFVKT.h:61
const ADMaterialProperty< RealVectorValue > & _grad_sup_vel_y_neighbor
Definition PCNSFVKT.h:59
const MooseEnum _eqn
The equation we are solving, e.g. mass, momentum, fluid energy, or passive scalar.
Definition PCNSFVKT.h:86
const ADVariableValue & _scalar_neighbor
Definition PCNSFVKT.h:93
const ADVariableGradient *const _grad_scalar_elem
Definition PCNSFVKT.h:94
const ADMaterialProperty< Real > & _pressure_neighbor
Definition PCNSFVKT.h:75
const ADMaterialProperty< Real > & _T_fluid_neighbor
Definition PCNSFVKT.h:68
Common class for single phase fluid properties.
VariableValueTempl< true > ADVariableValue
VariableGradientTempl< true > ADVariableGradient