Line data Source code
1 : //* This file is part of the MOOSE framework 2 : //* https://www.mooseframework.org 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 "KokkosKernelBase.h" 11 : 12 : #include "MooseVariableFE.h" 13 : #include "Problem.h" 14 : #include "SubProblem.h" 15 : #include "SystemBase.h" 16 : #include "NonlinearSystem.h" 17 : 18 : namespace Moose 19 : { 20 : namespace Kokkos 21 : { 22 : 23 : InputParameters 24 121022 : KernelBase::validParams() 25 : { 26 121022 : auto params = ResidualObject::validParams(); 27 121022 : params += BlockRestrictable::validParams(); 28 121022 : params += MaterialPropertyInterface::validParams(); 29 : 30 : // Kernels always couple within their element 31 363981 : params.addRelationshipManager("ElementSideNeighborLayers", 32 : Moose::RelationshipManagerType::COUPLING, 33 123400 : [](const InputParameters &, InputParameters & rm_params) 34 7806 : { rm_params.set<unsigned short>("layers") = 0; }); 35 : 36 121022 : params.registerBase("KokkosKernel"); 37 : 38 121022 : return params; 39 0 : } 40 : 41 1299 : KernelBase::KernelBase(const InputParameters & parameters, Moose::VarFieldType field_type) 42 : : ResidualObject(parameters, field_type), 43 : BlockRestrictable(this), 44 : CoupleableMooseVariableDependencyIntermediateInterface(this, false), 45 994 : MaterialPropertyInterface(this, blockIDs(), Moose::EMPTY_BOUNDARY_IDS) 46 : { 47 1299 : } 48 : 49 62543 : KernelBase::KernelBase(const KernelBase & object) 50 : : ResidualObject(object), 51 : BlockRestrictable(object, {}), 52 : CoupleableMooseVariableDependencyIntermediateInterface(object, {}), 53 50965 : MaterialPropertyInterface(object, {}) 54 : { 55 62543 : } 56 : 57 : } // namespace Kokkos 58 : } // namespace Moose