LCOV - code coverage report
Current view: top level - src/ics - InitialConditionBase.C (source / functions) Hit Total Coverage
Test: idaholab/moose framework: 419b9d Lines: 39 40 97.5 %
Date: 2025-08-08 20:01:16 Functions: 7 8 87.5 %
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 "InitialConditionBase.h"
      11             : #include "SystemBase.h"
      12             : #include "MooseVariableFE.h"
      13             : #include "UserObject.h"
      14             : 
      15             : InputParameters
      16      331308 : InitialConditionBase::validParams()
      17             : {
      18      331308 :   InputParameters params = MooseObject::validParams();
      19      331308 :   params += InitialConditionInterface::validParams();
      20      331308 :   params += BlockRestrictable::validParams();
      21      331308 :   params += BoundaryRestrictable::validParams();
      22      331308 :   params += MaterialPropertyInterface::validParams();
      23             : 
      24      331308 :   params.addRequiredParam<VariableName>("variable",
      25             :                                         "The variable this initial condition is "
      26             :                                         "supposed to provide values for.");
      27      993924 :   params.addParam<bool>("ignore_uo_dependency",
      28      662616 :                         false,
      29             :                         "When set to true, a UserObject retrieved "
      30             :                         "by this IC will not be executed before the "
      31             :                         "this IC");
      32             : 
      33      331308 :   params.addParamNamesToGroup("ignore_uo_dependency", "Advanced");
      34             : 
      35      331308 :   params.registerBase("InitialCondition");
      36             : 
      37      331308 :   return params;
      38           0 : }
      39             : 
      40       31314 : InitialConditionBase::InitialConditionBase(const InputParameters & parameters)
      41             :   : MooseObject(parameters),
      42             :     InitialConditionInterface(parameters),
      43             :     BlockRestrictable(this),
      44             :     Coupleable(this,
      45       62628 :                getParam<SystemBase *>("_sys")
      46       31314 :                    ->getVariable(parameters.get<THREAD_ID>("_tid"),
      47       62628 :                                  parameters.get<VariableName>("variable"))
      48       31314 :                    .isNodal()),
      49             :     MaterialPropertyInterface(this, blockIDs(), Moose::EMPTY_BOUNDARY_IDS),
      50             :     FunctionInterface(this),
      51             :     UserObjectInterface(this),
      52             :     PostprocessorInterface(this),
      53       31314 :     BoundaryRestrictable(this, _c_nodal),
      54             :     DependencyResolverInterface(),
      55             :     Restartable(this, "InitialConditionBases"),
      56             :     ElementIDInterface(this),
      57       31314 :     _sys(*getCheckedPointerParam<SystemBase *>("_sys")),
      58      125256 :     _ignore_uo_dependency(getParam<bool>("ignore_uo_dependency"))
      59             : {
      60       31314 :   _supplied_vars.insert(getParam<VariableName>("variable"));
      61             : 
      62       31314 :   const auto & coupled_vars = getCoupledVars();
      63       31431 :   for (const auto & it : coupled_vars)
      64         234 :     for (const auto & var : it.second)
      65         117 :       _depend_vars.insert(var->name());
      66       31314 : }
      67             : 
      68       28040 : InitialConditionBase::~InitialConditionBase() {}
      69             : 
      70             : const std::set<std::string> &
      71      241203 : InitialConditionBase::getRequestedItems()
      72             : {
      73      241203 :   return _depend_vars;
      74             : }
      75             : 
      76             : const std::set<std::string> &
      77      241203 : InitialConditionBase::getSuppliedItems()
      78             : {
      79      241203 :   return _supplied_vars;
      80             : }
      81             : 
      82             : void
      83         165 : InitialConditionBase::addUserObjectDependencyHelper(const UserObject & uo) const
      84             : {
      85         165 :   if (!_ignore_uo_dependency)
      86         165 :     _depend_uo.insert(uo.name());
      87         165 : }
      88             : 
      89             : void
      90          83 : InitialConditionBase::addPostprocessorDependencyHelper(const PostprocessorName & name) const
      91             : {
      92          83 :   if (!_ignore_uo_dependency)
      93          83 :     _depend_uo.insert(name);
      94          83 : }

Generated by: LCOV version 1.14