LCOV - code coverage report
Current view: top level - src/constraints - ADNodeElemConstraint.C (source / functions) Hit Total Coverage
Test: idaholab/moose framework: 2bf808 Lines: 35 39 89.7 %
Date: 2025-07-17 01:28:37 Functions: 4 6 66.7 %
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 "ADNodeElemConstraint.h"
      11             : 
      12             : // MOOSE includes
      13             : #include "Assembly.h"
      14             : #include "MooseEnum.h"
      15             : #include "MooseMesh.h"
      16             : #include "MooseTypes.h"
      17             : 
      18             : #include "libmesh/string_to_enum.h"
      19             : 
      20             : InputParameters
      21       14429 : ADNodeElemConstraint::validParams()
      22             : {
      23       14429 :   InputParameters params = NodeElemConstraintBase::validParams();
      24       14429 :   return params;
      25             : }
      26             : 
      27          84 : ADNodeElemConstraint::ADNodeElemConstraint(const InputParameters & parameters)
      28             :   : NodeElemConstraintBase(parameters),
      29         168 :     _u_primary(_primary_var.adSlnNeighbor()),
      30          84 :     _u_secondary(_var.adDofValues())
      31             : {
      32          84 : }
      33             : 
      34             : void
      35        4200 : ADNodeElemConstraint::computeResidual()
      36             : {
      37        4200 :   _qp = 0;
      38             : 
      39        4200 :   _residuals.resize(_test_primary.size(), 0);
      40       28280 :   for (auto & r : _residuals)
      41       24080 :     r = 0;
      42             : 
      43       28280 :   for (_i = 0; _i < _test_primary.size(); _i++)
      44       24080 :     _residuals[_i] += raw_value(computeQpResidual(Moose::Primary));
      45             : 
      46       12600 :   addResiduals(
      47        4200 :       _assembly, _residuals, _primary_var.dofIndicesNeighbor(), _primary_var.scalingFactor());
      48             : 
      49        4200 :   _residuals.resize(_test_secondary.size(), 0);
      50             : 
      51        8400 :   for (auto & r : _residuals)
      52        4200 :     r = 0;
      53             : 
      54        8400 :   for (_i = 0; _i < _test_secondary.size(); _i++)
      55        4200 :     _residuals[_i] += raw_value(computeQpResidual(Moose::Secondary));
      56             : 
      57        4200 :   addResiduals(_assembly, _residuals, _var.dofIndices(), _var.scalingFactor());
      58        4200 : }
      59             : 
      60             : void
      61        2100 : ADNodeElemConstraint::computeJacobian()
      62             : {
      63        2100 :   _qp = 0;
      64             : 
      65        2100 :   std::vector<ADReal> primary_residual(_test_primary.size(), 0);
      66             : 
      67       14140 :   for (_i = 0; _i < _test_primary.size(); _i++)
      68       12040 :     primary_residual[_i] += computeQpResidual(Moose::Primary);
      69             : 
      70        2100 :   addJacobian(
      71        2100 :       _assembly, primary_residual, _primary_var.dofIndicesNeighbor(), _primary_var.scalingFactor());
      72             : 
      73        2100 :   std::vector<ADReal> secondary_residual(_test_secondary.size(), 0);
      74             : 
      75        4200 :   for (_i = 0; _i < _test_secondary.size(); _i++)
      76        2100 :     secondary_residual[_i] += computeQpResidual(Moose::Secondary);
      77             : 
      78        2100 :   addJacobian(_assembly, secondary_residual, _var.dofIndices(), _var.scalingFactor());
      79        2100 : }
      80             : 
      81             : Real
      82           0 : ADNodeElemConstraint::computeQpJacobian(Moose::ConstraintJacobianType /*type*/)
      83             : {
      84             :   mooseAssert(false, "Should not be used");
      85           0 :   return 0;
      86             : }
      87             : 
      88             : Real
      89           0 : ADNodeElemConstraint::computeQpOffDiagJacobian(Moose::ConstraintJacobianType /*type*/,
      90             :                                                unsigned int /*jvar*/)
      91             : {
      92             :   mooseAssert(false, "Should not be used");
      93           0 :   return 0;
      94             : }

Generated by: LCOV version 1.14