LCOV - code coverage report
Current view: top level - src/convergence - PostprocessorSteadyStateConvergence.C (source / functions) Hit Total Coverage
Test: idaholab/moose framework: #32971 (54bef8) with base c6cf66 Lines: 26 28 92.9 %
Date: 2026-05-29 20:35:17 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 "PostprocessorSteadyStateConvergence.h"
      11             : 
      12             : registerMooseObject("MooseApp", PostprocessorSteadyStateConvergence);
      13             : 
      14             : InputParameters
      15        3086 : PostprocessorSteadyStateConvergence::validParams()
      16             : {
      17        3086 :   InputParameters params = Convergence::validParams();
      18             : 
      19        6172 :   params.addClassDescription(
      20             :       "Compares the absolute value of a post-processor to a tolerance for steady-state checks.");
      21             : 
      22       12344 :   params.addRequiredParam<PostprocessorName>("postprocessor",
      23             :                                              "Post-processor to use for convergence criteria");
      24        9258 :   params.addRequiredParam<Real>("tolerance", "Tolerance to use for convergence criteria");
      25             : 
      26        3086 :   return params;
      27           0 : }
      28             : 
      29          13 : PostprocessorSteadyStateConvergence::PostprocessorSteadyStateConvergence(
      30          13 :     const InputParameters & parameters)
      31             :   : Convergence(parameters),
      32          13 :     _postprocessor(getPostprocessorValue("postprocessor")),
      33          39 :     _tol(getParam<Real>("tolerance"))
      34             : {
      35          13 : }
      36             : 
      37             : Convergence::MooseConvergenceStatus
      38          23 : PostprocessorSteadyStateConvergence::checkConvergence(unsigned int iter)
      39             : {
      40             :   // Often post-processors checking steady conditions are falsely 0 on INITIAL
      41          23 :   if (iter == 0)
      42           0 :     return MooseConvergenceStatus::ITERATING;
      43             : 
      44          23 :   if (std::abs(_postprocessor) <= _tol)
      45             :   {
      46          11 :     std::ostringstream oss;
      47          11 :     oss << "Converged due to |post-processor| (" << std::abs(_postprocessor) << ") <= tolerance ("
      48          11 :         << _tol << ").";
      49          11 :     verboseOutput(oss);
      50          11 :     return MooseConvergenceStatus::CONVERGED;
      51          11 :   }
      52             :   else
      53             :   {
      54          12 :     std::ostringstream oss;
      55          12 :     oss << "Still iterating due to |post-processor| (" << std::abs(_postprocessor)
      56          12 :         << ") > tolerance (" << _tol << ").";
      57          12 :     verboseOutput(oss);
      58          12 :     return MooseConvergenceStatus::ITERATING;
      59          12 :   }
      60             : }

Generated by: LCOV version 1.14