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 122668 : KernelBase::validParams() 25 : { 26 122668 : auto params = ResidualObject::validParams(); 27 122668 : params += BlockRestrictable::validParams(); 28 122668 : params += MaterialPropertyInterface::validParams(); 29 : 30 : // Kernels always couple within their element 31 368946 : params.addRelationshipManager("ElementSideNeighborLayers", 32 : Moose::RelationshipManagerType::COUPLING, 33 125095 : [](const InputParameters &, InputParameters & rm_params) 34 8022 : { rm_params.set<unsigned short>("layers") = 0; }); 35 : 36 122668 : params.registerBase("KokkosKernel"); 37 : 38 122668 : return params; 39 0 : } 40 : 41 1335 : KernelBase::KernelBase(const InputParameters & parameters, Moose::VarFieldType field_type) 42 : : ResidualObject(parameters, field_type), 43 : BlockRestrictable(this), 44 : CoupleableMooseVariableDependencyIntermediateInterface(this, false), 45 1021 : MaterialPropertyInterface(this, blockIDs(), Moose::EMPTY_BOUNDARY_IDS) 46 : { 47 1335 : } 48 : 49 64004 : KernelBase::KernelBase(const KernelBase & object) 50 : : ResidualObject(object), 51 : BlockRestrictable(object, {}), 52 : CoupleableMooseVariableDependencyIntermediateInterface(object, {}), 53 52723 : MaterialPropertyInterface(object, {}) 54 : { 55 64004 : } 56 : 57 : } // namespace Kokkos 58 : } // namespace Moose