LCOV - code coverage report
Current view: top level - src/postprocessors - ComparisonPostprocessor.C (source / functions) Hit Total Coverage
Test: idaholab/moose framework: 2bf808 Lines: 26 28 92.9 %
Date: 2025-07-17 01:28:37 Functions: 3 3 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 "ComparisonPostprocessor.h"
      11             : 
      12             : InputParameters
      13       28674 : ComparisonPostprocessor::validParams()
      14             : {
      15       28674 :   InputParameters params = GeneralPostprocessor::validParams();
      16             : 
      17       28674 :   MooseEnum comparison_type("equals greater_than_equals less_than_equals greater_than less_than");
      18       28674 :   params.addRequiredParam<MooseEnum>("comparison_type",
      19             :                                      comparison_type,
      20       57348 :                                      "The type of comparison to perform. Options are: " +
      21       57348 :                                          comparison_type.getRawNames());
      22             : 
      23       86022 :   params.addParam<Real>("absolute_tolerance",
      24       57348 :                         libMesh::TOLERANCE * libMesh::TOLERANCE,
      25             :                         "Absolute tolerance used in comparisons");
      26             : 
      27       57348 :   return params;
      28       28674 : }
      29             : 
      30          72 : ComparisonPostprocessor::ComparisonPostprocessor(const InputParameters & parameters)
      31             :   : GeneralPostprocessor(parameters),
      32             : 
      33          72 :     _comparison_type(getParam<MooseEnum>("comparison_type").getEnum<ComparisonType>()),
      34         144 :     _absolute_tolerance(getParam<Real>("absolute_tolerance"))
      35             : {
      36          72 : }
      37             : 
      38             : bool
      39         154 : ComparisonPostprocessor::comparisonIsTrue(const Real & a, const Real & b) const
      40             : {
      41         154 :   switch (_comparison_type)
      42             :   {
      43          33 :     case ComparisonType::EQUALS:
      44          33 :       return MooseUtils::absoluteFuzzyEqual(a, b, _absolute_tolerance);
      45             : 
      46          33 :     case ComparisonType::GREATER_THAN_EQUALS:
      47          33 :       return MooseUtils::absoluteFuzzyGreaterEqual(a, b, _absolute_tolerance);
      48             : 
      49          33 :     case ComparisonType::LESS_THAN_EQUALS:
      50          33 :       return MooseUtils::absoluteFuzzyLessEqual(a, b, _absolute_tolerance);
      51             : 
      52          44 :     case ComparisonType::GREATER_THAN:
      53          44 :       return MooseUtils::absoluteFuzzyGreaterThan(a, b, _absolute_tolerance);
      54             : 
      55          11 :     case ComparisonType::LESS_THAN:
      56          11 :       return MooseUtils::absoluteFuzzyLessThan(a, b, _absolute_tolerance);
      57             : 
      58           0 :     default:
      59           0 :       mooseError("Invalid comparison type.");
      60             :   }
      61             : }

Generated by: LCOV version 1.14