idaholab / moose

Multiphysics Object Oriented Simulation Environment
https://www.mooseframework.org
GNU Lesser General Public License v2.1
1.65k stars 1.02k forks source link

Automatic Time Stepping based on PID control theory #22570

Open pak1sol opened 1 year ago

pak1sol commented 1 year ago

I implemented an automatic time stepping scheme in my local branch and would like to get it reviewed and merged.

So, I attach here first about its brief idea. ATS_MOOSE.pptx Basically it uses NonLinear solution or AuxSolution (or any user-defined variable) to determine the next time step. Please refer to Slide 1. I implemented PIDAdaptiveDT TimeStepper by inheritting BaseAdaptiveDT that I made it separated out from IterationAdaptiveDT. Basically, it behaves exactly the same way as IterationAdaptiveDT. The only difference is the logic to determine the next time step. Please refer to Slide 2.

This is the general implementation of the work done in the PROTEUS neutronics code before in Reference https://dx.doi.org/10.7302/3937. Please let me know if more information needs to be provided in this issue regarding implementation.

GiudGiud commented 1 year ago

Hello

Did you submit this pull request? Automatic time stepping is of interest to many and the results shown are excellent

Guillaume

pak1sol commented 1 year ago

@GiudGiud Afraid I haven't been able to. I need to find some personal time to do this, but let me try to embark on it in a near future.