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 "Kernel.h" 13 : #include "ADKernel.h" 14 : 15 : template <bool is_ad> 16 : class GenericKernel : public Kernel 17 : { 18 : public: 19 228736 : static InputParameters validParams() { return Kernel::validParams(); }; 20 15005 : GenericKernel(const InputParameters & parameters) : Kernel(parameters) {} 21 : }; 22 : 23 : template <> 24 : class GenericKernel<true> : public ADKernel 25 : { 26 : public: 27 144084 : static InputParameters validParams() { return ADKernel::validParams(); }; 28 753 : GenericKernel(const InputParameters & parameters) : ADKernel(parameters) {} 29 : }; 30 : 31 : #define usingGenericKernelMembers \ 32 : usingFunctionInterfaceMembers; \ 33 : usingPostprocessorInterfaceMembers; \ 34 : usingMooseObjectMembers; \ 35 : usingTransientInterfaceMembers; \ 36 : usingTaggingInterfaceMembers; \ 37 : usingBlockRestrictableMembers; \ 38 : using GenericKernel<is_ad>::_qp; \ 39 : using GenericKernel<is_ad>::_i; \ 40 : using GenericKernel<is_ad>::_j; \ 41 : using GenericKernel<is_ad>::_u; \ 42 : using GenericKernel<is_ad>::_phi; \ 43 : using GenericKernel<is_ad>::_test; \ 44 : using GenericKernel<is_ad>::_grad_test; \ 45 : using GenericKernel<is_ad>::_q_point; \ 46 : using GenericKernel<is_ad>::_var; \ 47 : using GenericKernel<is_ad>::getVar; \ 48 : using Coupleable::coupled; \ 49 : using Coupleable::coupledComponents