GridTools::collect_periodic_faces has problem with meshes generated by Gmsh or Abaqus when running in parallel.

25 views
Skip to first unread message

Hamed Babaei

unread,
Feb 16, 2018, 7:08:55 PM2/16/18
to deal.II User Group
Hi All,

I'm having problem when applying periodicity on meshes generated with Gmsh or Abaqus. The problem arises when I run in parallel (in serial it works) getting the following error:

 void dealii::GridTools::match_periodic_face_pairs(std::set<std::pair<CellIterator, unsigned int> >&, std::set<std::pair<typename dealii::identity<RangeType>::type, unsigned int> >&, int, std::vector<dealii::GridTools::PeriodicFacePair<CellIterator> >&, const dealii::Tensor<1, typename FaceIterator::AccessorType:: space_dimension>&, const dealii::FullMatrix<double>&) [with CellIterator = dealii::TriaIterator<dealii::CellAccessor<3, 3> >; typename dealii::identity<RangeType>::type = dealii::TriaIterator<dealii::CellAccessor<3, 3> >; typename FaceIterator::AccessorType = dealii::CellAccessor<3, 3>]
The violated condition was:
    n_matches == pairs1.size() && pairs2.size() == 0
The name and call sequence of the exception was:
    ExcMessage ("Unmatched faces on periodic boundaries")
Additional Information:
Unmatched faces on periodic boundaries 

I suspect that match_periodic_face_pairs function does not have access to the whole faces in parallel. 

I am wondering if you have encountered this issue before, or any clue what is the reason for this issue.

Thanks in advance.

Hamed

Daniel Arndt

unread,
Feb 17, 2018, 12:20:32 PM2/17/18
to deal.II User Group
Hamed,

for collecting the periodic boundary pairs only the coarsest level is important.
In particular, you have to make sure that you set the boundary indicators correctly for all cells on this level.
For the coarsest level every MPI process knows about all the cells since the mesh is the same for all processes.
Summarizing: Simply run over all the cells when setting the boundary indicators and not only the ones that are locally owned.

Best,
Daniel

Hamed Babaei

unread,
Feb 19, 2018, 11:58:33 AM2/19/18
to deal.II User Group
Dear Dr. Arndt,

Thank you very much for your help. The problem was resolved applying your comment. I was setting the indicators running over locally owned cells not all the cells.

Best regards,
Hamed 
Reply all
Reply to author
Forward
0 new messages