Skip to content
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

Closed
jasondhales opened this issue Feb 14, 2014 · 8 comments
Closed

Support for time periods #1015

jasondhales opened this issue Feb 14, 2014 · 8 comments

Comments

@jasondhales
Copy link
Contributor

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:

[ type = ...
  period = 'p1 p3'
  .
  .
[../](./myBC]
)
[ type = ...
  period = p2
  .
  .
[../](./myBC2]
)

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.

[ type = Transient
  [./p1](Executioner]
)
    start_time = 0
    dt = .01
  [ [./p2](../]
)
    start_time = 2
  [ [./p3](../]
)
    start_time = 7
    dt = .1
    nl_rel_tol = 1e-8
  [ .
  .
(../]
)

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).

@friedmud
Copy link
Contributor

Jason, thanks for the ticket. I really like the sub-blocks idea.

@friedmud
Copy link
Contributor

We could even allow you to switch preconditioners between time periods with the sub-blocks idea....

@andrsd
Copy link
Contributor

andrsd commented Feb 14, 2014

32d873c is adding support for turning kernels/BCs on/off. Also the syntax from suggestions #1 was implemented.

@andrsd
Copy link
Contributor

andrsd commented Feb 14, 2014

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...

@andrsd
Copy link
Contributor

andrsd commented Feb 14, 2014

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).

@jasondhales
Copy link
Contributor Author

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.

@permcody
Copy link
Member

In 1bf80c5:

New Time Period Syntax - refs #1015

@andrsd
Copy link
Contributor

andrsd commented Feb 14, 2014

In 0e57a86:

Catching parallel exceptions in auxiliary system (closes #1015)

andrsd added a commit that referenced this issue Feb 14, 2014
Currently only support for:
* defining time periods in Transient-based executioners
* on/off for kernels
* on/off for boundary conditions

r10646
permcody added a commit that referenced this issue Feb 14, 2014
andrsd added a commit that referenced this issue Feb 14, 2014
permcody added a commit that referenced this issue Mar 7, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants