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 "INSFVMomentumPressure.h" 11 : #include "NS.h" 12 : 13 : registerMooseObject("NavierStokesApp", INSFVMomentumPressure); 14 : 15 : InputParameters 16 26945 : INSFVMomentumPressure::validParams() 17 : { 18 26945 : InputParameters params = FVElementalKernel::validParams(); 19 26945 : params += INSFVMomentumResidualObject::validParams(); 20 26945 : params.addClassDescription( 21 : "Introduces the coupled pressure term into the Navier-Stokes momentum equation."); 22 26945 : params.addRequiredParam<MooseFunctorName>(NS::pressure, "The pressure"); 23 53890 : MooseEnum momentum_component("x=0 y=1 z=2"); 24 53890 : params.addRequiredParam<MooseEnum>( 25 : "momentum_component", 26 : momentum_component, 27 : "The component of the momentum equation that this kernel applies to."); 28 53890 : params.addParam<bool>( 29 53890 : "correct_skewness", false, "Whether to correct for mesh skewness in face calculations."); 30 26945 : return params; 31 26945 : } 32 : 33 15030 : INSFVMomentumPressure::INSFVMomentumPressure(const InputParameters & params) 34 : : FVElementalKernel(params), 35 : INSFVMomentumResidualObject(*this), 36 30060 : _p(getFunctor<ADReal>(NS::pressure)), 37 30060 : _index(getParam<MooseEnum>("momentum_component")), 38 45090 : _correct_skewness(getParam<bool>("correct_skewness")) 39 : { 40 15030 : } 41 : 42 : ADReal 43 50096140 : INSFVMomentumPressure::computeQpResidual() 44 : { 45 50096140 : return _p.gradient(Moose::ElemArg{_current_elem, _correct_skewness}, determineState())(_index); 46 : }