Skip to content

Albany Time Step Control through Piro

James Willenbring requested to merge albany-ts-control into develop

Created by: ikalash

The purpose of this PR is to simplify how Tempus time step control is specified in an Albany input file. The various options in the Tempus Time Step Control were confusing to Albany users, and there was a request to have a simpler time-step control algorithm that is easy to specify in Albany, where the time-step is amplified if a solve is successful, and reduced if a solve fails. The idea is to cut down the number of parameters Albany users need to set / understand (e.g., Maximum / Minimum Value of Monitoring Function) by hiding all the detailed Tempus Time Step Control values in Piro.

To address the feature request, this PR adds an option in Piro::TempusSolver to take 'Albany Time Step Control Options' sublist, in place of the Tempus->Tempus Integrator->Time Step Control timelist. The new sublist can be used in place of 'Time Step Control' when calling Piro through Tempus (from Albany or other codes that call Tempus in this way). The sublist takes the following 7 parameter:

Initial Time Final Time Initial Time Step Minimum Time Step Maximum Time Step Reduction Factor Amplification Factor

These are (intentionally) analogous to the time-step control parameters that the Schwarz::Alternating solver in Albany takes.

In addition to this change, I have added logic to handle in the way Albany users expect the case where the Time Step dt is reduced down to the Minimum Time Step dt_min and the time-advancement with that dt fails. In this scenario, the last solve will be repeated nConsecutiveFailuresMax-1 times unnecessarily without this PR. In the PR, the solve terminates if the solver fails with dt = dt_min (there is no point to repeat the last solves with the same dt if the solve fails).

All Piro tests, as do all Albany tests. Once this PR is merged in, I will switch the Albany LCM tests to use the new PL in place of the Tempus -> Time Step Control one.

Merge request reports