From f6c2e8adcccee456200f0dcaa283ab9afb0486d3 Mon Sep 17 00:00:00 2001 From: "Dreyer, Lukas" Date: Wed, 22 Oct 2025 13:12:00 +0200 Subject: [PATCH] add element print in release --- .../t8_default_common/t8_default_common.hxx | 14 +++++++++++++- .../t8_default_hex/t8_default_hex.cxx | 2 +- .../t8_default_hex/t8_default_hex.hxx | 2 +- .../t8_default_line/t8_default_line.cxx | 2 +- .../t8_default_line/t8_default_line.hxx | 2 +- .../t8_default_prism/t8_default_prism.cxx | 3 +-- .../t8_default_prism/t8_default_prism.hxx | 2 +- .../t8_default_pyramid/t8_default_pyramid.cxx | 2 +- .../t8_default_pyramid/t8_default_pyramid.hxx | 2 +- .../t8_default_quad/t8_default_quad.cxx | 2 +- .../t8_default_quad/t8_default_quad.hxx | 2 +- .../t8_default_tet/t8_default_tet.cxx | 2 +- .../t8_default_tet/t8_default_tet.hxx | 2 +- .../t8_default_tri/t8_default_tri.cxx | 2 +- .../t8_default_tri/t8_default_tri.hxx | 2 +- .../t8_default_vertex/t8_default_vertex.cxx | 2 +- .../t8_default_vertex/t8_default_vertex.hxx | 2 +- src/t8_schemes/t8_scheme.cxx | 8 +++++++- src/t8_schemes/t8_scheme.hxx | 15 ++++++++++++++- .../t8_standalone_implementation.hxx | 17 +++++++++++++++-- 20 files changed, 65 insertions(+), 22 deletions(-) diff --git a/src/t8_schemes/t8_default/t8_default_common/t8_default_common.hxx b/src/t8_schemes/t8_default/t8_default_common/t8_default_common.hxx index 72955c45ae..9c56b591f9 100644 --- a/src/t8_schemes/t8_default/t8_default_common/t8_default_common.hxx +++ b/src/t8_schemes/t8_default/t8_default_common/t8_default_common.hxx @@ -307,7 +307,19 @@ class t8_default_scheme_common: public t8_crtp_operatorunderlying ().element_to_string (elem, debug_string, BUFSIZ); + t8_productionf ("%s\n", debug_string); + } #if T8_ENABLE_DEBUG /** * Print a given element. For a example for a triangle print the coordinates diff --git a/src/t8_schemes/t8_default/t8_default_hex/t8_default_hex.cxx b/src/t8_schemes/t8_default/t8_default_hex/t8_default_hex.cxx index a63ab50dfd..8f2af4711b 100644 --- a/src/t8_schemes/t8_default/t8_default_hex/t8_default_hex.cxx +++ b/src/t8_schemes/t8_default/t8_default_hex/t8_default_hex.cxx @@ -639,6 +639,7 @@ t8_default_scheme_hex::element_is_valid (const t8_element_t *element) const && T8_QUAD_GET_TDIM ((const p8est_quadrant_t *) element) == 3; } +#endif void t8_default_scheme_hex::element_to_string (const t8_element_t *elem, char *debug_string, const int string_size) const { @@ -647,7 +648,6 @@ t8_default_scheme_hex::element_to_string (const t8_element_t *elem, char *debug_ p8est_quadrant_t *hex = (p8est_quadrant_t *) elem; snprintf (debug_string, string_size, "x: %i, y: %i, z: %i, level: %i", hex->x, hex->y, hex->z, hex->level); } -#endif void t8_default_scheme_hex::set_to_root (t8_element_t *elem) const diff --git a/src/t8_schemes/t8_default/t8_default_hex/t8_default_hex.hxx b/src/t8_schemes/t8_default/t8_default_hex/t8_default_hex.hxx index eeb6f6a5aa..3bb8ef6c84 100644 --- a/src/t8_schemes/t8_default/t8_default_hex/t8_default_hex.hxx +++ b/src/t8_schemes/t8_default/t8_default_hex/t8_default_hex.hxx @@ -574,6 +574,7 @@ class t8_default_scheme_hex: public t8_default_scheme_commonx, line->level); } -#endif void t8_default_scheme_line::element_new (int length, t8_element_t **elem) const diff --git a/src/t8_schemes/t8_default/t8_default_line/t8_default_line.hxx b/src/t8_schemes/t8_default/t8_default_line/t8_default_line.hxx index add13e2a02..75a856d3f1 100644 --- a/src/t8_schemes/t8_default/t8_default_line/t8_default_line.hxx +++ b/src/t8_schemes/t8_default/t8_default_line/t8_default_line.hxx @@ -585,6 +585,7 @@ class t8_default_scheme_line: public t8_default_scheme_commonline.x, prism->tri.type, prism->tri.level); } -#endif /* T8_ENABLE_DEBUG */ - void t8_default_scheme_prism::set_to_root (t8_element_t *elem) const { diff --git a/src/t8_schemes/t8_default/t8_default_prism/t8_default_prism.hxx b/src/t8_schemes/t8_default/t8_default_prism/t8_default_prism.hxx index 5d920b7771..cb153ed52d 100644 --- a/src/t8_schemes/t8_default/t8_default_prism/t8_default_prism.hxx +++ b/src/t8_schemes/t8_default/t8_default_prism/t8_default_prism.hxx @@ -555,6 +555,7 @@ class t8_default_scheme_prism: public t8_default_scheme_commonpyramid.x, pyra->pyramid.y, pyra->pyramid.x, pyra->pyramid.type, pyra->pyramid.level, pyra->switch_shape_at_level); } -#endif void t8_default_scheme_pyramid::set_to_root (t8_element_t *elem) const diff --git a/src/t8_schemes/t8_default/t8_default_pyramid/t8_default_pyramid.hxx b/src/t8_schemes/t8_default/t8_default_pyramid/t8_default_pyramid.hxx index 0f220ff51b..5e551f09bd 100644 --- a/src/t8_schemes/t8_default/t8_default_pyramid/t8_default_pyramid.hxx +++ b/src/t8_schemes/t8_default/t8_default_pyramid/t8_default_pyramid.hxx @@ -575,6 +575,7 @@ class t8_default_scheme_pyramid: public t8_default_scheme_commonx, quad->y, quad->level); } -#endif void t8_default_scheme_quad::set_to_root (t8_element_t *elem) const diff --git a/src/t8_schemes/t8_default/t8_default_quad/t8_default_quad.hxx b/src/t8_schemes/t8_default/t8_default_quad/t8_default_quad.hxx index 8571418b28..4ab56aae7c 100644 --- a/src/t8_schemes/t8_default/t8_default_quad/t8_default_quad.hxx +++ b/src/t8_schemes/t8_default/t8_default_quad/t8_default_quad.hxx @@ -604,6 +604,7 @@ class t8_default_scheme_quad: public t8_default_scheme_commonx, tet->y, tet->z, tet->type, tet->level); } -#endif void t8_default_scheme_tet::element_new (int length, t8_element_t **elem) const diff --git a/src/t8_schemes/t8_default/t8_default_tet/t8_default_tet.hxx b/src/t8_schemes/t8_default/t8_default_tet/t8_default_tet.hxx index 671207d172..782b3b6950 100644 --- a/src/t8_schemes/t8_default/t8_default_tet/t8_default_tet.hxx +++ b/src/t8_schemes/t8_default/t8_default_tet/t8_default_tet.hxx @@ -524,6 +524,7 @@ class t8_default_scheme_tet: public t8_default_scheme_commonx, tri->y, tri->type, tri->level); } -#endif void t8_default_scheme_tri::element_new (int length, t8_element_t **elem) const diff --git a/src/t8_schemes/t8_default/t8_default_tri/t8_default_tri.hxx b/src/t8_schemes/t8_default/t8_default_tri/t8_default_tri.hxx index a73027919c..78ca2a44e1 100644 --- a/src/t8_schemes/t8_default/t8_default_tri/t8_default_tri.hxx +++ b/src/t8_schemes/t8_default/t8_default_tri/t8_default_tri.hxx @@ -516,6 +516,7 @@ class t8_default_scheme_tri: public t8_default_scheme_commonlevel <= T8_DVERTEX_MAXLEVEL; } +#endif void t8_default_scheme_vertex::element_to_string (const t8_element_t *elem, char *debug_string, const int string_size) const @@ -326,7 +327,6 @@ t8_default_scheme_vertex::element_to_string (const t8_element_t *elem, char *deb t8_dvertex_t *vertex = (t8_dvertex_t *) elem; snprintf (debug_string, string_size, "level: %i", vertex->level); } -#endif int t8_default_scheme_vertex::refines_irregular () const diff --git a/src/t8_schemes/t8_default/t8_default_vertex/t8_default_vertex.hxx b/src/t8_schemes/t8_default/t8_default_vertex/t8_default_vertex.hxx index 471cb8c896..2148f9e2d0 100644 --- a/src/t8_schemes/t8_default/t8_default_vertex/t8_default_vertex.hxx +++ b/src/t8_schemes/t8_default/t8_default_vertex/t8_default_vertex.hxx @@ -619,6 +619,7 @@ class t8_default_scheme_vertex: public t8_default_scheme_commonelement_debug_print (tree_class, elem); } +#endif void t8_element_to_string (const t8_scheme_c *scheme, const t8_eclass_t tree_class, const t8_element_t *elem, @@ -378,7 +379,12 @@ t8_element_to_string (const t8_scheme_c *scheme, const t8_eclass_t tree_class, c return scheme->element_to_string (tree_class, elem, debug_string, string_size); } -#endif + +void +t8_element_print (const t8_scheme_c *scheme, const t8_eclass_t tree_class, const t8_element_t *elem) +{ + return scheme->element_print (tree_class, elem); +} void t8_element_new (const t8_scheme_c *scheme, const t8_eclass_t tree_class, const int length, t8_element_t **elems) diff --git a/src/t8_schemes/t8_scheme.hxx b/src/t8_schemes/t8_scheme.hxx index 1a92b04312..2644244cf9 100644 --- a/src/t8_schemes/t8_scheme.hxx +++ b/src/t8_schemes/t8_scheme.hxx @@ -984,6 +984,7 @@ class t8_scheme { return std::visit ([&] (auto &&scheme) { return scheme.element_debug_print (element); }, eclass_schemes[tree_class]); }; +#endif /** * Fill a string with readable information about the element @@ -999,7 +1000,19 @@ class t8_scheme { return std::visit ([&] (auto &&scheme) { return scheme.element_to_string (element, debug_string, string_size); }, eclass_schemes[tree_class]); }; -#endif + + /** + * Print a given element. For a example for a triangle print the coordinates + * and the level of the triangle. This function is only available in the + * debugging configuration. + * \param [in] tree_class The eclass of the current tree. + * \param [in] element The element to print + */ + inline void + element_print (const t8_eclass_t tree_class, const t8_element_t *element) const + { + return std::visit ([&] (auto &&scheme) { return scheme.element_print (element); }, eclass_schemes[tree_class]); + }; /** Allocate memory for \a length many elements of a given class and initialize them, * and put pointers to the elements in the provided array. diff --git a/src/t8_schemes/t8_standalone/t8_standalone_implementation.hxx b/src/t8_schemes/t8_standalone/t8_standalone_implementation.hxx index e82be32df7..b1b46081c8 100644 --- a/src/t8_schemes/t8_standalone/t8_standalone_implementation.hxx +++ b/src/t8_schemes/t8_standalone/t8_standalone_implementation.hxx @@ -1734,7 +1734,7 @@ struct t8_standalone_scheme t8_debugf ("t_%i: %i \n", e_num, get_typebit (el->type, e_num)); } } - +#endif /** * Fill a string with readable information about the element * \param[in] elem The element to translate into human-readable information @@ -1752,7 +1752,20 @@ struct t8_standalone_scheme } } -#endif + static constexpr void + element_print (const t8_element_t *elem) noexcept + { + + const t8_standalone_element *el = (const t8_standalone_element *) elem; + + t8_productionf ("level: %i\n", el->level); + for (int idim = 0; idim < T8_ELEMENT_DIM[TEclass]; idim++) { + t8_productionf ("x_%i: %i \n", idim, el->coords[idim]); + } + for (int e_num = 0; e_num < T8_ELEMENT_NUM_EQUATIONS[TEclass]; e_num++) { + t8_productionf ("t_%i: %i \n", e_num, get_typebit (el->type, e_num)); + } + } // ################################################____MPI____################################################