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 : #pragma once 11 : 12 : #include "FVFunctorTimeKernel.h" 13 : #include "INSFVMomentumResidualObject.h" 14 : 15 : /** 16 : * All navier-stokes momentum time derivative terms should inherit from this class 17 : */ 18 : class INSFVTimeKernel : public FVFunctorTimeKernel, public INSFVMomentumResidualObject 19 : { 20 : public: 21 : static InputParameters validParams(); 22 : INSFVTimeKernel(const InputParameters & params); 23 : 24 : using INSFVMomentumResidualObject::gatherRCData; 25 0 : void gatherRCData(const FaceInfo &) override final {} 26 : 27 1788 : virtual ~INSFVTimeKernel() = default; 28 : 29 5931344 : void computeResidual() override final {} 30 17352 : void computeJacobian() override final {} 31 : using FVFunctorTimeKernel::computeOffDiagJacobian; 32 4532382 : void computeOffDiagJacobian() override final {} 33 0 : void computeResidualAndJacobian() override final {} 34 : 35 : protected: 36 0 : ADReal computeQpResidual() override final 37 : { 38 0 : mooseError("INSFVTimeKernels must implement gatherRCData and not computeQpResidual"); 39 : } 40 : 41 : /** 42 : * Process into either the system residual or Jacobian 43 : */ 44 : void addResidualAndJacobian(const ADReal & residual, dof_id_type dof); 45 : 46 : /// Whether to contribute to RC coefficients 47 : const bool _contribute_to_rc_coeffs; 48 : 49 : private: 50 : using FVFunctorTimeKernel::_current_elem; 51 : };