LCOV - code coverage report
Current view: top level - src/variables - CoupleableMooseVariableDependencyIntermediateInterface.C (source / functions) Hit Total Coverage
Test: idaholab/moose framework: 99787a Lines: 30 38 78.9 %
Date: 2025-10-14 20:01:24 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 "CoupleableMooseVariableDependencyIntermediateInterface.h"
      11             : 
      12             : #include "FEProblemBase.h"
      13             : 
      14      306472 : CoupleableMooseVariableDependencyIntermediateInterface::
      15             :     CoupleableMooseVariableDependencyIntermediateInterface(const MooseObject * moose_object,
      16             :                                                            bool nodal,
      17      306472 :                                                            bool is_fv)
      18             :   : Coupleable(moose_object, nodal, is_fv),
      19             :     ScalarCoupleable(moose_object),
      20      306472 :     MooseVariableDependencyInterface(moose_object)
      21             : {
      22      369242 :   for (MooseVariableFEBase * coupled_var : getCoupledMooseVars())
      23       62778 :     addMooseVariableDependency(coupled_var);
      24      306464 : }
      25             : 
      26             : #ifdef MOOSE_KOKKOS_ENABLED
      27      162146 : CoupleableMooseVariableDependencyIntermediateInterface::
      28             :     CoupleableMooseVariableDependencyIntermediateInterface(
      29             :         const CoupleableMooseVariableDependencyIntermediateInterface & object,
      30      162146 :         const Moose::Kokkos::FunctorCopy & key)
      31             :   : Coupleable(object, key),
      32             :     ScalarCoupleable(object, key),
      33      162146 :     MooseVariableDependencyInterface(object, key)
      34             : {
      35      162146 : }
      36             : #endif
      37             : 
      38             : const VariableValue &
      39          14 : CoupleableMooseVariableDependencyIntermediateInterface::coupledValueByName(
      40             :     const std::string & var_name)
      41             : {
      42          14 :   MooseVariableFieldBase * moose_var = &_c_fe_problem.getVariable(
      43          14 :       _c_tid, var_name, Moose::VarKindType::VAR_ANY, Moose::VarFieldType::VAR_FIELD_ANY);
      44          14 :   _coupled_moose_vars.push_back(moose_var);
      45          14 :   MooseVariable * var = &_c_fe_problem.getStandardVariable(_c_tid, var_name);
      46          14 :   _coupled_standard_moose_vars.push_back(var);
      47             : 
      48          14 :   addMooseVariableDependency(moose_var);
      49             : 
      50          14 :   if (!_coupleable_neighbor)
      51             :   {
      52          14 :     if (_c_nodal)
      53           0 :       return (_c_is_implicit) ? var->dofValues() : var->dofValuesOld();
      54             :     else
      55          14 :       return (_c_is_implicit) ? var->sln() : var->slnOld();
      56             :   }
      57             :   else
      58             :   {
      59           0 :     if (_c_nodal)
      60           0 :       return (_c_is_implicit) ? var->dofValuesNeighbor() : var->dofValuesOldNeighbor();
      61             :     else
      62           0 :       return (_c_is_implicit) ? var->slnNeighbor() : var->slnOldNeighbor();
      63             :   }
      64             : }
      65             : 
      66             : const ArrayVariableValue &
      67          14 : CoupleableMooseVariableDependencyIntermediateInterface::coupledArrayValueByName(
      68             :     const std::string & var_name)
      69             : {
      70          14 :   MooseVariableFieldBase * moose_var = &_c_fe_problem.getVariable(
      71          14 :       _c_tid, var_name, Moose::VarKindType::VAR_ANY, Moose::VarFieldType::VAR_FIELD_ANY);
      72          14 :   _coupled_moose_vars.push_back(moose_var);
      73          14 :   ArrayMooseVariable * var = &_c_fe_problem.getArrayVariable(_c_tid, var_name);
      74          14 :   _coupled_array_moose_vars.push_back(var);
      75             : 
      76          14 :   addMooseVariableDependency(moose_var);
      77             : 
      78          14 :   if (!_coupleable_neighbor)
      79             :   {
      80          14 :     if (_c_nodal)
      81           0 :       return (_c_is_implicit) ? var->dofValues() : var->dofValuesOld();
      82             :     else
      83          14 :       return (_c_is_implicit) ? var->sln() : var->slnOld();
      84             :   }
      85             :   else
      86             :   {
      87           0 :     if (_c_nodal)
      88           0 :       return (_c_is_implicit) ? var->dofValuesNeighbor() : var->dofValuesOldNeighbor();
      89             :     else
      90           0 :       return (_c_is_implicit) ? var->slnNeighbor() : var->slnOldNeighbor();
      91             :   }
      92             : }

Generated by: LCOV version 1.14