> > We actually already have a function that can do 1/2 the job for you, > namely GridTools:: compute_active_cell_halo_layer > <https://www.dealii.org/8.4.1/doxygen/deal.II/namespaceGridTools.html#a7ed62cdc6910a2ae39e8caa3142c1ad1>. > > In this instance your predicate would be whether the input cell has a face > on the patch you've specified. You'd then remove from this list all of the > cells that are not on the boundary. It might be a bit expensive to use if > you compute for many patches, because it does a loop over all cells in the > triangulation. We could, however, look at extending the function for > multiple predicates leading to the output of multiple collections of cells, > one for each predicate. > As far as I understand the question, we are searching for the boundary faces that form a halo layer around one given boundary face. From my point of view, the code I referenced should be a straight-forward solution avoiding unnecessary work. However, this might not be the best option if the "subdomain" you want to build the halo layer around is much larger. In particular, GridTools::compute_active_cell_halo_layer avoids visiting a cell twice (but visits every cell once).
> Daniel, I think that this is more generic than your approach, because not > all FE's have DoFs that have support on a face? > Why do you think GridTools::compute_active_cell_halo_layer is more generic? Am I missing something? In the end, both codes just return a set of cell_iterators resp. face_iterators. Since Erik explicitly asks for a way to "get the degrees of freedom living on the set of faces", I would still just modify the referenced code to return face_iterators and access the corresponding DoFs using them. One caveat might be to deal with locally refined meshes. In this case, one would have to loop through all subfaces additionally. Best, Daniel -- The deal.II project is located at http://www.dealii.org/ For mailing list/forum options, see https://groups.google.com/d/forum/dealii?hl=en --- You received this message because you are subscribed to the Google Groups "deal.II User Group" group. To unsubscribe from this group and stop receiving emails from it, send an email to dealii+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.