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 "PINSFVMomentumAdvection.h" 11 : #include "FVUtils.h" 12 : #include "MathFVUtils.h" 13 : #include "NS.h" 14 : #include "INSFVRhieChowInterpolator.h" 15 : #include "BernoulliPressureVariable.h" 16 : 17 : registerMooseObject("NavierStokesApp", PINSFVMomentumAdvection); 18 : 19 : InputParameters 20 9851 : PINSFVMomentumAdvection::validParams() 21 : { 22 9851 : auto params = INSFVMomentumAdvection::validParams(); 23 9851 : params.addClassDescription("Object for advecting superficial momentum, e.g. rho*u_d, " 24 : "in the porous media momentum equation"); 25 9851 : params.addRequiredParam<MooseFunctorName>(NS::porosity, "Porosity"); 26 9851 : return params; 27 0 : } 28 : 29 5552 : PINSFVMomentumAdvection::PINSFVMomentumAdvection(const InputParameters & params) 30 5552 : : INSFVMomentumAdvection(params), _eps(getFunctor<ADReal>(NS::porosity)) 31 : { 32 5552 : const auto & pressure_var = _rc_vel_provider.pressure(_tid); 33 5552 : if (dynamic_cast<const BernoulliPressureVariable *>(&pressure_var) && _tid == 0) 34 360 : adjustRMGhostLayers(std::max((unsigned short)(3), _pars.get<unsigned short>("ghost_layers"))); 35 5552 : }