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