LCOV - code coverage report
Current view: top level - src/base - ResidualObject.C (source / functions) Hit Total Coverage
Test: idaholab/moose framework: 2bf808 Lines: 25 28 89.3 %
Date: 2025-07-17 01:28:37 Functions: 3 4 75.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 "ResidualObject.h"
      11             : #include "SubProblem.h"
      12             : #include "InputParameters.h"
      13             : 
      14             : InputParameters
      15     5570022 : ResidualObject::validParams()
      16             : {
      17     5570022 :   auto params = MooseObject::validParams();
      18     5570022 :   params += TransientInterface::validParams();
      19     5570022 :   params += RandomInterface::validParams();
      20     5570022 :   params += MeshChangedInterface::validParams();
      21     5570022 :   params += TaggingInterface::validParams();
      22             : 
      23     5570022 :   params.addRequiredParam<NonlinearVariableName>(
      24             :       "variable", "The name of the variable that this residual object operates on");
      25             : 
      26     5570022 :   params.declareControllable("enable");
      27     5570022 :   params.set<bool>("_residual_object") = true;
      28     5570022 :   return params;
      29           0 : }
      30             : 
      31      177023 : ResidualObject::ResidualObject(const InputParameters & parameters, bool is_nodal)
      32             :   : MooseObject(parameters),
      33             :     SetupInterface(this),
      34             :     FunctionInterface(this),
      35             :     UserObjectInterface(this),
      36             :     TransientInterface(this),
      37             :     PostprocessorInterface(this),
      38             :     // VPPs used by ScalarKernels must be broadcast because we don't know where the
      39             :     // ScalarKernel will end up being evaluated
      40             :     // Note: residual objects should have a valid _moose_base.
      41             :     VectorPostprocessorInterface(this,
      42      177015 :                                  parameters.get<std::string>("_moose_base") == "ScalarKernel"),
      43             :     RandomInterface(parameters,
      44      354030 :                     *parameters.getCheckedPointerParam<FEProblemBase *>("_fe_problem_base"),
      45      177015 :                     parameters.get<THREAD_ID>("_tid"),
      46             :                     is_nodal),
      47      354030 :     Restartable(this, parameters.get<std::string>("_moose_base") + "s"),
      48             :     MeshChangedInterface(parameters),
      49             :     TaggingInterface(this),
      50      176983 :     _subproblem(*getCheckedPointerParam<SubProblem *>("_subproblem")),
      51      176983 :     _fe_problem(*parameters.get<FEProblemBase *>("_fe_problem_base")),
      52      176983 :     _sys(*getCheckedPointerParam<SystemBase *>("_sys")),
      53      176983 :     _tid(parameters.get<THREAD_ID>("_tid")),
      54      176983 :     _assembly(_subproblem.assembly(_tid, _sys.number())),
      55     1416096 :     _mesh(_subproblem.mesh())
      56             : {
      57      176983 : }
      58             : 
      59             : void
      60   130885018 : ResidualObject::prepareShapes(const unsigned int var_num)
      61             : {
      62   130885018 :   _subproblem.prepareShapes(var_num, _tid);
      63   130885018 : }
      64             : 
      65             : void
      66           0 : ResidualObject::computeResidualAndJacobian()
      67             : {
      68           0 :   mooseError(
      69             :       "This object has not yet implemented 'computeResidualAndJacobian'. If you would like that "
      70             :       "feature for this object, please contact a MOOSE developer.");
      71             : }

Generated by: LCOV version 1.14