{"action":"created","comment":{"url":"https://api.github.com/repos/ufz/ogs/pulls/comments/73783882","id":73783882,"diff_hunk":"@@ -11,70 +11,57 @@\n \n #include <algorithm>\n #include <vector>\n-\n #include <logog/include/logog.hpp>\n \n+#include \"MeshGeoToolsLib/MeshNodeSearcher.h\"\n+#include \"BoundaryConditionConfig.h\"\n+\n namespace ProcessLib\n {\n-UniformDirichletBoundaryCondition::UniformDirichletBoundaryCondition(\n-    GeoLib::GeoObject const& geometry, BaseLib::ConfigTree const& config)\n-    : _geometry(geometry)\n+std::unique_ptr<UniformDirichletBoundaryCondition>\n+createUniformDirichletBoundaryCondition(\n+    BoundaryConditionConfig const& config,\n+    MeshGeoToolsLib::MeshNodeSearcher& searcher,\n+    NumLib::LocalToGlobalIndexMap const& dof_table,\n+    int const variable_id)\n {\n     DBUG(\"Constructing UniformDirichletBoundaryCondition from config.\");\n     //! \\ogs_file_param{boundary_condition__type}\n-    config.checkConfigParameter(\"type\", \"UniformDirichlet\");\n+    config.config.checkConfigParameter(\"type\", \"UniformDirichlet\");","path":"ProcessLib/BoundaryCondition/UniformDirichletBoundaryCondition.cpp","position":25,"original_position":25,"commit_id":"27f661aa954868161424b02363c7b36409dee5e8","original_commit_id":"27f661aa954868161424b02363c7b36409dee5e8","user":{"login":"chleh","id":10530151,"avatar_url":"https://avatars.githubusercontent.com/u/10530151?v=3","gravatar_id":"","url":"https://api.github.com/users/chleh","html_url":"https://github.com/chleh","followers_url":"https://api.github.com/users/chleh/followers","following_url":"https://api.github.com/users/chleh/following{/other_user}","gists_url":"https://api.github.com/users/chleh/gists{/gist_id}","starred_url":"https://api.github.com/users/chleh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chleh/subscriptions","organizations_url":"https://api.github.com/users/chleh/orgs","repos_url":"https://api.github.com/users/chleh/repos","events_url":"https://api.github.com/users/chleh/events{/privacy}","received_events_url":"https://api.github.com/users/chleh/received_events","type":"User","site_admin":false},"body":"ConfigTree is rather fragile (that's why there are so many test cases for it): All of its methods have to interact nicely. So when deriving from ConfigTree one probably would have to make most methods of ConfigTree `final` in order to not accidentally break things or accidentally forget some checks in the derived implementation.\r\nFurthermore derivation is not necessarily good design, and in this special case BCConfig comprises a ConfigTree, a geometry and a component index, which are three entirely distinct things, so I'd favour composition anyway.","created_at":"2016-08-06T09:53:27Z","updated_at":"2016-08-06T09:53:27Z","html_url":"https://github.com/ufz/ogs/pull/1337#discussion_r73783882","pull_request_url":"https://api.github.com/repos/ufz/ogs/pulls/1337","_links":{"self":{"href":"https://api.github.com/repos/ufz/ogs/pulls/comments/73783882"},"html":{"href":"https://github.com/ufz/ogs/pull/1337#discussion_r73783882"},"pull_request":{"href":"https://api.github.com/repos/ufz/ogs/pulls/1337"}}},"pull_request":{"url":"https://api.github.com/repos/ufz/ogs/pulls/1337","id":79911461,"html_url":"https://github.com/ufz/ogs/pull/1337","diff_url":"https://github.com/ufz/ogs/pull/1337.diff","patch_url":"https://github.com/ufz/ogs/pull/1337.patch","issue_url":"https://api.github.com/repos/ufz/ogs/issues/1337","number":1337,"state":"open","locked":false,"title":"Restructured bcs","user":{"login":"chleh","id":10530151,"avatar_url":"https://avatars.githubusercontent.com/u/10530151?v=3","gravatar_id":"","url":"https://api.github.com/users/chleh","html_url":"https://github.com/chleh","followers_url":"https://api.github.com/users/chleh/followers","following_url":"https://api.github.com/users/chleh/following{/other_user}","gists_url":"https://api.github.com/users/chleh/gists{/gist_id}","starred_url":"https://api.github.com/users/chleh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chleh/subscriptions","organizations_url":"https://api.github.com/users/chleh/orgs","repos_url":"https://api.github.com/users/chleh/repos","events_url":"https://api.github.com/users/chleh/events{/privacy}","received_events_url":"https://api.github.com/users/chleh/received_events","type":"User","site_admin":false},"body":"This is a predecessor of #1336.\r\n\r\nMost of the code changes are simple moves from old BC classes to new ones.\r\nMajor changes:\r\n* Got rid of different BC-config classes. Instead there is now one simple BC config class used in `ProcessVariable`\r\n* All BCs now have a common base class. (The concept of it is not perfect since the Dirichlet BCs don't quite fit, but it can be used as a starting point for extensions/generalizations)\r\n* There is a generic implementation for \"generic natural BCs\" (like Neumann and Robin; please suggest a better name) that omits code duplication pretty much. New BCs essentially only need to implement an assembly method and a create function.\r\n\r\nBtw: This PR is #1337 :smile_cat: ","created_at":"2016-08-03T14:03:02Z","updated_at":"2016-08-06T09:53:28Z","closed_at":null,"merged_at":null,"merge_commit_sha":"e9cc97b061aa3e3b6b40b05e7a24b9318851a777","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/ufz/ogs/pulls/1337/commits","review_comments_url":"https://api.github.com/repos/ufz/ogs/pulls/1337/comments","review_comment_url":"https://api.github.com/repos/ufz/ogs/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ufz/ogs/issues/1337/comments","statuses_url":"https://api.github.com/repos/ufz/ogs/statuses/27f661aa954868161424b02363c7b36409dee5e8","head":{"label":"chleh:restructured-bcs","ref":"restructured-bcs","sha":"27f661aa954868161424b02363c7b36409dee5e8","user":{"login":"chleh","id":10530151,"avatar_url":"https://avatars.githubusercontent.com/u/10530151?v=3","gravatar_id":"","url":"https://api.github.com/users/chleh","html_url":"https://github.com/chleh","followers_url":"https://api.github.com/users/chleh/followers","following_url":"https://api.github.com/users/chleh/following{/other_user}","gists_url":"https://api.github.com/users/chleh/gists{/gist_id}","starred_url":"https://api.github.com/users/chleh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chleh/subscriptions","organizations_url":"https://api.github.com/users/chleh/orgs","repos_url":"https://api.github.com/users/chleh/repos","events_url":"https://api.github.com/users/chleh/events{/privacy}","received_events_url":"https://api.github.com/users/chleh/received_events","type":"User","site_admin":false},"repo":{"id":40347084,"name":"ogs6","full_name":"chleh/ogs6","owner":{"login":"chleh","id":10530151,"avatar_url":"https://avatars.githubusercontent.com/u/10530151?v=3","gravatar_id":"","url":"https://api.github.com/users/chleh","html_url":"https://github.com/chleh","followers_url":"https://api.github.com/users/chleh/followers","following_url":"https://api.github.com/users/chleh/following{/other_user}","gists_url":"https://api.github.com/users/chleh/gists{/gist_id}","starred_url":"https://api.github.com/users/chleh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chleh/subscriptions","organizations_url":"https://api.github.com/users/chleh/orgs","repos_url":"https://api.github.com/users/chleh/repos","events_url":"https://api.github.com/users/chleh/events{/privacy}","received_events_url":"https://api.github.com/users/chleh/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/chleh/ogs6","description":"Experimental OGS-6 source code","fork":true,"url":"https://api.github.com/repos/chleh/ogs6","forks_url":"https://api.github.com/repos/chleh/ogs6/forks","keys_url":"https://api.github.com/repos/chleh/ogs6/keys{/key_id}","collaborators_url":"https://api.github.com/repos/chleh/ogs6/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/chleh/ogs6/teams","hooks_url":"https://api.github.com/repos/chleh/ogs6/hooks","issue_events_url":"https://api.github.com/repos/chleh/ogs6/issues/events{/number}","events_url":"https://api.github.com/repos/chleh/ogs6/events","assignees_url":"https://api.github.com/repos/chleh/ogs6/assignees{/user}","branches_url":"https://api.github.com/repos/chleh/ogs6/branches{/branch}","tags_url":"https://api.github.com/repos/chleh/ogs6/tags","blobs_url":"https://api.github.com/repos/chleh/ogs6/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/chleh/ogs6/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/chleh/ogs6/git/refs{/sha}","trees_url":"https://api.github.com/repos/chleh/ogs6/git/trees{/sha}","statuses_url":"https://api.github.com/repos/chleh/ogs6/statuses/{sha}","languages_url":"https://api.github.com/repos/chleh/ogs6/languages","stargazers_url":"https://api.github.com/repos/chleh/ogs6/stargazers","contributors_url":"https://api.github.com/repos/chleh/ogs6/contributors","subscribers_url":"https://api.github.com/repos/chleh/ogs6/subscribers","subscription_url":"https://api.github.com/repos/chleh/ogs6/subscription","commits_url":"https://api.github.com/repos/chleh/ogs6/commits{/sha}","git_commits_url":"https://api.github.com/repos/chleh/ogs6/git/commits{/sha}","comments_url":"https://api.github.com/repos/chleh/ogs6/comments{/number}","issue_comment_url":"https://api.github.com/repos/chleh/ogs6/issues/comments{/number}","contents_url":"https://api.github.com/repos/chleh/ogs6/contents/{+path}","compare_url":"https://api.github.com/repos/chleh/ogs6/compare/{base}...{head}","merges_url":"https://api.github.com/repos/chleh/ogs6/merges","archive_url":"https://api.github.com/repos/chleh/ogs6/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/chleh/ogs6/downloads","issues_url":"https://api.github.com/repos/chleh/ogs6/issues{/number}","pulls_url":"https://api.github.com/repos/chleh/ogs6/pulls{/number}","milestones_url":"https://api.github.com/repos/chleh/ogs6/milestones{/number}","notifications_url":"https://api.github.com/repos/chleh/ogs6/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/chleh/ogs6/labels{/name}","releases_url":"https://api.github.com/repos/chleh/ogs6/releases{/id}","deployments_url":"https://api.github.com/repos/chleh/ogs6/deployments","created_at":"2015-08-07T07:24:24Z","updated_at":"2016-01-14T16:07:04Z","pushed_at":"2016-08-04T17:53:08Z","git_url":"git://github.com/chleh/ogs6.git","ssh_url":"git@github.com:chleh/ogs6.git","clone_url":"https://github.com/chleh/ogs6.git","svn_url":"https://github.com/chleh/ogs6","homepage":"www.opengeosys.org","size":17460,"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":"ufz:master","ref":"master","sha":"a5f268a76e3b8d6e3df0328b43d6ecceb3c8b9cf","user":{"login":"ufz","id":767517,"avatar_url":"https://avatars.githubusercontent.com/u/767517?v=3","gravatar_id":"","url":"https://api.github.com/users/ufz","html_url":"https://github.com/ufz","followers_url":"https://api.github.com/users/ufz/followers","following_url":"https://api.github.com/users/ufz/following{/other_user}","gists_url":"https://api.github.com/users/ufz/gists{/gist_id}","starred_url":"https://api.github.com/users/ufz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ufz/subscriptions","organizations_url":"https://api.github.com/users/ufz/orgs","repos_url":"https://api.github.com/users/ufz/repos","events_url":"https://api.github.com/users/ufz/events{/privacy}","received_events_url":"https://api.github.com/users/ufz/received_events","type":"Organization","site_admin":false},"repo":{"id":1701384,"name":"ogs","full_name":"ufz/ogs","owner":{"login":"ufz","id":767517,"avatar_url":"https://avatars.githubusercontent.com/u/767517?v=3","gravatar_id":"","url":"https://api.github.com/users/ufz","html_url":"https://github.com/ufz","followers_url":"https://api.github.com/users/ufz/followers","following_url":"https://api.github.com/users/ufz/following{/other_user}","gists_url":"https://api.github.com/users/ufz/gists{/gist_id}","starred_url":"https://api.github.com/users/ufz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ufz/subscriptions","organizations_url":"https://api.github.com/users/ufz/orgs","repos_url":"https://api.github.com/users/ufz/repos","events_url":"https://api.github.com/users/ufz/events{/privacy}","received_events_url":"https://api.github.com/users/ufz/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ufz/ogs","description":"Experimental OGS-6 source code","fork":false,"url":"https://api.github.com/repos/ufz/ogs","forks_url":"https://api.github.com/repos/ufz/ogs/forks","keys_url":"https://api.github.com/repos/ufz/ogs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ufz/ogs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ufz/ogs/teams","hooks_url":"https://api.github.com/repos/ufz/ogs/hooks","issue_events_url":"https://api.github.com/repos/ufz/ogs/issues/events{/number}","events_url":"https://api.github.com/repos/ufz/ogs/events","assignees_url":"https://api.github.com/repos/ufz/ogs/assignees{/user}","branches_url":"https://api.github.com/repos/ufz/ogs/branches{/branch}","tags_url":"https://api.github.com/repos/ufz/ogs/tags","blobs_url":"https://api.github.com/repos/ufz/ogs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ufz/ogs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ufz/ogs/git/refs{/sha}","trees_url":"https://api.github.com/repos/ufz/ogs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ufz/ogs/statuses/{sha}","languages_url":"https://api.github.com/repos/ufz/ogs/languages","stargazers_url":"https://api.github.com/repos/ufz/ogs/stargazers","contributors_url":"https://api.github.com/repos/ufz/ogs/contributors","subscribers_url":"https://api.github.com/repos/ufz/ogs/subscribers","subscription_url":"https://api.github.com/repos/ufz/ogs/subscription","commits_url":"https://api.github.com/repos/ufz/ogs/commits{/sha}","git_commits_url":"https://api.github.com/repos/ufz/ogs/git/commits{/sha}","comments_url":"https://api.github.com/repos/ufz/ogs/comments{/number}","issue_comment_url":"https://api.github.com/repos/ufz/ogs/issues/comments{/number}","contents_url":"https://api.github.com/repos/ufz/ogs/contents/{+path}","compare_url":"https://api.github.com/repos/ufz/ogs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ufz/ogs/merges","archive_url":"https://api.github.com/repos/ufz/ogs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ufz/ogs/downloads","issues_url":"https://api.github.com/repos/ufz/ogs/issues{/number}","pulls_url":"https://api.github.com/repos/ufz/ogs/pulls{/number}","milestones_url":"https://api.github.com/repos/ufz/ogs/milestones{/number}","notifications_url":"https://api.github.com/repos/ufz/ogs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ufz/ogs/labels{/name}","releases_url":"https://api.github.com/repos/ufz/ogs/releases{/id}","deployments_url":"https://api.github.com/repos/ufz/ogs/deployments","created_at":"2011-05-04T14:09:57Z","updated_at":"2016-04-10T21:29:50Z","pushed_at":"2016-08-04T17:53:08Z","git_url":"git://github.com/ufz/ogs.git","ssh_url":"git@github.com:ufz/ogs.git","clone_url":"https://github.com/ufz/ogs.git","svn_url":"https://github.com/ufz/ogs","homepage":"www.opengeosys.org","size":19208,"stargazers_count":19,"watchers_count":19,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":48,"mirror_url":null,"open_issues_count":106,"forks":48,"open_issues":106,"watchers":19,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ufz/ogs/pulls/1337"},"html":{"href":"https://github.com/ufz/ogs/pull/1337"},"issue":{"href":"https://api.github.com/repos/ufz/ogs/issues/1337"},"comments":{"href":"https://api.github.com/repos/ufz/ogs/issues/1337/comments"},"review_comments":{"href":"https://api.github.com/repos/ufz/ogs/pulls/1337/comments"},"review_comment":{"href":"https://api.github.com/repos/ufz/ogs/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ufz/ogs/pulls/1337/commits"},"statuses":{"href":"https://api.github.com/repos/ufz/ogs/statuses/27f661aa954868161424b02363c7b36409dee5e8"}}}}
{"actor":{"display_login":"chleh"}}