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 "INSFVMomentumTimeDerivative.h" 11 : #include "SystemBase.h" 12 : #include "NS.h" 13 : 14 : registerMooseObject("NavierStokesApp", INSFVMomentumTimeDerivative); 15 : 16 : InputParameters 17 948 : INSFVMomentumTimeDerivative::validParams() 18 : { 19 948 : InputParameters params = INSFVTimeKernel::validParams(); 20 948 : params.addClassDescription( 21 : "Adds the time derivative term to the incompressible Navier-Stokes momentum equation."); 22 948 : params.addRequiredParam<MooseFunctorName>(NS::density, "The density functor"); 23 948 : return params; 24 0 : } 25 : 26 554 : INSFVMomentumTimeDerivative::INSFVMomentumTimeDerivative(const InputParameters & params) 27 554 : : INSFVTimeKernel(params), _rho(getFunctor<ADReal>(NS::density)) 28 : { 29 554 : } 30 : 31 : void 32 5739200 : INSFVMomentumTimeDerivative::gatherRCData(const Elem & elem) 33 : { 34 5739200 : const auto e = makeElemArg(&elem); 35 5739200 : const auto state = determineState(); 36 5739200 : const auto residual = _rho(e, state) * _var.dot(e, state) * _assembly.elementVolume(&elem); 37 5739200 : const auto dof_number = elem.dof_number(_sys.number(), _var.number(), 0); 38 5739200 : const Real a = residual.derivatives()[dof_number]; 39 : 40 5739200 : if (_contribute_to_rc_coeffs) 41 5739200 : _rc_uo.addToA(&elem, _index, a); 42 : 43 5739200 : addResidualAndJacobian(residual, dof_number); 44 5739200 : }