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 "KernelScalarBase.h" 13 : #include "ADKernelScalarBase.h" 14 : 15 : template <bool is_ad> 16 : class GenericKernelScalar : public KernelScalarBase 17 : { 18 : public: 19 14321 : static InputParameters validParams() { return KernelScalarBase::validParams(); }; 20 29 : GenericKernelScalar(const InputParameters & parameters) : KernelScalarBase(parameters) {} 21 : }; 22 : 23 : template <> 24 : class GenericKernelScalar<true> : public ADKernelScalarBase 25 : { 26 : public: 27 14497 : static InputParameters validParams() { return ADKernelScalarBase::validParams(); }; 28 121 : GenericKernelScalar(const InputParameters & parameters) : ADKernelScalarBase(parameters) {} 29 : }; 30 : 31 : #define usingGenericKernelScalarMembers \ 32 : usingFunctionInterfaceMembers; \ 33 : usingPostprocessorInterfaceMembers; \ 34 : usingMooseObjectMembers; \ 35 : usingTransientInterfaceMembers; \ 36 : usingTaggingInterfaceMembers; \ 37 : usingBlockRestrictableMembers; \ 38 : using GenericKernelScalar<is_ad>::_qp; \ 39 : using GenericKernelScalar<is_ad>::_i; \ 40 : using GenericKernelScalar<is_ad>::_j; \ 41 : using GenericKernelScalar<is_ad>::_u; \ 42 : using GenericKernelScalar<is_ad>::_phi; \ 43 : using GenericKernelScalar<is_ad>::_test; \ 44 : using GenericKernelScalar<is_ad>::_q_point; \ 45 : using GenericKernelScalar<is_ad>::_var; \ 46 : using GenericKernelScalar<is_ad>::getVar; \ 47 : using GenericKernelScalar<is_ad>::_h; \ 48 : using GenericKernelScalar<is_ad>::_l; \ 49 : using GenericKernelScalar<is_ad>::_compute_scalar_residuals; \ 50 : using GenericKernelScalar<is_ad>::_compute_field_residuals; \ 51 : using GenericKernelScalar<is_ad>::_kappa_var; \ 52 : using GenericKernelScalar<is_ad>::_k_order; \ 53 : using GenericKernelScalar<is_ad>::_kappa; \ 54 : using Coupleable::coupled; \ 55 : using Coupleable::coupledComponents