LCOV - code coverage report
Current view: top level - src/userobjects - ValueDifferenceHeuristicUserObject.C (source / functions) Hit Total Coverage
Test: neams-th-coe/cardinal: 93e9c4 Lines: 13 14 92.9 %
Date: 2026-07-16 12:06:10 Functions: 3 3 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : #include "ValueDifferenceHeuristicUserObject.h"
       2             : 
       3             : registerMooseObject("CardinalApp", ValueDifferenceHeuristicUserObject);
       4             : 
       5             : InputParameters
       6           6 : ValueDifferenceHeuristicUserObject::validParams()
       7             : {
       8             : 
       9           6 :   InputParameters params = ClusteringUserObjectBase::validParams();
      10          12 :   params.addRequiredRangeCheckedParam<Real>(
      11             :       "tolerance",
      12             :       "tolerance > 0",
      13             :       "Maximum allowed absolute relative difference in values for elements to be clustered");
      14           6 :   params.addClassDescription(
      15             :       "Clusters elements whose relative value differences are less than the specified tolerance.");
      16             : 
      17           6 :   return params;
      18           0 : }
      19             : 
      20           3 : ValueDifferenceHeuristicUserObject::ValueDifferenceHeuristicUserObject(
      21           3 :     const InputParameters & params)
      22           6 :   : ClusteringUserObjectBase(params), _tolerance(getParam<Real>("tolerance"))
      23             : {
      24           3 : }
      25             : 
      26             : bool
      27        2160 : ValueDifferenceHeuristicUserObject::evaluate(libMesh::Elem * base_element,
      28             :                                              libMesh::Elem * neighbor_element) const
      29             : {
      30        2160 :   const Real base_metric_value = getMetricData(base_element);
      31        2160 :   const Real neighbor_metric_value = getMetricData(neighbor_element);
      32        2160 :   return std::abs((base_metric_value - neighbor_metric_value) / base_metric_value) < _tolerance;
      33             : }

Generated by: LCOV version 1.14