{"action":"created","comment":{"url":"https://api.github.com/repos/idaholab/moose/pulls/comments/86922252","pull_request_review_id":7555205,"id":86922252,"diff_hunk":"@@ -1 +1 @@\n-Subproject commit 430a7dd2a575d2231f7e62a98480521240fe4c04\n+Subproject commit dfcda4f2ed9de7f3d2f4a3221f277879547e5c37","path":"libmesh","position":2,"original_position":2,"commit_id":"52ef6e585095f156a14404c0a3bb1401573c6331","original_commit_id":"52ef6e585095f156a14404c0a3bb1401573c6331","user":{"login":"moosebuild","id":6702118,"avatar_url":"https://avatars.githubusercontent.com/u/6702118?v=3","gravatar_id":"","url":"https://api.github.com/users/moosebuild","html_url":"https://github.com/moosebuild","followers_url":"https://api.github.com/users/moosebuild/followers","following_url":"https://api.github.com/users/moosebuild/following{/other_user}","gists_url":"https://api.github.com/users/moosebuild/gists{/gist_id}","starred_url":"https://api.github.com/users/moosebuild/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/moosebuild/subscriptions","organizations_url":"https://api.github.com/users/moosebuild/orgs","repos_url":"https://api.github.com/users/moosebuild/repos","events_url":"https://api.github.com/users/moosebuild/events{/privacy}","received_events_url":"https://api.github.com/users/moosebuild/received_events","type":"User","site_admin":false},"body":"**Caution!** This contains a submodule update","created_at":"2016-11-08T04:32:38Z","updated_at":"2016-11-08T04:32:38Z","html_url":"https://github.com/idaholab/moose/pull/7849#discussion_r86922252","pull_request_url":"https://api.github.com/repos/idaholab/moose/pulls/7849","_links":{"self":{"href":"https://api.github.com/repos/idaholab/moose/pulls/comments/86922252"},"html":{"href":"https://github.com/idaholab/moose/pull/7849#discussion_r86922252"},"pull_request":{"href":"https://api.github.com/repos/idaholab/moose/pulls/7849"}}},"pull_request":{"url":"https://api.github.com/repos/idaholab/moose/pulls/7849","id":88895061,"html_url":"https://github.com/idaholab/moose/pull/7849","diff_url":"https://github.com/idaholab/moose/pull/7849.diff","patch_url":"https://github.com/idaholab/moose/pull/7849.patch","issue_url":"https://api.github.com/repos/idaholab/moose/issues/7849","number":7849,"state":"open","locked":false,"title":"Refactoring and cleaning up time steppers","user":{"login":"rwcarlsen","id":1351242,"avatar_url":"https://avatars.githubusercontent.com/u/1351242?v=3","gravatar_id":"","url":"https://api.github.com/users/rwcarlsen","html_url":"https://github.com/rwcarlsen","followers_url":"https://api.github.com/users/rwcarlsen/followers","following_url":"https://api.github.com/users/rwcarlsen/following{/other_user}","gists_url":"https://api.github.com/users/rwcarlsen/gists{/gist_id}","starred_url":"https://api.github.com/users/rwcarlsen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rwcarlsen/subscriptions","organizations_url":"https://api.github.com/users/rwcarlsen/orgs","repos_url":"https://api.github.com/users/rwcarlsen/repos","events_url":"https://api.github.com/users/rwcarlsen/events{/privacy}","received_events_url":"https://api.github.com/users/rwcarlsen/received_events","type":"User","site_admin":false},"body":"Until now, there have been several barriers to understanding, modifying, creating, and testing time steppers.\n\nThis new architecture clearly defines a time stepper's role as \"calculating dt and only calculating dt\" for the next time step.  More concretely, a new `Stepper` abstract class has been created that has only one function - `double advance(StepperInfo* si)`.  This function takes a struct of information useful for calculating a simulation dt and uses it to compute and return a next dt. The transient executioner is has been modified to collect all the relevant info for calculating dt and pass this in to `Stepper`'s advance function.\n\nThe existing `TimeStepper` class has been preserved with one function added that builds and returns a new-style stepper.  All other functions on its interface will become effectively deprecated by this refactor.  Writing a new time stepper now involves subclassing TimeStepper, adding inputparams and constructor (exactly as before).  And then implementing the new `buildStepper` method.\n\nThis refactor attempts to address the following issues:\n- **ambiguity of time steppers' role(s)**.  Current time steppers do various combinations of the following: conduct problem solves, managing convergence criteria, calculating next dt, among other things.  This can make it difficult for new time steppers to be written that don't break one or more parts of moose (e.g. recovery/restart).  The new `Stepper`'s do not inherit from MooseObject, or anything else (other than Stepper abstract class) - this makes it clear that calling advance (as many times as you want and wherever/whenever you want) is \"safe\" in that it can't modify simulation state.  It is correspondingly easy to write steppers that don't break moose - because all it has to do is return dt.\n- **difficulty of understanding how current time steppers work**.  The new architecture allows many, composable mini-algorithms to be written and chained/nested arbitrarily to form complex stepper behaviors.  These mini algos are each, easy to understand/document and it is much easier to look at how they are composed to infer macroscopic time stepping behavior than the previous sequences of method calls spread through inheritance and through (often large and lightly documented) functions.\n- **code-duplication** - esp. w.r.t. dt constraints of various kinds (e.g. handling dt min, simulation start/end times, initial/startup dt, etc.). With the new steppers, for example, now the Transient executioner wraps dt min/max and simulation begin/end enforcing steppers around the user-specified simulation steppers - removing the need for new stepper implementations to worry about these constraints.\n- **time steppers' unmanaged mutation of executioner+problem state**.  (see first bullet's discussion)\n- **Difficult to test**.  Current time steppers cannot be tested without carefully constructing entire simulation states (e.g. via carefully writing input files and running entire moose simulations).  The Stepper abstract class inherits from nothing, and now since steppers' get all their info from the StepperInfo function arg, no simulation state needs to be set up in order to test it.  Writing unit tests is as simple as one-line construction of new steppers, (optionally composing them), and passing in sequences of StepperInfo structs and comparing returned dt's against expected values.\n\nThis PR, in its current state, preserves old-style time stepper support.  The transient executioner would be cleaner if we eliminated this support and only supported the new-style steppers.  It would also make it less likely that new time stepper writers get confused looking at the time stepper base class - which has lots of code and semantics that are entirely ignored/unused by the new-style stepping.\n\nThe DT2 time stepper is the only stepper that has _not_ been converted to the new style.  Partly because it did nasty/sneaky things with FEProblem that would be tricky to reimplement in the new style and partly because I was not able to discover a single input file or person that used it (including in BISON, MARMOT, etc.).\n","created_at":"2016-10-11T19:27:31Z","updated_at":"2016-11-08T04:32:38Z","closed_at":null,"merged_at":null,"merge_commit_sha":"9b9685553a778dac662598ce80c36190b5f6cd26","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/idaholab/moose/pulls/7849/commits","review_comments_url":"https://api.github.com/repos/idaholab/moose/pulls/7849/comments","review_comment_url":"https://api.github.com/repos/idaholab/moose/pulls/comments{/number}","comments_url":"https://api.github.com/repos/idaholab/moose/issues/7849/comments","statuses_url":"https://api.github.com/repos/idaholab/moose/statuses/52ef6e585095f156a14404c0a3bb1401573c6331","head":{"label":"rwcarlsen:stepper","ref":"stepper","sha":"52ef6e585095f156a14404c0a3bb1401573c6331","user":{"login":"rwcarlsen","id":1351242,"avatar_url":"https://avatars.githubusercontent.com/u/1351242?v=3","gravatar_id":"","url":"https://api.github.com/users/rwcarlsen","html_url":"https://github.com/rwcarlsen","followers_url":"https://api.github.com/users/rwcarlsen/followers","following_url":"https://api.github.com/users/rwcarlsen/following{/other_user}","gists_url":"https://api.github.com/users/rwcarlsen/gists{/gist_id}","starred_url":"https://api.github.com/users/rwcarlsen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rwcarlsen/subscriptions","organizations_url":"https://api.github.com/users/rwcarlsen/orgs","repos_url":"https://api.github.com/users/rwcarlsen/repos","events_url":"https://api.github.com/users/rwcarlsen/events{/privacy}","received_events_url":"https://api.github.com/users/rwcarlsen/received_events","type":"User","site_admin":false},"repo":{"id":68224891,"name":"moose","full_name":"rwcarlsen/moose","owner":{"login":"rwcarlsen","id":1351242,"avatar_url":"https://avatars.githubusercontent.com/u/1351242?v=3","gravatar_id":"","url":"https://api.github.com/users/rwcarlsen","html_url":"https://github.com/rwcarlsen","followers_url":"https://api.github.com/users/rwcarlsen/followers","following_url":"https://api.github.com/users/rwcarlsen/following{/other_user}","gists_url":"https://api.github.com/users/rwcarlsen/gists{/gist_id}","starred_url":"https://api.github.com/users/rwcarlsen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rwcarlsen/subscriptions","organizations_url":"https://api.github.com/users/rwcarlsen/orgs","repos_url":"https://api.github.com/users/rwcarlsen/repos","events_url":"https://api.github.com/users/rwcarlsen/events{/privacy}","received_events_url":"https://api.github.com/users/rwcarlsen/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/rwcarlsen/moose","description":"Multiphysics Object Oriented Simulation Environment","fork":true,"url":"https://api.github.com/repos/rwcarlsen/moose","forks_url":"https://api.github.com/repos/rwcarlsen/moose/forks","keys_url":"https://api.github.com/repos/rwcarlsen/moose/keys{/key_id}","collaborators_url":"https://api.github.com/repos/rwcarlsen/moose/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/rwcarlsen/moose/teams","hooks_url":"https://api.github.com/repos/rwcarlsen/moose/hooks","issue_events_url":"https://api.github.com/repos/rwcarlsen/moose/issues/events{/number}","events_url":"https://api.github.com/repos/rwcarlsen/moose/events","assignees_url":"https://api.github.com/repos/rwcarlsen/moose/assignees{/user}","branches_url":"https://api.github.com/repos/rwcarlsen/moose/branches{/branch}","tags_url":"https://api.github.com/repos/rwcarlsen/moose/tags","blobs_url":"https://api.github.com/repos/rwcarlsen/moose/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/rwcarlsen/moose/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/rwcarlsen/moose/git/refs{/sha}","trees_url":"https://api.github.com/repos/rwcarlsen/moose/git/trees{/sha}","statuses_url":"https://api.github.com/repos/rwcarlsen/moose/statuses/{sha}","languages_url":"https://api.github.com/repos/rwcarlsen/moose/languages","stargazers_url":"https://api.github.com/repos/rwcarlsen/moose/stargazers","contributors_url":"https://api.github.com/repos/rwcarlsen/moose/contributors","subscribers_url":"https://api.github.com/repos/rwcarlsen/moose/subscribers","subscription_url":"https://api.github.com/repos/rwcarlsen/moose/subscription","commits_url":"https://api.github.com/repos/rwcarlsen/moose/commits{/sha}","git_commits_url":"https://api.github.com/repos/rwcarlsen/moose/git/commits{/sha}","comments_url":"https://api.github.com/repos/rwcarlsen/moose/comments{/number}","issue_comment_url":"https://api.github.com/repos/rwcarlsen/moose/issues/comments{/number}","contents_url":"https://api.github.com/repos/rwcarlsen/moose/contents/{+path}","compare_url":"https://api.github.com/repos/rwcarlsen/moose/compare/{base}...{head}","merges_url":"https://api.github.com/repos/rwcarlsen/moose/merges","archive_url":"https://api.github.com/repos/rwcarlsen/moose/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/rwcarlsen/moose/downloads","issues_url":"https://api.github.com/repos/rwcarlsen/moose/issues{/number}","pulls_url":"https://api.github.com/repos/rwcarlsen/moose/pulls{/number}","milestones_url":"https://api.github.com/repos/rwcarlsen/moose/milestones{/number}","notifications_url":"https://api.github.com/repos/rwcarlsen/moose/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/rwcarlsen/moose/labels{/name}","releases_url":"https://api.github.com/repos/rwcarlsen/moose/releases{/id}","deployments_url":"https://api.github.com/repos/rwcarlsen/moose/deployments","created_at":"2016-09-14T16:48:53Z","updated_at":"2016-09-14T16:49:08Z","pushed_at":"2016-11-08T04:32:06Z","git_url":"git://github.com/rwcarlsen/moose.git","ssh_url":"git@github.com:rwcarlsen/moose.git","clone_url":"https://github.com/rwcarlsen/moose.git","svn_url":"https://github.com/rwcarlsen/moose","homepage":"http://www.mooseframework.org","size":149713,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"devel"}},"base":{"label":"idaholab:devel","ref":"devel","sha":"edc4b38b5366049e1dbf7e0eeb2d49c5b18cfffd","user":{"login":"idaholab","id":3855370,"avatar_url":"https://avatars.githubusercontent.com/u/3855370?v=3","gravatar_id":"","url":"https://api.github.com/users/idaholab","html_url":"https://github.com/idaholab","followers_url":"https://api.github.com/users/idaholab/followers","following_url":"https://api.github.com/users/idaholab/following{/other_user}","gists_url":"https://api.github.com/users/idaholab/gists{/gist_id}","starred_url":"https://api.github.com/users/idaholab/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/idaholab/subscriptions","organizations_url":"https://api.github.com/users/idaholab/orgs","repos_url":"https://api.github.com/users/idaholab/repos","events_url":"https://api.github.com/users/idaholab/events{/privacy}","received_events_url":"https://api.github.com/users/idaholab/received_events","type":"Organization","site_admin":false},"repo":{"id":16851223,"name":"moose","full_name":"idaholab/moose","owner":{"login":"idaholab","id":3855370,"avatar_url":"https://avatars.githubusercontent.com/u/3855370?v=3","gravatar_id":"","url":"https://api.github.com/users/idaholab","html_url":"https://github.com/idaholab","followers_url":"https://api.github.com/users/idaholab/followers","following_url":"https://api.github.com/users/idaholab/following{/other_user}","gists_url":"https://api.github.com/users/idaholab/gists{/gist_id}","starred_url":"https://api.github.com/users/idaholab/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/idaholab/subscriptions","organizations_url":"https://api.github.com/users/idaholab/orgs","repos_url":"https://api.github.com/users/idaholab/repos","events_url":"https://api.github.com/users/idaholab/events{/privacy}","received_events_url":"https://api.github.com/users/idaholab/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/idaholab/moose","description":"Multiphysics Object Oriented Simulation Environment","fork":false,"url":"https://api.github.com/repos/idaholab/moose","forks_url":"https://api.github.com/repos/idaholab/moose/forks","keys_url":"https://api.github.com/repos/idaholab/moose/keys{/key_id}","collaborators_url":"https://api.github.com/repos/idaholab/moose/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/idaholab/moose/teams","hooks_url":"https://api.github.com/repos/idaholab/moose/hooks","issue_events_url":"https://api.github.com/repos/idaholab/moose/issues/events{/number}","events_url":"https://api.github.com/repos/idaholab/moose/events","assignees_url":"https://api.github.com/repos/idaholab/moose/assignees{/user}","branches_url":"https://api.github.com/repos/idaholab/moose/branches{/branch}","tags_url":"https://api.github.com/repos/idaholab/moose/tags","blobs_url":"https://api.github.com/repos/idaholab/moose/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/idaholab/moose/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/idaholab/moose/git/refs{/sha}","trees_url":"https://api.github.com/repos/idaholab/moose/git/trees{/sha}","statuses_url":"https://api.github.com/repos/idaholab/moose/statuses/{sha}","languages_url":"https://api.github.com/repos/idaholab/moose/languages","stargazers_url":"https://api.github.com/repos/idaholab/moose/stargazers","contributors_url":"https://api.github.com/repos/idaholab/moose/contributors","subscribers_url":"https://api.github.com/repos/idaholab/moose/subscribers","subscription_url":"https://api.github.com/repos/idaholab/moose/subscription","commits_url":"https://api.github.com/repos/idaholab/moose/commits{/sha}","git_commits_url":"https://api.github.com/repos/idaholab/moose/git/commits{/sha}","comments_url":"https://api.github.com/repos/idaholab/moose/comments{/number}","issue_comment_url":"https://api.github.com/repos/idaholab/moose/issues/comments{/number}","contents_url":"https://api.github.com/repos/idaholab/moose/contents/{+path}","compare_url":"https://api.github.com/repos/idaholab/moose/compare/{base}...{head}","merges_url":"https://api.github.com/repos/idaholab/moose/merges","archive_url":"https://api.github.com/repos/idaholab/moose/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/idaholab/moose/downloads","issues_url":"https://api.github.com/repos/idaholab/moose/issues{/number}","pulls_url":"https://api.github.com/repos/idaholab/moose/pulls{/number}","milestones_url":"https://api.github.com/repos/idaholab/moose/milestones{/number}","notifications_url":"https://api.github.com/repos/idaholab/moose/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/idaholab/moose/labels{/name}","releases_url":"https://api.github.com/repos/idaholab/moose/releases{/id}","deployments_url":"https://api.github.com/repos/idaholab/moose/deployments","created_at":"2014-02-14T22:26:15Z","updated_at":"2016-11-07T00:18:48Z","pushed_at":"2016-11-08T04:32:06Z","git_url":"git://github.com/idaholab/moose.git","ssh_url":"git@github.com:idaholab/moose.git","clone_url":"https://github.com/idaholab/moose.git","svn_url":"https://github.com/idaholab/moose","homepage":"http://www.mooseframework.org","size":166344,"stargazers_count":174,"watchers_count":174,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":293,"mirror_url":null,"open_issues_count":700,"forks":293,"open_issues":700,"watchers":174,"default_branch":"devel"}},"_links":{"self":{"href":"https://api.github.com/repos/idaholab/moose/pulls/7849"},"html":{"href":"https://github.com/idaholab/moose/pull/7849"},"issue":{"href":"https://api.github.com/repos/idaholab/moose/issues/7849"},"comments":{"href":"https://api.github.com/repos/idaholab/moose/issues/7849/comments"},"review_comments":{"href":"https://api.github.com/repos/idaholab/moose/pulls/7849/comments"},"review_comment":{"href":"https://api.github.com/repos/idaholab/moose/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/idaholab/moose/pulls/7849/commits"},"statuses":{"href":"https://api.github.com/repos/idaholab/moose/statuses/52ef6e585095f156a14404c0a3bb1401573c6331"}}}}
{"actor":{"display_login":"moosebuild"}}