{"action":"created","comment":{"url":"https://api.github.com/repos/dealii/dealii/pulls/comments/37683299","id":37683299,"diff_hunk":"@@ -556,6 +556,100 @@ namespace GridTools\n   get_active_neighbors (const typename Container::active_cell_iterator        &cell,\n                         std::vector<typename Container::active_cell_iterator> &active_neighbors);\n \n+  /**\n+   * Extract and return the active cell layer around a subdomain (set of active\n+   * cells) in the @p container (i.e. those that share a common set of vertices\n+   * with the subdomain but are not a part of it).\n+   * Here, the \"subdomain\" consists of exactly all of those cells for which the\n+   * @p predicate returns @p true.\n+   *\n+   * @note This function may return both locally owned and ghost cells, but\n+   * is expected not to return artificial cells.\n+   *\n+   * @tparam Container A type that satisfies the requirements of a mesh\n+   * container (see @ref GlossMeshAsAContainer).\n+   * @param[in] container A mesh container (i.e. objects of type Triangulation,\n+   * DoFHandler, or hp::DoFHandler).\n+   * @param[in] predicate A function defining the subdomain around which the\n+   * halo layer is to be extracted. It is a function that takes in an active cell\n+   * and returns a boolean.\n+   * @return A list of active cells sharing at least one common vertex with the\n+   * predicated subdomain.\n+   *\n+   * @author Jean-Paul Pelteret, Denis Davydov, Wolfgang Bangerth, 2015\n+   */\n+  template <class Container>\n+  std::vector<typename Container::active_cell_iterator>\n+  compute_active_cell_halo_layer (const Container                                                                    &container,\n+                                  const std_cxx11::function<bool (const typename Container::active_cell_iterator &)> &predicate);\n+\n+  /**\n+   * Extract and return ghost cells which are the active cell layer\n+   * around all locally owned cells. This is most relevant for\n+   * parallel::shared::Triangulation where it may return a subset of all\n+   * ghost cells on a processor, but for parallel::distributed::Triangulation\n+   * this should return all the ghost cells.\n+   *\n+   * @tparam Container A type that satisfies the requirements of a mesh\n+   * container (see @ref GlossMeshAsAContainer).\n+   * @param[in] container A mesh container (i.e. objects of type Triangulation,\n+   * DoFHandler, or hp::DoFHandler).\n+   * @return A list of ghost cells\n+   *\n+   * @author Jean-Paul Pelteret, Denis Davydov, Wolfgang Bangerth, 2015\n+   */\n+  template <class Container>\n+  std::vector<typename Container::active_cell_iterator>\n+  compute_ghost_cell_halo_layer (const Container &container);\n+\n+#ifdef DEAL_II_WITH_CXX11\n+\n+  /**\n+   * Extract and return all active cells around a subdomain defined by a\n+   * collection of material ids.\n+   *\n+   * @tparam Container A type that satisfies the requirements of a mesh\n+   * container (see @ref GlossMeshAsAContainer).\n+   * @param[in] container A mesh container (i.e. objects of type Triangulation,\n+   * DoFHandler, or hp::DoFHandler).\n+   * @param[in] materials A collection of material ids that define the\n+   * subdomain that is encapsulated by the cell layer that is to be extracted.\n+   * @return The list of cells that comprise the halo layer\n+   *\n+   * @note This function may return both locally owned and ghost cells, but\n+   * is expected not to return artificial cells.\n+   *\n+   * @author Jean-Paul Pelteret, Denis Davydov, Wolfgang Bangerth, 2015\n+   */\n+  template <class Container>\n+  std::vector<typename Container::active_cell_iterator>\n+  compute_active_cell_halo_layer (const Container                    &container,","path":"include/deal.II/grid/grid_tools.h","position":71,"original_position":71,"commit_id":"cbf13c50a5820f8855f0fe0a51a2f8fb8897279a","original_commit_id":"cbf13c50a5820f8855f0fe0a51a2f8fb8897279a","user":{"login":"Rombur","id":368538,"avatar_url":"https://avatars.githubusercontent.com/u/368538?v=3","gravatar_id":"","url":"https://api.github.com/users/Rombur","html_url":"https://github.com/Rombur","followers_url":"https://api.github.com/users/Rombur/followers","following_url":"https://api.github.com/users/Rombur/following{/other_user}","gists_url":"https://api.github.com/users/Rombur/gists{/gist_id}","starred_url":"https://api.github.com/users/Rombur/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Rombur/subscriptions","organizations_url":"https://api.github.com/users/Rombur/orgs","repos_url":"https://api.github.com/users/Rombur/repos","events_url":"https://api.github.com/users/Rombur/events{/privacy}","received_events_url":"https://api.github.com/users/Rombur/received_events","type":"User","site_admin":false},"body":"Actually I will need this function soon (I'm glad Jean-Paul is writing the code I need :-D ) to interface deal.II with another library and I will need to get the halo defined by material ids. I don't know why it's useful but it's in the interface of the other library.","created_at":"2015-08-21T22:13:50Z","updated_at":"2015-08-21T22:13:50Z","html_url":"https://github.com/dealii/dealii/pull/1396#discussion_r37683299","pull_request_url":"https://api.github.com/repos/dealii/dealii/pulls/1396","_links":{"self":{"href":"https://api.github.com/repos/dealii/dealii/pulls/comments/37683299"},"html":{"href":"https://github.com/dealii/dealii/pull/1396#discussion_r37683299"},"pull_request":{"href":"https://api.github.com/repos/dealii/dealii/pulls/1396"}}},"pull_request":{"url":"https://api.github.com/repos/dealii/dealii/pulls/1396","id":42947456,"html_url":"https://github.com/dealii/dealii/pull/1396","diff_url":"https://github.com/dealii/dealii/pull/1396.diff","patch_url":"https://github.com/dealii/dealii/pull/1396.patch","issue_url":"https://api.github.com/repos/dealii/dealii/issues/1396","number":1396,"state":"open","locked":false,"title":"Implementation of general cell halo layer function inside GridTools.","user":{"login":"jppelteret","id":10460610,"avatar_url":"https://avatars.githubusercontent.com/u/10460610?v=3","gravatar_id":"","url":"https://api.github.com/users/jppelteret","html_url":"https://github.com/jppelteret","followers_url":"https://api.github.com/users/jppelteret/followers","following_url":"https://api.github.com/users/jppelteret/following{/other_user}","gists_url":"https://api.github.com/users/jppelteret/gists{/gist_id}","starred_url":"https://api.github.com/users/jppelteret/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jppelteret/subscriptions","organizations_url":"https://api.github.com/users/jppelteret/orgs","repos_url":"https://api.github.com/users/jppelteret/repos","events_url":"https://api.github.com/users/jppelteret/events{/privacy}","received_events_url":"https://api.github.com/users/jppelteret/received_events","type":"User","site_admin":false},"body":"With reference to [this issue](https://github.com/dealii/dealii/issues/1368), this is an implementation of a function that returns a layer of active cells around a general subdomain defined by some predicate function. Test case included for free :-)","created_at":"2015-08-20T16:06:32Z","updated_at":"2015-08-21T22:13:50Z","closed_at":null,"merged_at":null,"merge_commit_sha":"6e95d3cd000fe8704f6652aa43b5531780e335d3","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/dealii/dealii/pulls/1396/commits","review_comments_url":"https://api.github.com/repos/dealii/dealii/pulls/1396/comments","review_comment_url":"https://api.github.com/repos/dealii/dealii/pulls/comments{/number}","comments_url":"https://api.github.com/repos/dealii/dealii/issues/1396/comments","statuses_url":"https://api.github.com/repos/dealii/dealii/statuses/cbf13c50a5820f8855f0fe0a51a2f8fb8897279a","head":{"label":"jppelteret:halo_functions","ref":"halo_functions","sha":"cbf13c50a5820f8855f0fe0a51a2f8fb8897279a","user":{"login":"jppelteret","id":10460610,"avatar_url":"https://avatars.githubusercontent.com/u/10460610?v=3","gravatar_id":"","url":"https://api.github.com/users/jppelteret","html_url":"https://github.com/jppelteret","followers_url":"https://api.github.com/users/jppelteret/followers","following_url":"https://api.github.com/users/jppelteret/following{/other_user}","gists_url":"https://api.github.com/users/jppelteret/gists{/gist_id}","starred_url":"https://api.github.com/users/jppelteret/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jppelteret/subscriptions","organizations_url":"https://api.github.com/users/jppelteret/orgs","repos_url":"https://api.github.com/users/jppelteret/repos","events_url":"https://api.github.com/users/jppelteret/events{/privacy}","received_events_url":"https://api.github.com/users/jppelteret/received_events","type":"User","site_admin":false},"repo":{"id":40106037,"name":"dealii","full_name":"jppelteret/dealii","owner":{"login":"jppelteret","id":10460610,"avatar_url":"https://avatars.githubusercontent.com/u/10460610?v=3","gravatar_id":"","url":"https://api.github.com/users/jppelteret","html_url":"https://github.com/jppelteret","followers_url":"https://api.github.com/users/jppelteret/followers","following_url":"https://api.github.com/users/jppelteret/following{/other_user}","gists_url":"https://api.github.com/users/jppelteret/gists{/gist_id}","starred_url":"https://api.github.com/users/jppelteret/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jppelteret/subscriptions","organizations_url":"https://api.github.com/users/jppelteret/orgs","repos_url":"https://api.github.com/users/jppelteret/repos","events_url":"https://api.github.com/users/jppelteret/events{/privacy}","received_events_url":"https://api.github.com/users/jppelteret/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/jppelteret/dealii","description":"The development repository for the deal.II finite element library.","fork":true,"url":"https://api.github.com/repos/jppelteret/dealii","forks_url":"https://api.github.com/repos/jppelteret/dealii/forks","keys_url":"https://api.github.com/repos/jppelteret/dealii/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jppelteret/dealii/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jppelteret/dealii/teams","hooks_url":"https://api.github.com/repos/jppelteret/dealii/hooks","issue_events_url":"https://api.github.com/repos/jppelteret/dealii/issues/events{/number}","events_url":"https://api.github.com/repos/jppelteret/dealii/events","assignees_url":"https://api.github.com/repos/jppelteret/dealii/assignees{/user}","branches_url":"https://api.github.com/repos/jppelteret/dealii/branches{/branch}","tags_url":"https://api.github.com/repos/jppelteret/dealii/tags","blobs_url":"https://api.github.com/repos/jppelteret/dealii/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jppelteret/dealii/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jppelteret/dealii/git/refs{/sha}","trees_url":"https://api.github.com/repos/jppelteret/dealii/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jppelteret/dealii/statuses/{sha}","languages_url":"https://api.github.com/repos/jppelteret/dealii/languages","stargazers_url":"https://api.github.com/repos/jppelteret/dealii/stargazers","contributors_url":"https://api.github.com/repos/jppelteret/dealii/contributors","subscribers_url":"https://api.github.com/repos/jppelteret/dealii/subscribers","subscription_url":"https://api.github.com/repos/jppelteret/dealii/subscription","commits_url":"https://api.github.com/repos/jppelteret/dealii/commits{/sha}","git_commits_url":"https://api.github.com/repos/jppelteret/dealii/git/commits{/sha}","comments_url":"https://api.github.com/repos/jppelteret/dealii/comments{/number}","issue_comment_url":"https://api.github.com/repos/jppelteret/dealii/issues/comments{/number}","contents_url":"https://api.github.com/repos/jppelteret/dealii/contents/{+path}","compare_url":"https://api.github.com/repos/jppelteret/dealii/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jppelteret/dealii/merges","archive_url":"https://api.github.com/repos/jppelteret/dealii/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jppelteret/dealii/downloads","issues_url":"https://api.github.com/repos/jppelteret/dealii/issues{/number}","pulls_url":"https://api.github.com/repos/jppelteret/dealii/pulls{/number}","milestones_url":"https://api.github.com/repos/jppelteret/dealii/milestones{/number}","notifications_url":"https://api.github.com/repos/jppelteret/dealii/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jppelteret/dealii/labels{/name}","releases_url":"https://api.github.com/repos/jppelteret/dealii/releases{/id}","created_at":"2015-08-03T05:08:52Z","updated_at":"2015-08-03T05:09:58Z","pushed_at":"2015-08-21T15:02:04Z","git_url":"git://github.com/jppelteret/dealii.git","ssh_url":"git@github.com:jppelteret/dealii.git","clone_url":"https://github.com/jppelteret/dealii.git","svn_url":"https://github.com/jppelteret/dealii","homepage":"http://www.dealii.org/","size":121551,"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":"dealii:master","ref":"master","sha":"bb7a042021c217fded76f4b2c19a8ab83c1fc424","user":{"login":"dealii","id":7506070,"avatar_url":"https://avatars.githubusercontent.com/u/7506070?v=3","gravatar_id":"","url":"https://api.github.com/users/dealii","html_url":"https://github.com/dealii","followers_url":"https://api.github.com/users/dealii/followers","following_url":"https://api.github.com/users/dealii/following{/other_user}","gists_url":"https://api.github.com/users/dealii/gists{/gist_id}","starred_url":"https://api.github.com/users/dealii/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dealii/subscriptions","organizations_url":"https://api.github.com/users/dealii/orgs","repos_url":"https://api.github.com/users/dealii/repos","events_url":"https://api.github.com/users/dealii/events{/privacy}","received_events_url":"https://api.github.com/users/dealii/received_events","type":"Organization","site_admin":false},"repo":{"id":21943980,"name":"dealii","full_name":"dealii/dealii","owner":{"login":"dealii","id":7506070,"avatar_url":"https://avatars.githubusercontent.com/u/7506070?v=3","gravatar_id":"","url":"https://api.github.com/users/dealii","html_url":"https://github.com/dealii","followers_url":"https://api.github.com/users/dealii/followers","following_url":"https://api.github.com/users/dealii/following{/other_user}","gists_url":"https://api.github.com/users/dealii/gists{/gist_id}","starred_url":"https://api.github.com/users/dealii/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dealii/subscriptions","organizations_url":"https://api.github.com/users/dealii/orgs","repos_url":"https://api.github.com/users/dealii/repos","events_url":"https://api.github.com/users/dealii/events{/privacy}","received_events_url":"https://api.github.com/users/dealii/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/dealii/dealii","description":"The development repository for the deal.II finite element library.","fork":false,"url":"https://api.github.com/repos/dealii/dealii","forks_url":"https://api.github.com/repos/dealii/dealii/forks","keys_url":"https://api.github.com/repos/dealii/dealii/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dealii/dealii/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dealii/dealii/teams","hooks_url":"https://api.github.com/repos/dealii/dealii/hooks","issue_events_url":"https://api.github.com/repos/dealii/dealii/issues/events{/number}","events_url":"https://api.github.com/repos/dealii/dealii/events","assignees_url":"https://api.github.com/repos/dealii/dealii/assignees{/user}","branches_url":"https://api.github.com/repos/dealii/dealii/branches{/branch}","tags_url":"https://api.github.com/repos/dealii/dealii/tags","blobs_url":"https://api.github.com/repos/dealii/dealii/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dealii/dealii/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dealii/dealii/git/refs{/sha}","trees_url":"https://api.github.com/repos/dealii/dealii/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dealii/dealii/statuses/{sha}","languages_url":"https://api.github.com/repos/dealii/dealii/languages","stargazers_url":"https://api.github.com/repos/dealii/dealii/stargazers","contributors_url":"https://api.github.com/repos/dealii/dealii/contributors","subscribers_url":"https://api.github.com/repos/dealii/dealii/subscribers","subscription_url":"https://api.github.com/repos/dealii/dealii/subscription","commits_url":"https://api.github.com/repos/dealii/dealii/commits{/sha}","git_commits_url":"https://api.github.com/repos/dealii/dealii/git/commits{/sha}","comments_url":"https://api.github.com/repos/dealii/dealii/comments{/number}","issue_comment_url":"https://api.github.com/repos/dealii/dealii/issues/comments{/number}","contents_url":"https://api.github.com/repos/dealii/dealii/contents/{+path}","compare_url":"https://api.github.com/repos/dealii/dealii/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dealii/dealii/merges","archive_url":"https://api.github.com/repos/dealii/dealii/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dealii/dealii/downloads","issues_url":"https://api.github.com/repos/dealii/dealii/issues{/number}","pulls_url":"https://api.github.com/repos/dealii/dealii/pulls{/number}","milestones_url":"https://api.github.com/repos/dealii/dealii/milestones{/number}","notifications_url":"https://api.github.com/repos/dealii/dealii/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dealii/dealii/labels{/name}","releases_url":"https://api.github.com/repos/dealii/dealii/releases{/id}","created_at":"2014-07-17T14:00:26Z","updated_at":"2015-08-19T13:12:06Z","pushed_at":"2015-08-21T21:49:21Z","git_url":"git://github.com/dealii/dealii.git","ssh_url":"git@github.com:dealii/dealii.git","clone_url":"https://github.com/dealii/dealii.git","svn_url":"https://github.com/dealii/dealii","homepage":"http://www.dealii.org/","size":157303,"stargazers_count":81,"watchers_count":81,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":115,"mirror_url":null,"open_issues_count":116,"forks":115,"open_issues":116,"watchers":81,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/dealii/dealii/pulls/1396"},"html":{"href":"https://github.com/dealii/dealii/pull/1396"},"issue":{"href":"https://api.github.com/repos/dealii/dealii/issues/1396"},"comments":{"href":"https://api.github.com/repos/dealii/dealii/issues/1396/comments"},"review_comments":{"href":"https://api.github.com/repos/dealii/dealii/pulls/1396/comments"},"review_comment":{"href":"https://api.github.com/repos/dealii/dealii/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/dealii/dealii/pulls/1396/commits"},"statuses":{"href":"https://api.github.com/repos/dealii/dealii/statuses/cbf13c50a5820f8855f0fe0a51a2f8fb8897279a"}}}}