LCOV - code coverage report
Current view: top level - src/base - ResidualObject.C (source / functions) Hit Total Coverage
Test: idaholab/moose framework: fef103 Lines: 25 28 89.3 %
Date: 2025-09-03 20:01:23 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     5613286 : ResidualObject::validParams()
      16             : {
      17     5613286 :   auto params = MooseObject::validParams();
      18     5613286 :   params += TransientInterface::validParams();
      19     5613286 :   params += RandomInterface::validParams();
      20     5613286 :   params += MeshChangedInterface::validParams();
      21     5613286 :   params += TaggingInterface::validParams();
      22             : 
      23    16839858 :   params.addRequiredParam<NonlinearVariableName>(
      24             :       "variable", "The name of the variable that this residual object operates on");
      25             : 
      26    16839858 :   params.declareControllable("enable");
      27     5613286 :   params.set<bool>("_residual_object") = true;
      28     5613286 :   return params;
      29           0 : }
      30             : 
      31      191599 : 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      191591 :     VectorPostprocessorInterface(this, getBase() == "ScalarKernel"),
      42             :     RandomInterface(parameters,
      43      766364 :                     *parameters.getCheckedPointerParam<FEProblemBase *>("_fe_problem_base"),
      44      191591 :                     parameters.get<THREAD_ID>("_tid"),
      45             :                     is_nodal),
      46      383182 :     Restartable(this, getBase() + "s"),
      47             :     MeshChangedInterface(parameters),
      48             :     TaggingInterface(this),
      49      574677 :     _subproblem(*getCheckedPointerParam<SubProblem *>("_subproblem")),
      50      191559 :     _fe_problem(*parameters.get<FEProblemBase *>("_fe_problem_base")),
      51      766236 :     _sys(*getCheckedPointerParam<SystemBase *>("_sys")),
      52      191559 :     _tid(parameters.get<THREAD_ID>("_tid")),
      53      191559 :     _assembly(_subproblem.assembly(_tid, _sys.number())),
      54     1532704 :     _mesh(_subproblem.mesh())
      55             : {
      56      191559 : }
      57             : 
      58             : void
      59   146119927 : ResidualObject::prepareShapes(const unsigned int var_num)
      60             : {
      61   146119927 :   _subproblem.prepareShapes(var_num, _tid);
      62   146119927 : }
      63             : 
      64             : void
      65           0 : ResidualObject::computeResidualAndJacobian()
      66             : {
      67           0 :   mooseError(
      68             :       "This object has not yet implemented 'computeResidualAndJacobian'. If you would like that "
      69             :       "feature for this object, please contact a MOOSE developer.");
      70             : }

Generated by: LCOV version 1.14