LCOV - code coverage report
Current view: top level - src/dgkernels - HFEMTrialJump.C (source / functions) Hit Total Coverage
Test: idaholab/moose framework: #32971 (54bef8) with base c6cf66 Lines: 33 39 84.6 %
Date: 2026-05-29 20:35:17 Functions: 4 4 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 "HFEMTrialJump.h"
      11             : 
      12             : registerMooseObject("MooseApp", HFEMTrialJump);
      13             : 
      14             : InputParameters
      15        3130 : HFEMTrialJump::validParams()
      16             : {
      17        3130 :   InputParameters params = DGKernel::validParams();
      18       12520 :   params.addRequiredCoupledVar("interior_variable", "interior variable to find jumps in");
      19        3130 :   params.addClassDescription("Imposes constraints for HFEM with side-discontinuous variables.");
      20        3130 :   return params;
      21           0 : }
      22             : 
      23          36 : HFEMTrialJump::HFEMTrialJump(const InputParameters & parameters)
      24             :   : DGKernel(parameters),
      25          36 :     _interior_var(*getVar("interior_variable", 0)),
      26          36 :     _interior(_is_implicit ? _interior_var.sln() : _interior_var.slnOld()),
      27          36 :     _interior_neighbor(_is_implicit ? _interior_var.slnNeighbor() : _interior_var.slnOldNeighbor()),
      28          36 :     _phi_interior(_interior_var.phiFace()),
      29          36 :     _phi_interior_neighbor(_assembly.phiFaceNeighbor(_interior_var)),
      30          36 :     _test_interior(_interior_var.phiFace()),
      31         108 :     _interior_id(coupled("interior_variable"))
      32             : {
      33          36 : }
      34             : 
      35             : Real
      36     1084224 : HFEMTrialJump::computeQpResidual(Moose::DGResidualType type)
      37             : {
      38             :   // Use normal vector at qp 0 to make solution depend on geometry
      39             :   // (well, geometry and quadrature rule, with curved boundaries...)
      40             :   // rather than element numbering
      41     1084224 :   const Real sign = (_normals[0] > Point()) ? 1 : -1;
      42             : 
      43     1084224 :   switch (type)
      44             :   {
      45      542112 :     case Moose::Element:
      46      542112 :       return sign * _test[_i][_qp] * (_interior_neighbor[_qp] - _interior[_qp]);
      47             :       break;
      48             : 
      49      542112 :     case Moose::Neighbor:
      50      542112 :       return 0;
      51             :       break;
      52             :   }
      53           0 :   return 0;
      54             : }
      55             : 
      56             : Real
      57      238080 : HFEMTrialJump::computeQpOffDiagJacobian(Moose::DGJacobianType type, unsigned int jvar)
      58             : {
      59      238080 :   if (jvar != _interior_id)
      60           0 :     return 0;
      61             : 
      62      238080 :   const Real sign = (_normals[0] > Point()) ? 1 : -1;
      63             : 
      64      238080 :   switch (type)
      65             :   {
      66       59520 :     case Moose::ElementElement:
      67       59520 :       return -sign * _test[_i][_qp] * _phi_interior[_j][_qp];
      68             : 
      69       59520 :     case Moose::NeighborElement:
      70       59520 :       return 0;
      71             : 
      72       59520 :     case Moose::ElementNeighbor:
      73       59520 :       return sign * _test[_i][_qp] * _phi_interior_neighbor[_j][_qp];
      74             : 
      75       59520 :     case Moose::NeighborNeighbor:
      76       59520 :       return 0;
      77             : 
      78           0 :     default:
      79           0 :       break;
      80             :   }
      81             : 
      82           0 :   return 0;
      83             : }

Generated by: LCOV version 1.14