and after
cell refinement. The refine_flag in picture is mapped to bool
and not the exact return value of cell->refine_flag_set().
In the above figures, the two cells that marked by green point are not marked
to refine but refined after execute_coarsening_and_refinement ().
The used triangulation type is parallel::distributed::Triangulation<dim> and
the triangulation object is initialized with default Smoothing flags which should be "none".
Moreover, the above showed refinement flags are outputted immediately after
prepare_coarsening_and_refinement() and before execute_coarsening_and_refinement
within a loop.
Although the distributed triangulation, this result is produced with only one process.
The refinement behavior looks like the smoothing flag "limit_level_difference_at_vertices"
is set, but I think this should not happen with MeshSmoothing = none.
Does this imply there may be something wrong in parallel::distributed::Triangulation<dim>,
or just in my understanding?
Best,
Lei
--
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+un...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Interesting, maybe we never checked this. Can you go and test if the following patch works?:
diff --git a/source/distributed/tria.cc b/source/distributed/tria.ccindex 9b16877..bbffbd9 100644--- a/source/distributed/tria.cc+++ b/source/distributed/tria.cc@@ -3551,10 +3551,10 @@ namespace parallel(dim == 2?typename dealii::internal::p4est::types<dim>::- balance_type(P4EST_CONNECT_FULL)+ balance_type(P4EST_CONNECT_FACE):typename dealii::internal::p4est::types<dim>::- balance_type(P8EST_CONNECT_FULL)),+ balance_type(P8EST_CONNECT_FACE)),/*init_callback=*/NULL);
(ultimately we should do CONNECT_FULL if the limit_level_difference flag is set and CONNECT_FACE otherwise)
The difference I can tell is that the lower right cell has a refined face neighborwhile upper left one doesn't.
std::vector<unsigned int> repetitions;
repetitions.push_back (2);
repetitions.push_back (2);
const Point<dim> p1 (0, 0);
const Point<dim> p2 (1, 1);
GridGenerator::subdivided_hyper_rectangle (triangulation,
repetitions,
p1,
p2);
And if I initialize the triangulation by
GridGenerator::hyper_cube(triangulation);
triangulation.refine_global(1);
But I have no idea on why this happens and how to prevent the extra refinement.