https://mooseframework.inl.gov
CNSFVHLLCBase.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 "FVFluxKernel.h"
13 
14 #include <vector>
15 #include <array>
16 #include <unordered_map>
17 
18 class FaceInfo;
19 class HLLCUserObject;
21 
25 struct HLLCData
26 {
29 
31  const ADReal & rho_elem;
34 
39 
41  const ADReal & e_elem;
42  const ADReal & e_neighbor;
44 };
45 
51 {
52 public:
54  CNSFVHLLCBase(const InputParameters & params);
55 
57  static std::array<ADReal, 3> waveSpeed(const HLLCData & hllc_data,
58  const ADRealVectorValue & normal);
59 
60 protected:
61  HLLCData hllcData() const;
62 
68 
73 
76 
81 
84 
89 
94 
99 
104 };
static InputParameters validParams()
Definition: CNSFVHLLCBase.C:19
const ADMaterialProperty< Real > & _speed_elem
speeds left == elem, right == neighbor
Definition: CNSFVHLLCBase.h:91
static std::array< ADReal, 3 > waveSpeed(const HLLCData &hllc_data, const ADRealVectorValue &normal)
helper function for computing wave speed
Definition: CNSFVHLLCBase.C:59
const ADMaterialProperty< Real > & _specific_internal_energy_elem
internal energies left == elem, right == neighbor
Definition: CNSFVHLLCBase.h:78
const ADReal & e_elem
internal energies left == elem, right == neighbor
Definition: CNSFVHLLCBase.h:41
ADReal _SL
the wave speeds
Definition: CNSFVHLLCBase.h:64
const ADRealVectorValue & vel_elem
velocities left == elem, right == neighbor
Definition: CNSFVHLLCBase.h:36
const ADReal & e_neighbor
Definition: CNSFVHLLCBase.h:42
const ADReal & rho_elem
densities left == elem, right == neighbor
Definition: CNSFVHLLCBase.h:31
ADReal _normal_speed_neighbor
Definition: CNSFVHLLCBase.h:71
const RealVectorValue & normal() const
const ADMaterialProperty< Real > & _speed_neighbor
Definition: CNSFVHLLCBase.h:92
CNSFVHLLCBase(const InputParameters &params)
Definition: CNSFVHLLCBase.C:26
HLLCData hllcData() const
Definition: CNSFVHLLCBase.C:47
DualNumber< Real, DNDerivativeType, true > ADReal
const ADMaterialProperty< Real > & _specific_internal_energy_neighbor
Definition: CNSFVHLLCBase.h:79
const ADMaterialProperty< Real > & _rho_neighbor
Definition: CNSFVHLLCBase.h:97
const SinglePhaseFluidProperties & fluid
fluid properties
Definition: CNSFVHLLCBase.h:28
Common class for single phase fluid properties.
Base class for both HLLC inter-cell flux kernels and boundary conditions.
Definition: CNSFVHLLCBase.h:50
const ADReal & rho_neighbor
Definition: CNSFVHLLCBase.h:32
const ADMaterialProperty< RealVectorValue > & _vel_neighbor
Definition: CNSFVHLLCBase.h:87
const ADMaterialProperty< Real > & _rho_et_elem
Definition: CNSFVHLLCBase.h:82
const SinglePhaseFluidProperties & _fluid
fluid properties
Definition: CNSFVHLLCBase.h:75
ADReal _normal_speed_elem
speeds normal to the interface
Definition: CNSFVHLLCBase.h:70
const ADMaterialProperty< Real > & _pressure_neighbor
const ADRealVectorValue & vel_neighbor
Definition: CNSFVHLLCBase.h:37
const ADMaterialProperty< Real > & _rho_et_neighbor
Definition: CNSFVHLLCBase.h:83
Helper structure for holding data necessary for computing HLLC fluxes.
Definition: CNSFVHLLCBase.h:25
const ADMaterialProperty< Real > & _rho_elem
densities left == elem, right == neighbor
Definition: CNSFVHLLCBase.h:96
const ADMaterialProperty< Real > & _pressure_elem
pressures left == elem, right == neighbor
const ADMaterialProperty< RealVectorValue > & _vel_elem
velocities left == elem, right == neighbor
Definition: CNSFVHLLCBase.h:86