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 : #pragma once 11 : 12 : #include "KokkosBoundaryCondition.h" 13 : #include "CoupleableMooseVariableDependencyIntermediateInterface.h" 14 : 15 : namespace Moose::Kokkos 16 : { 17 : 18 : /** 19 : * The base class for Kokkos nodal boundary conditions 20 : */ 21 : class NodalBCBase : public BoundaryCondition, 22 : public CoupleableMooseVariableDependencyIntermediateInterface 23 : { 24 : public: 25 : static InputParameters validParams(); 26 : 27 : /** 28 : * Constructor 29 : * @param field_type The MOOSE variable field type 30 : */ 31 : NodalBCBase(const InputParameters & parameters, Moose::VarFieldType field_type); 32 : /** 33 : * Copy constructor for parallel dispatch 34 : */ 35 : NodalBCBase(const NodalBCBase & object); 36 : 37 : /** 38 : * Get the list of contiguous node IDs this object is operating on 39 : * @returns The list of contiguous node IDs 40 : */ 41 : std::vector<ContiguousNodeID> getContiguousNodes() const; 42 : 43 : /** 44 : * For use in Dirichlet boundary conditions only 45 : */ 46 : ///@{ 47 34 : virtual bool preset() const { return false; } 48 0 : virtual void presetSolution(TagID /* tag */) {} 49 : ///@} 50 : }; 51 : 52 : } // namespace Moose::Kokkos