LCOV - code coverage report
Current view: top level - src/nodalkernels - ADNodalKernel.C (source / functions) Hit Total Coverage
Test: idaholab/moose framework: #32971 (54bef8) with base c6cf66 Lines: 33 35 94.3 %
Date: 2026-05-29 20:35:17 Functions: 5 5 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 "ADNodalKernel.h"
      11             : #include "SubProblem.h"
      12             : #include "SystemBase.h"
      13             : #include "MooseVariableFE.h"
      14             : #include "Assembly.h"
      15             : 
      16             : #include "metaphysicl/raw_type.h"
      17             : 
      18             : InputParameters
      19       12445 : ADNodalKernel::validParams()
      20             : {
      21       12445 :   auto params = NodalKernelBase::validParams();
      22       12445 :   params += ADFunctorInterface::validParams();
      23       12445 :   return params;
      24           0 : }
      25             : 
      26         111 : ADNodalKernel::ADNodalKernel(const InputParameters & parameters)
      27             :   : NodalKernelBase(parameters),
      28             :     ADFunctorInterface(this),
      29             :     MooseVariableInterface<Real>(this,
      30             :                                  true,
      31             :                                  "variable",
      32             :                                  Moose::VarKindType::VAR_SOLVER,
      33             :                                  Moose::VarFieldType::VAR_FIELD_STANDARD),
      34         222 :     _var(*mooseVariable()),
      35         333 :     _u(_var.adDofValues())
      36             : {
      37         111 :   addMooseVariableDependency(mooseVariable());
      38         111 : }
      39             : 
      40             : void
      41      209718 : ADNodalKernel::computeResidual()
      42             : {
      43      209718 :   if (_var.isNodalDefined())
      44             :   {
      45      209718 :     const auto dof_idx = _var.nodalDofIndex();
      46      209718 :     _qp = 0;
      47      209718 :     auto res = MetaPhysicL::raw_value(computeQpResidual());
      48      419436 :     addResiduals(_assembly,
      49           0 :                  std::array<Real, 1>{{res}},
      50      209718 :                  std::array<dof_id_type, 1>{{dof_idx}},
      51      209718 :                  _var.scalingFactor());
      52             :   }
      53      209718 : }
      54             : 
      55             : void
      56      102641 : ADNodalKernel::computeJacobian()
      57             : {
      58      102641 :   if (_var.isNodalDefined())
      59             :   {
      60      102641 :     const auto dof_idx = _var.nodalDofIndex();
      61      102641 :     _qp = 0;
      62      102641 :     const auto res = computeQpResidual();
      63      205282 :     addJacobian(_assembly,
      64      102641 :                 std::array<ADReal, 1>{{res}},
      65      102641 :                 std::array<dof_id_type, 1>{{dof_idx}},
      66      102641 :                 _var.scalingFactor());
      67      102641 :   }
      68      102641 : }
      69             : 
      70             : void
      71      184653 : ADNodalKernel::computeOffDiagJacobian(const unsigned int jvar)
      72             : {
      73      184653 :   if (jvar == _var.number())
      74      102641 :     computeJacobian();
      75      184653 : }

Generated by: LCOV version 1.14