LCOV - code coverage report
Current view: top level - src/userobjects - ValueDifferenceHeuristicUserObject.C (source / functions) Hit Total Coverage
Test: neams-th-coe/cardinal: ddd5f2 Lines: 13 14 92.9 %
Date: 2026-06-07 19:35:24 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.addRequiredParam<Real>(
      11             :       "tolerance", "Maximum allowed difference in values for elements to be clustered");
      12           6 :   params.addClassDescription(
      13             :       "Clusters elements whose relative value differences are less than the specified tolerance.");
      14             : 
      15           6 :   return params;
      16           0 : }
      17             : 
      18           3 : ValueDifferenceHeuristicUserObject::ValueDifferenceHeuristicUserObject(
      19           3 :     const InputParameters & params)
      20           6 :   : ClusteringUserObjectBase(params), _tolerance(getParam<Real>("tolerance"))
      21             : {
      22           3 : }
      23             : 
      24             : bool
      25        2160 : ValueDifferenceHeuristicUserObject::evaluate(libMesh::Elem * base_element,
      26             :                                              libMesh::Elem * neighbor_element) const
      27             : {
      28        2160 :   const Real base_metric_value = getMetricData(base_element);
      29        2160 :   const Real neighbor_metric_value = getMetricData(neighbor_element);
      30        2160 :   return std::abs((base_metric_value - neighbor_metric_value) / base_metric_value) < _tolerance;
      31             : }

Generated by: LCOV version 1.14