>
> 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.

Reply via email to