LCOV - code coverage report
Current view: top level - src/kokkos/actions - AddKokkosFunctionAction.K (source / functions) Hit Total Coverage
Test: idaholab/moose framework: d8769b Lines: 13 16 81.2 %
Date: 2025-11-07 20:01:30 Functions: 3 3 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 "AddKokkosFunctionAction.h"
      11             : #include "FEProblem.h"
      12             : 
      13             : registerMooseAction("MooseApp", AddKokkosFunctionAction, "add_function");
      14             : 
      15             : InputParameters
      16         301 : AddKokkosFunctionAction::validParams()
      17             : {
      18         301 :   InputParameters params = KokkosObjectAction::validParams();
      19         301 :   params.addClassDescription("Add a Kokkos Function object to the simulation.");
      20         301 :   return params;
      21           0 : }
      22             : 
      23         187 : AddKokkosFunctionAction::AddKokkosFunctionAction(const InputParameters & params)
      24         350 :   : KokkosObjectAction(params, "Function")
      25             : {
      26         181 : }
      27             : 
      28             : void
      29         181 : AddKokkosFunctionAction::act()
      30             : {
      31         181 :   FunctionParserBase<Real> fp;
      32         181 :   std::string vars = "x,y,z,t,NaN,pi,e";
      33         181 :   if (fp.Parse(_name, vars) == -1) // -1 for success
      34           0 :     mooseError(
      35             :         "Function name '",
      36           0 :         _name,
      37             :         "' can be interpreted as a parsed function expression. This can be problematic. As an "
      38             :         "example you may name a function 'x' whose functional form is 'xy'. You probably wouldn't "
      39             :         "do this, but let's assume for the sake of argument. You might also write somewhere in a "
      40             :         "consumer object 'function = x'. Well, MOOSE supports direct construction of parsed "
      41             :         "functions from 'FunctionName' parameters, so is this consumer going to end up using the "
      42             :         "functional form 'x' or 'xy'? It is undefined behavior.");
      43         181 :   _problem->addKokkosFunction(_type, _name, _moose_object_pars);
      44         181 : }

Generated by: LCOV version 1.14