https://mooseframework.inl.gov
ADNumericalFlux3EqnBase.C
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 
11 #include "THMIndicesVACE.h"
12 
15 {
17  return params;
18 }
19 
21  : NumericalFlux1D(parameters)
22 {
23 }
24 
25 std::vector<ADReal>
26 ADNumericalFlux3EqnBase::convert1DInputTo3D(const std::vector<ADReal> & U_1d) const
27 {
28  std::vector<ADReal> U_3d(THMVACE3D::N_FLUX_INPUTS);
29  U_3d[THMVACE3D::RHOA] = U_1d[THMVACE1D::RHOA];
30  U_3d[THMVACE3D::RHOUA] = U_1d[THMVACE1D::RHOUA];
31  U_3d[THMVACE3D::RHOVA] = 0;
32  U_3d[THMVACE3D::RHOWA] = 0;
33  U_3d[THMVACE3D::RHOEA] = U_1d[THMVACE1D::RHOEA];
34  U_3d[THMVACE3D::AREA] = U_1d[THMVACE1D::AREA];
35 
36  return U_3d;
37 }
38 
39 std::vector<ADReal>
40 ADNumericalFlux3EqnBase::convert3DFluxTo1D(const std::vector<ADReal> & F_3d) const
41 {
42  std::vector<ADReal> F_1d(THMVACE1D::N_FLUX_OUTPUTS);
43  F_1d[THMVACE1D::MASS] = F_3d[THMVACE3D::MASS];
46 
47  return F_1d;
48 }
49 
50 void
51 ADNumericalFlux3EqnBase::transform3DFluxDirection(std::vector<ADReal> & F_3d, Real nLR_dot_d) const
52 {
53  F_3d[THMVACE3D::MASS] *= nLR_dot_d;
54  F_3d[THMVACE3D::ENERGY] *= nLR_dot_d;
55 }
static InputParameters validParams()
Abstract base class for computing and caching internal or boundary fluxes for 1D conservation law sys...
virtual std::vector< ADReal > convert1DInputTo3D(const std::vector< ADReal > &U_1d) const override
Converts a 1D flux input vector to a 3D flux input vector.
ADNumericalFlux3EqnBase(const InputParameters &parameters)
static InputParameters validParams()
static const unsigned int N_FLUX_OUTPUTS
Number of numerical flux function outputs for 1D.
virtual std::vector< ADReal > convert3DFluxTo1D(const std::vector< ADReal > &F_3d) const override
Converts a 3D flux vector to a 1D flux vector.
virtual void transform3DFluxDirection(std::vector< ADReal > &F_3d, Real nLR_dot_d) const override
Applies direction transformation to a 3D flux vector.
static const unsigned int N_FLUX_INPUTS
Number of numerical flux function inputs for 3D.