Line data Source code
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 : #include "ADNumericalFlux3EqnBase.h" 11 : #include "THMIndicesVACE.h" 12 : 13 : InputParameters 14 4368 : ADNumericalFlux3EqnBase::validParams() 15 : { 16 4368 : InputParameters params = NumericalFlux1D::validParams(); 17 4368 : return params; 18 : } 19 : 20 2327 : ADNumericalFlux3EqnBase::ADNumericalFlux3EqnBase(const InputParameters & parameters) 21 2327 : : NumericalFlux1D(parameters) 22 : { 23 2327 : } 24 : 25 : std::vector<ADReal> 26 4974144 : ADNumericalFlux3EqnBase::convert1DInputTo3D(const std::vector<ADReal> & U_1d) const 27 : { 28 4974144 : const auto n_passives = U_1d.size() - THMVACE1D::N_FLUX_INPUTS; 29 : 30 4974144 : std::vector<ADReal> U_3d(THMVACE3D::N_FLUX_INPUTS + n_passives); 31 4974144 : U_3d[THMVACE3D::RHOA] = U_1d[THMVACE1D::RHOA]; 32 4974144 : U_3d[THMVACE3D::RHOUA] = U_1d[THMVACE1D::RHOUA]; 33 4974144 : U_3d[THMVACE3D::RHOVA] = 0; 34 4974144 : U_3d[THMVACE3D::RHOWA] = 0; 35 4974144 : U_3d[THMVACE3D::RHOEA] = U_1d[THMVACE1D::RHOEA]; 36 4974144 : U_3d[THMVACE3D::AREA] = U_1d[THMVACE1D::AREA]; 37 5013332 : for (const auto i : make_range(n_passives)) 38 39188 : U_3d[THMVACE3D::N_FLUX_INPUTS + i] = U_1d[THMVACE1D::N_FLUX_INPUTS + i]; 39 : 40 4974144 : return U_3d; 41 : } 42 : 43 : std::vector<ADReal> 44 4974144 : ADNumericalFlux3EqnBase::convert3DFluxTo1D(const std::vector<ADReal> & F_3d) const 45 : { 46 4974144 : const auto n_passives = F_3d.size() - THMVACE3D::N_FLUX_OUTPUTS; 47 : 48 4974144 : std::vector<ADReal> F_1d(THMVACE1D::N_FLUX_OUTPUTS + n_passives); 49 4974144 : F_1d[THMVACE1D::MASS] = F_3d[THMVACE3D::MASS]; 50 4974144 : F_1d[THMVACE1D::MOMENTUM] = F_3d[THMVACE3D::MOM_NORM]; 51 4974144 : F_1d[THMVACE1D::ENERGY] = F_3d[THMVACE3D::ENERGY]; 52 5013332 : for (const auto i : make_range(n_passives)) 53 39188 : F_1d[THMVACE1D::N_FLUX_OUTPUTS + i] = F_3d[THMVACE3D::N_FLUX_OUTPUTS + i]; 54 : 55 4974144 : return F_1d; 56 : } 57 : 58 : void 59 4974144 : ADNumericalFlux3EqnBase::transform3DFluxDirection(std::vector<ADReal> & F_3d, Real nLR_dot_d) const 60 : { 61 4974144 : F_3d[THMVACE3D::MASS] *= nLR_dot_d; 62 4974144 : F_3d[THMVACE3D::ENERGY] *= nLR_dot_d; 63 : 64 4974144 : const auto n_passives = F_3d.size() - THMVACE3D::N_FLUX_OUTPUTS; 65 5013332 : for (const auto i : make_range(n_passives)) 66 39188 : F_3d[THMVACE3D::N_FLUX_OUTPUTS + i] *= nLR_dot_d; 67 4974144 : }