I changed the strategy that I don't assign manifold first. I merge two triangulations. Then, I loop over cells to see if cell has a side on the merged interior boundary. If so, I set manifold id to it.
const Point<2> center (0,0); const SphericalManifold<2> boundary_description(center); tria.set_manifold (0, boundary_description); for (typename Triangulation<2>::active_cell_iterator cell=tria.begin_active(); cell!=tria.end(); ++cell) { for (int fn=0; fn<4; ++fn) { auto ctr = cell->face(fn)->center(); auto x=ctr[0],y=ctr[1]; if (0.92<std::sqrt(x*x+y*y)<1.) { cell->set_all_manifold_ids(0); break; } } } tria.refine_global(2); The result is super strange that the boundary is also exterior boundary is also curved. 在 2018年3月28日星期三 UTC-7下午9:00:50,Weixiong Zheng写道: > > Hi, > > I just started to try manifold and tria merging functionalities. My > question comes from the problem that I have to merge two curved > triangulations. When refining, how do I make sure the merged boundaries are > still curved? > > I currently set manifold before merging triangulation but it seems not to > work as desired. > > See the attachment pls. > > Thanks for any advice in advance. > Weixiong > -- 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.