From 5ab619788f21e94eab3257fb4d17e4192e26c574 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Tue, 1 Sep 2026 09:52:02 +0200 Subject: [PATCH 1/2] Bugfix: Tree offset in refine_every_nth_element_callback --- test/t8_gtest_adapt_callbacks.hxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/t8_gtest_adapt_callbacks.hxx b/test/t8_gtest_adapt_callbacks.hxx index 133d4e6773..307e3c1c29 100644 --- a/test/t8_gtest_adapt_callbacks.hxx +++ b/test/t8_gtest_adapt_callbacks.hxx @@ -87,7 +87,7 @@ refine_every_nth_element_callback ([[maybe_unused]] t8_forest_t forest, [[maybe_ [[maybe_unused]] t8_element_t *elements[]) { // Refine every n-th element, starting from offset (default: zero). - return ((lelement_id % n == offset) ? 1 : 0); + return (((t8_forest_get_tree_element_offset (forest_from, which_tree) + lelement_id) % n == offset) ? 1 : 0); } #endif /* T8_GTEST_ADAPT_CALLBACKS */ From 246d5dc0ed20181dce823fa91471f9c939766f15 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Tue, 1 Sep 2026 13:36:46 +0200 Subject: [PATCH 2/2] Switch to global ID --- test/t8_gtest_adapt_callbacks.hxx | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/test/t8_gtest_adapt_callbacks.hxx b/test/t8_gtest_adapt_callbacks.hxx index 307e3c1c29..1b67d7b705 100644 --- a/test/t8_gtest_adapt_callbacks.hxx +++ b/test/t8_gtest_adapt_callbacks.hxx @@ -54,12 +54,12 @@ t8_test_adapt_first_child (t8_forest_t forest, t8_forest_t forest_from, t8_locid const int is_family, const int num_elements, t8_element_t *elements[]); /** - * Adapt callback that refines every n-th local element, where \a n is given as template parameter. + * Adapt callback that refines every n-th global element, where \a n is given as template parameter. * - * Optionally, an \a offset < \a n may be defined to not start with the first local leaf eleement. + * Optionally, an \a offset < \a n may be defined to not start with the first leaf eleement. * - * \tparam n every n-th local leaf element will be refined - * \tparam offset local ID of the first element to refine + * \tparam n every n-th global leaf element will be refined + * \tparam offset global ID of the first element to refine * * Note: The argument list has to be the same as for \ref t8_forest_adapt_t, even * if most arguments are unused. For their meaning, please refer to \ref t8_forest_adapt_t. @@ -86,8 +86,12 @@ refine_every_nth_element_callback ([[maybe_unused]] t8_forest_t forest, [[maybe_ [[maybe_unused]] const int is_family, [[maybe_unused]] const int num_elements, [[maybe_unused]] t8_element_t *elements[]) { + // Compute global element ID (forest offset + tree offset + id in tree). + t8_gloidx_t global_elem_id = t8_forest_get_first_local_leaf_element_id (forest_from) + + t8_forest_get_tree_element_offset (forest_from, which_tree) + lelement_id; + // Refine every n-th element, starting from offset (default: zero). - return (((t8_forest_get_tree_element_offset (forest_from, which_tree) + lelement_id) % n == offset) ? 1 : 0); + return ((global_elem_id % n == offset) ? 1 : 0); } #endif /* T8_GTEST_ADAPT_CALLBACKS */