LCOV - code coverage report
Current view: top level - src/kokkos/base - KokkosFunctor.K (source / functions) Hit Total Coverage
Test: idaholab/moose framework: #31653 (1b668c) with base bb0a08 Lines: 0 17 0.0 %
Date: 2025-11-03 17:02:13 Functions: 0 3 0.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 "KokkosFunctor.h"
      11             : 
      12             : #include "FEProblemBase.h"
      13             : 
      14             : namespace Moose
      15             : {
      16             : namespace Kokkos
      17             : {
      18             : 
      19           0 : Functor::Functor(FEProblemBase & problem, std::shared_ptr<FunctorWrapperHostBase> wrapper)
      20           0 :   : _wrapper_host(wrapper), _problem(problem), _t(problem.time()), _t_old(problem.timeOld())
      21             : {
      22             :   // Allocate device wrapper
      23           0 :   _wrapper_device = _wrapper_host->allocate();
      24           0 : }
      25             : 
      26           0 : Functor::Functor(const Functor & functor)
      27           0 :   : _wrapper_host(functor._wrapper_host),
      28           0 :     _wrapper_device(functor._wrapper_device),
      29           0 :     _problem(functor._problem),
      30           0 :     _t(functor._t),
      31           0 :     _t_old(functor._t_old)
      32             : {
      33             :   // Copy functor to device
      34           0 :   _wrapper_host->copyFunctor();
      35           0 : }
      36             : 
      37           0 : Functor::~Functor()
      38             : {
      39             :   // Free device wrapper
      40           0 :   if (_wrapper_host.use_count() == 1)
      41           0 :     ::Kokkos::kokkos_free<ExecSpace::memory_space>(_wrapper_device);
      42             : 
      43             :   // Free host copy of functor
      44           0 :   _wrapper_host->freeFunctor();
      45           0 : }
      46             : 
      47             : } // namespace Kokkos
      48             : } // namespace Moose

Generated by: LCOV version 1.14