https://mooseframework.inl.gov
Loading...
Searching...
No Matches
LinearFVMomentumPressure.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 "Assembly.h"
12#include "SubProblem.h"
13#include "NS.h"
14#include "FEProblemBase.h"
16
18
21{
23 params.addClassDescription("Represents the pressure gradient term in the Navier Stokes momentum "
24 "equations, added to the right hand side.");
25 params.addParam<VariableName>(NS::pressure,
26 "The pressure variable whose gradient should be used.");
27 MooseEnum momentum_component("x=0 y=1 z=2");
29 "momentum_component",
30 momentum_component,
31 "The component of the momentum equation that this kernel applies to.");
32 return params;
33}
34
37 _index(getParam<MooseEnum>("momentum_component")),
38 _pressure_var(getPressureVariable(NS::pressure)),
39 _pressure_gradient_field(_pressure_var.requestCellGradients())
40{
41}
42
45{
46 auto * ptr = dynamic_cast<MooseLinearVariableFV<Real> *>(
47 &_fe_problem.getVariable(_tid, getParam<VariableName>(vname)));
48
49 if (!ptr)
50 paramError(NS::pressure, "The pressure variable should be of type MooseLinearVariableFVReal!");
51
52 return *ptr;
53}
54
55Real
60
61Real
registerMooseObject("NavierStokesApp", LinearFVMomentumPressure)
virtual const MooseVariableFieldBase & getVariable(const THREAD_ID tid, const std::string &var_name, Moose::VarKindType expected_var_type=Moose::VarKindType::VAR_ANY, Moose::VarFieldType expected_var_field_type=Moose::VarFieldType::VAR_FIELD_ANY) const override
void addRequiredParam(const std::string &name, const std::string &doc_string)
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)
void addClassDescription(const std::string &doc_string)
const ElemInfo * _current_elem_info
static InputParameters validParams()
Real component(const ElemInfo &elem_info, unsigned int index) const
Kernel that adds the component of the pressure gradient in the momentum equations to the right hand s...
MooseLinearVariableFV< Real > & getPressureVariable(const std::string &vname)
virtual Real computeRightHandSideContribution() override
const unsigned int _index
Index x|y|z of the momentum equation component.
virtual Real computeMatrixContribution() override
static InputParameters validParams()
const LinearFVGradientReader & _pressure_gradient_field
Pressure gradient field used by this kernel.
LinearFVMomentumPressure(const InputParameters &params)
Class constructor.
const THREAD_ID _tid
FEProblemBase & _fe_problem
void paramError(const std::string &param, Args... args) const
static const std::string pressure
Definition NS.h:57