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 "LinearSystemContributionObject.h" 13 : #include "BlockRestrictable.h" 14 : #include "NonADFunctorInterface.h" 15 : #include "MooseLinearVariableFV.h" 16 : #include "MooseVariableInterface.h" 17 : #include "MooseVariableDependencyInterface.h" 18 : #include "FVRelationshipManagerInterface.h" 19 : 20 : /** 21 : * Base class for finite volume kernels that contribute to a linear 22 : * systems. 23 : */ 24 : class LinearFVKernel : public LinearSystemContributionObject, 25 : public BlockRestrictable, 26 : public NonADFunctorInterface, 27 : public FVRelationshipManagerInterface, 28 : public MooseVariableInterface<Real>, 29 : public MooseVariableDependencyInterface 30 : { 31 : public: 32 : static InputParameters validParams(); 33 : 34 : LinearFVKernel(const InputParameters & params); 35 : 36 0 : virtual const MooseLinearVariableFV<Real> & variable() const override { return _var; } 37 : 38 : protected: 39 : /// Reference to the linear finite volume variable 40 : MooseLinearVariableFV<Real> & _var; 41 : 42 : /// Cache for the variable number 43 : const unsigned int _var_num; 44 : 45 : /// Cache for the system number 46 : const unsigned int _sys_num; 47 : };