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 "KokkosADNodalBC.h" 11 : 12 : namespace Moose::Kokkos 13 : { 14 : 15 : InputParameters 16 2756 : ADNodalBC::validParams() 17 : { 18 2756 : InputParameters params = NodalBCBase::validParams(); 19 2756 : return params; 20 : } 21 : 22 329 : ADNodalBC::ADNodalBC(const InputParameters & parameters) 23 : : NodalBCBase(parameters, Moose::VarFieldType::VAR_FIELD_STANDARD), 24 171 : _u(_var, Moose::SOLUTION_TAG, true) 25 : { 26 329 : addMooseVariableDependency(&_var); 27 329 : } 28 : 29 : void 30 15262 : ADNodalBC::computeResidual() 31 : { 32 15262 : _computing_residual = true; 33 15262 : _computing_jacobian = false; 34 : 35 15262 : dispatch(); 36 15262 : } 37 : 38 : void 39 14074 : ADNodalBC::computeJacobian() 40 : { 41 14074 : _computing_residual = false; 42 14074 : _computing_jacobian = true; 43 : 44 14074 : dispatch(); 45 14074 : } 46 : 47 : void 48 0 : ADNodalBC::computeResidualAndJacobian() 49 : { 50 0 : _computing_residual = true; 51 0 : _computing_jacobian = true; 52 : 53 0 : dispatch(); 54 0 : } 55 : 56 : void 57 29336 : ADNodalBC::dispatch() 58 : { 59 29336 : Policy policy(0, numKokkosBoundaryNodes()); 60 : 61 29336 : if (!_residual_dispatcher) 62 307 : _residual_dispatcher = DispatcherRegistry::build<ResidualLoop>(this, type()); 63 : 64 29336 : _residual_dispatcher->parallelFor(policy); 65 29336 : } 66 : 67 : } // namespace Moose::Kokkos