{"action":"created","comment":{"url":"https://api.github.com/repos/OPM/opm-simulators/pulls/comments/68392213","id":68392213,"diff_hunk":"@@ -49,8 +49,35 @@ namespace Opm {\n         typedef typename Base::SolutionState SolutionState;\n         typedef typename Base::V V;\n \n-        // Inherit constructor.\n-        using Base::Base;\n+        /// Construct the model. It will retain references to the\n+        /// arguments of this functions, and they are expected to\n+        /// remain in scope for the lifetime of the solver.\n+        /// \\param[in] param            parameters\n+        /// \\param[in] grid             grid data structure\n+        /// \\param[in] fluid            fluid properties\n+        /// \\param[in] geo              rock properties\n+        /// \\param[in] rock_comp_props  if non-null, rock compressibility properties\n+        /// \\param[in] wells_arg        well structure\n+        /// \\param[in] linsolver        linear solver\n+        /// \\param[in] eclState         eclipse state\n+        /// \\param[in] has_disgas       turn on dissolved gas\n+        /// \\param[in] has_vapoil       turn on vaporized oil feature\n+        /// \\param[in] terminal_output  request output to cout/cerr\n+        BlackoilPressureModel(const typename Base::ModelParameters&   param,\n+                              const Grid&                             grid,\n+                              const BlackoilPropsAdInterface&         fluid,\n+                              const DerivedGeology&                   geo,\n+                              const RockCompressibility*              rock_comp_props,\n+                              const StandardWells&                    std_wells,\n+                              const NewtonIterationBlackoilInterface& linsolver,\n+                              Opm::EclipseStateConstPtr               eclState,","path":"opm/autodiff/BlackoilPressureModel.hpp","position":73,"original_position":27,"commit_id":"01ae3244564079b003e794f73a3890f02714546c","original_commit_id":"1a67b5568e83b32033edf9169f24cf02e7cc7c37","user":{"login":"atgeirr","id":1876621,"avatar_url":"https://avatars.githubusercontent.com/u/1876621?v=3","gravatar_id":"","url":"https://api.github.com/users/atgeirr","html_url":"https://github.com/atgeirr","followers_url":"https://api.github.com/users/atgeirr/followers","following_url":"https://api.github.com/users/atgeirr/following{/other_user}","gists_url":"https://api.github.com/users/atgeirr/gists{/gist_id}","starred_url":"https://api.github.com/users/atgeirr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/atgeirr/subscriptions","organizations_url":"https://api.github.com/users/atgeirr/orgs","repos_url":"https://api.github.com/users/atgeirr/repos","events_url":"https://api.github.com/users/atgeirr/events{/privacy}","received_events_url":"https://api.github.com/users/atgeirr/received_events","type":"User","site_admin":false},"body":"I agree, but believe that refactoring is not for this PR to do.","created_at":"2016-06-24T12:42:04Z","updated_at":"2016-06-24T12:42:04Z","html_url":"https://github.com/OPM/opm-simulators/pull/737#discussion_r68392213","pull_request_url":"https://api.github.com/repos/OPM/opm-simulators/pulls/737","_links":{"self":{"href":"https://api.github.com/repos/OPM/opm-simulators/pulls/comments/68392213"},"html":{"href":"https://github.com/OPM/opm-simulators/pull/737#discussion_r68392213"},"pull_request":{"href":"https://api.github.com/repos/OPM/opm-simulators/pulls/737"}}},"pull_request":{"url":"https://api.github.com/repos/OPM/opm-simulators/pulls/737","id":74798006,"html_url":"https://github.com/OPM/opm-simulators/pull/737","diff_url":"https://github.com/OPM/opm-simulators/pull/737.diff","patch_url":"https://github.com/OPM/opm-simulators/pull/737.patch","issue_url":"https://api.github.com/repos/OPM/opm-simulators/issues/737","number":737,"state":"open","locked":false,"title":"Experimental sequential solvers","user":{"login":"atgeirr","id":1876621,"avatar_url":"https://avatars.githubusercontent.com/u/1876621?v=3","gravatar_id":"","url":"https://api.github.com/users/atgeirr","html_url":"https://github.com/atgeirr","followers_url":"https://api.github.com/users/atgeirr/followers","following_url":"https://api.github.com/users/atgeirr/following{/other_user}","gists_url":"https://api.github.com/users/atgeirr/gists{/gist_id}","starred_url":"https://api.github.com/users/atgeirr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/atgeirr/subscriptions","organizations_url":"https://api.github.com/users/atgeirr/orgs","repos_url":"https://api.github.com/users/atgeirr/repos","events_url":"https://api.github.com/users/atgeirr/events{/privacy}","received_events_url":"https://api.github.com/users/atgeirr/received_events","type":"User","site_admin":false},"body":"This PR adds sequential solvers, including a simulator variant using them (flow_sequential.cpp) with an integration test (running SPE1, same as for fully implicit).\r\n\r\nThe sequential code is capable of running several (but not all) test cases without tuning or special parameters, but reducing ds_max a bit (from default 0.2 to say 0.1) helps with transport solver convergence. The Norne model runs fine (esp. with a little tuning). A parameter iterate_to_fully_implicit (defaults to false) is available, when set the simulator will iterate with alternating pressure and transport solves towards the fully implicit solution. Although that takes a lot extra time it serves as a correctness check.\r\n\r\nPerformance is not competitive with fully implicit at this point: essentially both the pressure and transport models inherit the fully implicit model and do a lot of double (or triple) work. The point has been to establish a proof of concept and baseline for further experiments, without disturbing the base model too much (or at all, if possible).\r\n\r\nChanges to existing code has been minimized by merging most such changes as smaller PRs already, the only remaining such change is to NewtonIterationBlackoilInterleaved. Admittedly, that code (to solve the pressure system with AMG) is not ideal because it duplicates similar code in CPRPreconditioner.hpp and is not parallel. I propose to address this later by refactoring the \"solve elliptic system\" code from CPRPreconditioner into a separate class that can be used also from here.\r\n","created_at":"2016-06-22T14:50:19Z","updated_at":"2016-06-24T12:42:04Z","closed_at":null,"merged_at":null,"merge_commit_sha":"4f93b3dd0419502b179ae14f45c9acf5627b4fc6","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/OPM/opm-simulators/pulls/737/commits","review_comments_url":"https://api.github.com/repos/OPM/opm-simulators/pulls/737/comments","review_comment_url":"https://api.github.com/repos/OPM/opm-simulators/pulls/comments{/number}","comments_url":"https://api.github.com/repos/OPM/opm-simulators/issues/737/comments","statuses_url":"https://api.github.com/repos/OPM/opm-simulators/statuses/01ae3244564079b003e794f73a3890f02714546c","head":{"label":"atgeirr:sequential","ref":"sequential","sha":"01ae3244564079b003e794f73a3890f02714546c","user":{"login":"atgeirr","id":1876621,"avatar_url":"https://avatars.githubusercontent.com/u/1876621?v=3","gravatar_id":"","url":"https://api.github.com/users/atgeirr","html_url":"https://github.com/atgeirr","followers_url":"https://api.github.com/users/atgeirr/followers","following_url":"https://api.github.com/users/atgeirr/following{/other_user}","gists_url":"https://api.github.com/users/atgeirr/gists{/gist_id}","starred_url":"https://api.github.com/users/atgeirr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/atgeirr/subscriptions","organizations_url":"https://api.github.com/users/atgeirr/orgs","repos_url":"https://api.github.com/users/atgeirr/repos","events_url":"https://api.github.com/users/atgeirr/events{/privacy}","received_events_url":"https://api.github.com/users/atgeirr/received_events","type":"User","site_admin":false},"repo":{"id":10097592,"name":"opm-simulators","full_name":"atgeirr/opm-simulators","owner":{"login":"atgeirr","id":1876621,"avatar_url":"https://avatars.githubusercontent.com/u/1876621?v=3","gravatar_id":"","url":"https://api.github.com/users/atgeirr","html_url":"https://github.com/atgeirr","followers_url":"https://api.github.com/users/atgeirr/followers","following_url":"https://api.github.com/users/atgeirr/following{/other_user}","gists_url":"https://api.github.com/users/atgeirr/gists{/gist_id}","starred_url":"https://api.github.com/users/atgeirr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/atgeirr/subscriptions","organizations_url":"https://api.github.com/users/atgeirr/orgs","repos_url":"https://api.github.com/users/atgeirr/repos","events_url":"https://api.github.com/users/atgeirr/events{/privacy}","received_events_url":"https://api.github.com/users/atgeirr/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/atgeirr/opm-simulators","description":"Utilities for automatic differentiation and simulators based on AD.","fork":true,"url":"https://api.github.com/repos/atgeirr/opm-simulators","forks_url":"https://api.github.com/repos/atgeirr/opm-simulators/forks","keys_url":"https://api.github.com/repos/atgeirr/opm-simulators/keys{/key_id}","collaborators_url":"https://api.github.com/repos/atgeirr/opm-simulators/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/atgeirr/opm-simulators/teams","hooks_url":"https://api.github.com/repos/atgeirr/opm-simulators/hooks","issue_events_url":"https://api.github.com/repos/atgeirr/opm-simulators/issues/events{/number}","events_url":"https://api.github.com/repos/atgeirr/opm-simulators/events","assignees_url":"https://api.github.com/repos/atgeirr/opm-simulators/assignees{/user}","branches_url":"https://api.github.com/repos/atgeirr/opm-simulators/branches{/branch}","tags_url":"https://api.github.com/repos/atgeirr/opm-simulators/tags","blobs_url":"https://api.github.com/repos/atgeirr/opm-simulators/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/atgeirr/opm-simulators/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/atgeirr/opm-simulators/git/refs{/sha}","trees_url":"https://api.github.com/repos/atgeirr/opm-simulators/git/trees{/sha}","statuses_url":"https://api.github.com/repos/atgeirr/opm-simulators/statuses/{sha}","languages_url":"https://api.github.com/repos/atgeirr/opm-simulators/languages","stargazers_url":"https://api.github.com/repos/atgeirr/opm-simulators/stargazers","contributors_url":"https://api.github.com/repos/atgeirr/opm-simulators/contributors","subscribers_url":"https://api.github.com/repos/atgeirr/opm-simulators/subscribers","subscription_url":"https://api.github.com/repos/atgeirr/opm-simulators/subscription","commits_url":"https://api.github.com/repos/atgeirr/opm-simulators/commits{/sha}","git_commits_url":"https://api.github.com/repos/atgeirr/opm-simulators/git/commits{/sha}","comments_url":"https://api.github.com/repos/atgeirr/opm-simulators/comments{/number}","issue_comment_url":"https://api.github.com/repos/atgeirr/opm-simulators/issues/comments{/number}","contents_url":"https://api.github.com/repos/atgeirr/opm-simulators/contents/{+path}","compare_url":"https://api.github.com/repos/atgeirr/opm-simulators/compare/{base}...{head}","merges_url":"https://api.github.com/repos/atgeirr/opm-simulators/merges","archive_url":"https://api.github.com/repos/atgeirr/opm-simulators/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/atgeirr/opm-simulators/downloads","issues_url":"https://api.github.com/repos/atgeirr/opm-simulators/issues{/number}","pulls_url":"https://api.github.com/repos/atgeirr/opm-simulators/pulls{/number}","milestones_url":"https://api.github.com/repos/atgeirr/opm-simulators/milestones{/number}","notifications_url":"https://api.github.com/repos/atgeirr/opm-simulators/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/atgeirr/opm-simulators/labels{/name}","releases_url":"https://api.github.com/repos/atgeirr/opm-simulators/releases{/id}","deployments_url":"https://api.github.com/repos/atgeirr/opm-simulators/deployments","created_at":"2013-05-16T09:01:36Z","updated_at":"2016-04-08T11:46:24Z","pushed_at":"2016-06-24T12:40:47Z","git_url":"git://github.com/atgeirr/opm-simulators.git","ssh_url":"git@github.com:atgeirr/opm-simulators.git","clone_url":"https://github.com/atgeirr/opm-simulators.git","svn_url":"https://github.com/atgeirr/opm-simulators","homepage":null,"size":6473,"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":"master"}},"base":{"label":"OPM:master","ref":"master","sha":"7649e431459c96e546d47332e7303771a9b09ac2","user":{"login":"OPM","id":1827197,"avatar_url":"https://avatars.githubusercontent.com/u/1827197?v=3","gravatar_id":"","url":"https://api.github.com/users/OPM","html_url":"https://github.com/OPM","followers_url":"https://api.github.com/users/OPM/followers","following_url":"https://api.github.com/users/OPM/following{/other_user}","gists_url":"https://api.github.com/users/OPM/gists{/gist_id}","starred_url":"https://api.github.com/users/OPM/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OPM/subscriptions","organizations_url":"https://api.github.com/users/OPM/orgs","repos_url":"https://api.github.com/users/OPM/repos","events_url":"https://api.github.com/users/OPM/events{/privacy}","received_events_url":"https://api.github.com/users/OPM/received_events","type":"Organization","site_admin":false},"repo":{"id":10097543,"name":"opm-simulators","full_name":"OPM/opm-simulators","owner":{"login":"OPM","id":1827197,"avatar_url":"https://avatars.githubusercontent.com/u/1827197?v=3","gravatar_id":"","url":"https://api.github.com/users/OPM","html_url":"https://github.com/OPM","followers_url":"https://api.github.com/users/OPM/followers","following_url":"https://api.github.com/users/OPM/following{/other_user}","gists_url":"https://api.github.com/users/OPM/gists{/gist_id}","starred_url":"https://api.github.com/users/OPM/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OPM/subscriptions","organizations_url":"https://api.github.com/users/OPM/orgs","repos_url":"https://api.github.com/users/OPM/repos","events_url":"https://api.github.com/users/OPM/events{/privacy}","received_events_url":"https://api.github.com/users/OPM/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/OPM/opm-simulators","description":"Simulator programs and utilities for automatic differentiation.","fork":false,"url":"https://api.github.com/repos/OPM/opm-simulators","forks_url":"https://api.github.com/repos/OPM/opm-simulators/forks","keys_url":"https://api.github.com/repos/OPM/opm-simulators/keys{/key_id}","collaborators_url":"https://api.github.com/repos/OPM/opm-simulators/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/OPM/opm-simulators/teams","hooks_url":"https://api.github.com/repos/OPM/opm-simulators/hooks","issue_events_url":"https://api.github.com/repos/OPM/opm-simulators/issues/events{/number}","events_url":"https://api.github.com/repos/OPM/opm-simulators/events","assignees_url":"https://api.github.com/repos/OPM/opm-simulators/assignees{/user}","branches_url":"https://api.github.com/repos/OPM/opm-simulators/branches{/branch}","tags_url":"https://api.github.com/repos/OPM/opm-simulators/tags","blobs_url":"https://api.github.com/repos/OPM/opm-simulators/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/OPM/opm-simulators/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/OPM/opm-simulators/git/refs{/sha}","trees_url":"https://api.github.com/repos/OPM/opm-simulators/git/trees{/sha}","statuses_url":"https://api.github.com/repos/OPM/opm-simulators/statuses/{sha}","languages_url":"https://api.github.com/repos/OPM/opm-simulators/languages","stargazers_url":"https://api.github.com/repos/OPM/opm-simulators/stargazers","contributors_url":"https://api.github.com/repos/OPM/opm-simulators/contributors","subscribers_url":"https://api.github.com/repos/OPM/opm-simulators/subscribers","subscription_url":"https://api.github.com/repos/OPM/opm-simulators/subscription","commits_url":"https://api.github.com/repos/OPM/opm-simulators/commits{/sha}","git_commits_url":"https://api.github.com/repos/OPM/opm-simulators/git/commits{/sha}","comments_url":"https://api.github.com/repos/OPM/opm-simulators/comments{/number}","issue_comment_url":"https://api.github.com/repos/OPM/opm-simulators/issues/comments{/number}","contents_url":"https://api.github.com/repos/OPM/opm-simulators/contents/{+path}","compare_url":"https://api.github.com/repos/OPM/opm-simulators/compare/{base}...{head}","merges_url":"https://api.github.com/repos/OPM/opm-simulators/merges","archive_url":"https://api.github.com/repos/OPM/opm-simulators/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/OPM/opm-simulators/downloads","issues_url":"https://api.github.com/repos/OPM/opm-simulators/issues{/number}","pulls_url":"https://api.github.com/repos/OPM/opm-simulators/pulls{/number}","milestones_url":"https://api.github.com/repos/OPM/opm-simulators/milestones{/number}","notifications_url":"https://api.github.com/repos/OPM/opm-simulators/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/OPM/opm-simulators/labels{/name}","releases_url":"https://api.github.com/repos/OPM/opm-simulators/releases{/id}","deployments_url":"https://api.github.com/repos/OPM/opm-simulators/deployments","created_at":"2013-05-16T08:59:22Z","updated_at":"2016-04-11T07:16:26Z","pushed_at":"2016-06-24T12:40:47Z","git_url":"git://github.com/OPM/opm-simulators.git","ssh_url":"git@github.com:OPM/opm-simulators.git","clone_url":"https://github.com/OPM/opm-simulators.git","svn_url":"https://github.com/OPM/opm-simulators","homepage":"http://www.opm-project.org","size":6574,"stargazers_count":6,"watchers_count":6,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":27,"mirror_url":null,"open_issues_count":30,"forks":27,"open_issues":30,"watchers":6,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/OPM/opm-simulators/pulls/737"},"html":{"href":"https://github.com/OPM/opm-simulators/pull/737"},"issue":{"href":"https://api.github.com/repos/OPM/opm-simulators/issues/737"},"comments":{"href":"https://api.github.com/repos/OPM/opm-simulators/issues/737/comments"},"review_comments":{"href":"https://api.github.com/repos/OPM/opm-simulators/pulls/737/comments"},"review_comment":{"href":"https://api.github.com/repos/OPM/opm-simulators/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/OPM/opm-simulators/pulls/737/commits"},"statuses":{"href":"https://api.github.com/repos/OPM/opm-simulators/statuses/01ae3244564079b003e794f73a3890f02714546c"}}}}
{"actor":{"display_login":"atgeirr"}}