Dear Shahab,
I think the best solution (I might be wrong) is to loop through the 
boundary faces and acquire the DOF indices that lie on a boundary face. You 
could then store them in an std::map or a similar structure that prevents 
data duplication.


You can create a vector and store the dof indices of a face in a following 
fashion that I believe should work.
Assuming you already have a vector such as:
std::vector<types::global_dof_index> face_dofs;




In the loops within the cell then the faces, assuming you are at a face 
*face* and that you have a FiniteElement fe, you can do:
face_dofs.resize(fe.dofs_per_face);
face->get_dof_indices(face_dofs, cell->active_fe_index());

This will gather all the dofs indices of that given face. If that face is a 
boundary face it means you have gathered all of its dofs location.
I hope that points you in the right direction and helps you!
Best
Bruno




On Thursday, 30 April 2020 23:05:31 UTC-4, Shahab Golshan wrote:
>
> Dear all,
> I want to find all the vertices located on boundaries. It seems the 
> function at_boundary() does not work for vertices (points). Do you have any 
> suggestions how to obtain all the vertices located on the boundaries?
> Best,
> Shahab
>

-- 
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/dealii/389defa8-9b6b-467e-a2f4-3d77abee31f0%40googlegroups.com.

Reply via email to