-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support for time periods #1015
Comments
Jason, thanks for the ticket. I really like the sub-blocks idea. |
We could even allow you to switch preconditioners between time periods with the sub-blocks idea.... |
As for adaptivity support: we might want to do adaptivity with different settings in different time periods. Just a thought to not forget when designing the more advanced settings... |
We should not forget one more feature: overlapping time periods. This will be useful for kernels, bcs, but not really for things like adaptivity, preconditioning, etc. Current implementation allows overlapping time periods, however end points of the time periods are not included as sync points (only start points). |
I have a request for the sync times associated with this feature. This probably applies to sync times in general. If the time reached by the current timestep is within some small delta from a sync time, do not force a tiny subsequent timestep to reach the sync time. This will prevent a timestep of 1e-14 to reach the sync time. |
In 1bf80c5:
|
In 0e57a86:
|
Currently only support for: * defining time periods in Transient-based executioners * on/off for kernels * on/off for boundary conditions r10646
I have a request for time period support in MOOSE. I need this particularly for dirichlet bcs, but time period support will be handy for other things as well (solver setttings, time stepping, output, etc.).
As far as the syntax for using the time periods, I'd suggest something like:
By default, a BC is active at all times if no period is specified.
For defining the periods, it seems like this should be done in the Executioner block. I have two suggestions.
Suggestion #1: Simply add two new lines to the executioner syntax:
periods = 'p1 p2 p3'
period_start_times = '0 2 7'
This is simple but perhaps less easily extensible than my next suggestion.
Suggestion #2: Add sub-blocks to executioner that define the periods and executioner-specific parameters for the given time period.
In this case, default parameters are overridden by period-specific parameters, and a given period inherits the parameters of its predecessor.
Note that to get started I just need the periods defined and have the ability to turn them on/off for a bc. It would be great to be able to adjust dt (for example), but that isn't necessary to get started.
Note also that the boundary between time periods should be a sync time (time stepping must hit this boundary time).
The text was updated successfully, but these errors were encountered: