LCOV - code coverage report
Current view: top level - src/kokkos/nodalkernels - KokkosNodalKernel.K (source / functions) Hit Total Coverage
Test: idaholab/moose framework: #32971 (54bef8) with base c6cf66 Lines: 31 31 100.0 %
Date: 2026-05-29 20:35:17 Functions: 4 4 100.0 %
Legend: Lines: hit not hit

          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             : #include "KokkosNodalKernel.h"
      11             : 
      12             : namespace Moose::Kokkos
      13             : {
      14             : 
      15             : InputParameters
      16       15496 : NodalKernel::validParams()
      17             : {
      18       15496 :   InputParameters params = NodalKernelBase::validParams();
      19       15496 :   return params;
      20             : }
      21             : 
      22         407 : NodalKernel::NodalKernel(const InputParameters & parameters)
      23             :   : NodalKernelBase(parameters, Moose::VarFieldType::VAR_FIELD_STANDARD),
      24         215 :     _u(_var, Moose::SOLUTION_TAG, true),
      25         215 :     _boundary_restricted(boundaryRestricted())
      26             : {
      27         407 :   addMooseVariableDependency(&_var);
      28         407 : }
      29             : 
      30             : void
      31       31889 : NodalKernel::computeResidual()
      32             : {
      33       31889 :   Policy policy(0, _boundary_restricted ? numKokkosBoundaryNodes() : numKokkosBlockNodes());
      34             : 
      35       31889 :   if (!_residual_dispatcher)
      36         405 :     _residual_dispatcher = DispatcherRegistry::build<ResidualLoop>(this, type());
      37             : 
      38       31889 :   _residual_dispatcher->parallelFor(policy);
      39       31889 : }
      40             : 
      41             : void
      42        8194 : NodalKernel::computeJacobian()
      43             : {
      44        8194 :   if (DispatcherRegistry::hasUserMethod<JacobianLoop>(type()))
      45             :   {
      46        4708 :     Policy policy(0, _boundary_restricted ? numKokkosBoundaryNodes() : numKokkosBlockNodes());
      47             : 
      48        4708 :     if (!_jacobian_dispatcher)
      49         236 :       _jacobian_dispatcher = DispatcherRegistry::build<JacobianLoop>(this, type());
      50             : 
      51        4708 :     _jacobian_dispatcher->parallelFor(policy);
      52        4708 :   }
      53             : 
      54        8194 :   if (DispatcherRegistry::hasUserMethod<OffDiagJacobianLoop>(type()))
      55             :   {
      56        5104 :     auto & sys = kokkosSystem(_kokkos_var.sys());
      57             : 
      58        5104 :     _thread.resize(sys.getCoupling(_kokkos_var.var()).size(),
      59        2728 :                    _boundary_restricted ? numKokkosBoundaryNodes() : numKokkosBlockNodes());
      60             : 
      61        5104 :     Policy policy(0, _thread.size());
      62             : 
      63        5104 :     if (!_offdiag_jacobian_dispatcher)
      64         240 :       _offdiag_jacobian_dispatcher = DispatcherRegistry::build<OffDiagJacobianLoop>(this, type());
      65             : 
      66        5104 :     _offdiag_jacobian_dispatcher->parallelFor(policy);
      67        5104 :   }
      68        8194 : }
      69             : 
      70             : } // namespace Moose::Kokkos

Generated by: LCOV version 1.14