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.
