LCOV - code coverage report
Current view: top level - src/timesteppers - LogConstantDT.C (source / functions) Hit Total Coverage
Test: idaholab/moose framework: 2bf808 Lines: 18 19 94.7 %
Date: 2025-07-17 01:28:37 Functions: 4 4 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 "LogConstantDT.h"
      11             : 
      12             : registerMooseObject("MooseApp", LogConstantDT);
      13             : 
      14             : InputParameters
      15       14405 : LogConstantDT::validParams()
      16             : {
      17       14405 :   InputParameters params = TimeStepper::validParams();
      18       14405 :   params.addClassDescription(
      19             :       "TimeStepper which imposes a time step constant in the logarithmic space");
      20       14405 :   params.addRequiredRangeCheckedParam<Real>("log_dt", "log_dt > 0", "Time step in log10(time)");
      21       14405 :   params.addRequiredRangeCheckedParam<Real>(
      22             :       "first_dt", "first_dt > 0", "Initial time step (in absolute time)");
      23       14405 :   params.addRangeCheckedParam<Real>(
      24             :       "growth_factor",
      25             :       2,
      26             :       "growth_factor>=1",
      27             :       "Maximum ratio of new to previous timestep sizes following a step that required the time"
      28             :       " step to be cut due to a failed solve.");
      29       14405 :   return params;
      30           0 : }
      31             : 
      32          70 : LogConstantDT::LogConstantDT(const InputParameters & parameters)
      33             :   : TimeStepper(parameters),
      34          70 :     _log_dt(getParam<Real>("log_dt")),
      35          70 :     _first_dt(getParam<Real>("first_dt")),
      36          70 :     _dt_factor(std::pow(10.0, _log_dt)),
      37         140 :     _growth_factor(getParam<Real>("growth_factor"))
      38             : {
      39          70 : }
      40             : 
      41             : Real
      42         126 : LogConstantDT::computeInitialDT()
      43             : {
      44         126 :   return _first_dt;
      45             : }
      46             : 
      47             : Real
      48         482 : LogConstantDT::computeDT()
      49             : {
      50         482 :   Real next = _time * _dt_factor;
      51         482 :   return std::min(next - _time, _growth_factor * getCurrentDT());
      52             : }

Generated by: LCOV version 1.14