LCOV - code coverage report
Current view: top level - src/nodalkernels - CoupledForceNodalKernel.C (source / functions) Hit Total Coverage
Test: idaholab/moose framework: #32971 (54bef8) with base c6cf66 Lines: 20 23 87.0 %
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 "CoupledForceNodalKernel.h"
      11             : 
      12             : registerMooseObject("MooseApp", CoupledForceNodalKernel);
      13             : 
      14             : InputParameters
      15        3251 : CoupledForceNodalKernel::validParams()
      16             : {
      17        3251 :   InputParameters params = NodalKernel::validParams();
      18        6502 :   params.addClassDescription("Adds a force proportional to the value of the coupled variable");
      19       13004 :   params.addRequiredCoupledVar("v", "The coupled variable which provides the force");
      20        6502 :   params.addParam<Real>(
      21        6502 :       "coef", 1.0, "Coefficent ($\\sigma$) multiplier for the coupled force term.");
      22             : 
      23        3251 :   return params;
      24           0 : }
      25             : 
      26         100 : CoupledForceNodalKernel::CoupledForceNodalKernel(const InputParameters & parameters)
      27             :   : NodalKernel(parameters),
      28         100 :     _v_var(coupled("v")),
      29         200 :     _v(coupledValue("v")),
      30         300 :     _coef(getParam<Real>("coef"))
      31             : {
      32         100 :   if (_var.number() == _v_var)
      33           0 :     mooseError(
      34             :         "Coupled variable 'v' needs to be different from 'variable' with CoupledForceNodalKernel, "
      35             :         "consider using Reaction or somethig similar");
      36         100 : }
      37             : 
      38             : Real
      39      156820 : CoupledForceNodalKernel::computeQpResidual()
      40             : {
      41      156820 :   return -_coef * _v[_qp];
      42             : }
      43             : 
      44             : Real
      45      122170 : CoupledForceNodalKernel::computeQpJacobian()
      46             : {
      47      122170 :   return 0;
      48             : }
      49             : 
      50             : Real
      51      122170 : CoupledForceNodalKernel::computeQpOffDiagJacobian(unsigned int jvar)
      52             : {
      53      122170 :   if (jvar == _v_var)
      54      122170 :     return -_coef;
      55           0 :   return 0.0;
      56             : }

Generated by: LCOV version 1.14