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 "Convergence.h" 11 : #include "MooseApp.h" 12 : #include "Executioner.h" 13 : #include "MooseUtils.h" 14 : 15 : InputParameters 16 342927 : Convergence::validParams() 17 : { 18 342927 : InputParameters params = MooseObject::validParams(); 19 342927 : params += SetupInterface::validParams(); 20 342927 : params += PostprocessorInterface::validParams(); 21 342927 : params += PerfGraphInterface::validParams(); 22 342927 : params += TransientInterface::validParams(); 23 : 24 1028781 : params.addParam<bool>( 25 : "verbose", 26 685854 : false, 27 : "Enable printing of additional information, including convergence and divergence reasons."); 28 : 29 342927 : params.registerBase("Convergence"); 30 : 31 : // This parameter is present because of SetupInterface, which is a requirement 32 : // of MooseObjectWarehouse, but it should not be used. 33 342927 : params.suppressParameter<ExecFlagEnum>("execute_on"); 34 : 35 342927 : return params; 36 0 : } 37 : 38 127083 : Convergence::Convergence(const InputParameters & parameters) 39 : : MooseObject(parameters), 40 : SetupInterface(this), 41 : PostprocessorInterface(this), 42 : PerfGraphInterface(this), 43 : TransientInterface(this), 44 127083 : _perfid_check_convergence(registerTimedSection("checkConvergence", 5, "Checking Convergence")), 45 127083 : _tid(getParam<THREAD_ID>("_tid")), 46 254166 : _verbose(getParam<bool>("verbose") ? true : getMooseApp().getExecutioner()->verbose()) 47 : { 48 127083 : } 49 : 50 : void 51 750126 : Convergence::verboseOutput(std::ostringstream & oss) 52 : { 53 750126 : const auto str = oss.str(); 54 : 55 750126 : if (str.length() == 0) 56 466470 : return; 57 : 58 283656 : if (verbose()) 59 5528 : _console << name() << ": " << MooseUtils::trim(str) << std::endl; 60 750126 : }