23 "advection term for a turbulence variable.");
26 "rhie_chow_user_object",
27 "The rhie-chow user-object which is used to determine the face velocity.");
31 params.addParam<std::vector<BoundaryName>>(
32 "walls", {},
"Boundaries that correspond to solid walls.");
39 _mass_flux_provider(getUserObject<
RhieChowMassFlux>(
"rhie_chow_user_object")),
40 _advected_interp_coeffs(
std::make_pair<
Real,
Real>(0, 0)),
42 _wall_boundary_names(getParam<
std::vector<BoundaryName>>(
"walls"))
97 "We should only have one boundary on every face.");
117 const auto dof_id_neighbor =
161 "We should only have one boundary on every face.");
181 const auto dof_id_neighbor =
217 mooseAssert(adv_bc,
"This should be a valid BC!");
219 const auto boundary_value_matrix_contrib = adv_bc->computeBoundaryValueMatrixContribution();
231 mooseAssert(adv_bc,
"This should be a valid BC!");
236 const auto boundary_value_rhs_contrib = adv_bc->computeBoundaryValueRHSContribution();
virtual void addRightHandSideContribution() override
const unsigned int _var_num
virtual void addMatrixContribution() override
virtual Real computeBoundaryMatrixContribution(const LinearFVBoundaryCondition &bc) override
User object responsible for determining the face fluxes using the Rhie-Chow interpolation in a segreg...
const std::set< BoundaryID > & boundaryIDs() const
libMesh::LinearImplicitSystem & _linear_system
std::pair< Real, Real > interpCoeffs(const InterpMethod m, const FaceInfo &fi, const bool one_is_elem, const T &face_flux=0.0)
Real getMassFlux(const FaceInfo &fi) const
Get the face velocity times density (used in advection terms)
virtual void setupFaceData(const FaceInfo *face_info) override
const ElemInfo * neighborInfo() const
void setupFaceData(const FaceInfo *face_info, const FaceInfo::VarFaceNeighbors face_type)
MooseLinearVariableFV< Real > & _var
virtual void setupFaceData(const FaceInfo *face_info)
NumericVector< Number > * rhs
const ElemInfo * elemInfo() const
LinearFVBoundaryCondition * getBoundaryCondition(const BoundaryID bd_id) const
void getWallBoundedElements(const std::vector< BoundaryName > &wall_boundary_name, const FEProblemBase &fe_problem, const SubProblem &subproblem, const std::set< SubdomainID > &block_ids, std::unordered_set< const Elem *> &wall_bounded)
Map marking wall bounded elements The map passed in wall_bounded_map gets cleared and re-populated...
virtual const std::set< SubdomainID > & blockIDs() const
virtual void initialSetup() override
Real _mass_face_flux
Container for the mass flux on the face which will be reused in the advection term's matrix and right...
FaceInfo::VarFaceNeighbors _current_face_type
const bool _force_boundary_execution
DenseVector< Real > _rhs_contribution
const std::vector< BoundaryName > & _wall_boundary_names
Wall boundaries.
virtual Real computeNeighborMatrixContribution() override
virtual Real computeBoundaryRHSContribution(const LinearFVBoundaryCondition &bc) override
static InputParameters validParams()
const FaceInfo * _current_face_info
const Elem * neighborPtr() const
InputParameters advectedInterpolationParameter()
std::pair< Real, Real > _advected_interp_coeffs
Container for the current advected interpolation coefficients on the face to make sure we don't compu...
An advection kernel that implements the advection term for the turbulent variables limited for the fi...
const Elem * elemPtr() const
Moose::FV::InterpMethod _advected_interp_method
The interpolation method to use for the advected quantity.
DenseVector< dof_id_type > _dof_indices
const std::vector< std::vector< dof_id_type > > & dofIndices() const
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
SparseMatrix< Number > * matrix
static InputParameters validParams()
LinearFVTurbulentAdvection(const InputParameters ¶ms)
virtual Real computeNeighborRightHandSideContribution() override
registerMooseObject("NavierStokesApp", LinearFVTurbulentAdvection)
FEProblemBase & _fe_problem
const RhieChowMassFlux & _mass_flux_provider
The Rhie-Chow user object that provides us with the face velocity.
virtual Real computeElemRightHandSideContribution() override
bool hasBlocks(const SubdomainName &name) const
virtual void initialSetup()
std::unordered_set< const Elem * > _wall_bounded
List for wall bounded elements.
const unsigned int _sys_num
bool setInterpolationMethod(const MooseObject &obj, Moose::FV::InterpMethod &interp_method, const std::string ¶m_name)
virtual Real computeElemMatrixContribution() override
SubdomainID subdomain_id() const
DenseMatrix< Real > _matrix_contribution