From c98c3a8b85dfb14ad14e0d8edb7e0205ba03d74f Mon Sep 17 00:00:00 2001 From: Ole Albers Date: Fri, 18 Oct 2024 14:05:20 +0200 Subject: [PATCH] create hex copy function --- .../t8_default/t8_default_hex/t8_default_hex.cxx | 2 +- .../t8_default/t8_default_hex/t8_dhex_bits.c | 11 +++++++++++ .../t8_default/t8_default_hex/t8_dhex_bits.h | 7 +++++++ 3 files changed, 19 insertions(+), 1 deletion(-) 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 5465eda575..daadfc02b6 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 @@ -51,7 +51,7 @@ t8_default_scheme_hex_c::t8_element_copy (const t8_element_t *source, t8_element { T8_ASSERT (t8_element_is_valid (source)); T8_ASSERT (t8_element_is_valid (dest)); - *(p8est_quadrant_t *) dest = *(const p8est_quadrant_t *) source; + t8_dhex_copy ((const t8_dhex_t *) source, (t8_dhex_t *) dest); } int diff --git a/src/t8_schemes/t8_default/t8_default_hex/t8_dhex_bits.c b/src/t8_schemes/t8_default/t8_default_hex/t8_dhex_bits.c index 5ddec13a69..5131e6ae38 100644 --- a/src/t8_schemes/t8_default/t8_default_hex/t8_dhex_bits.c +++ b/src/t8_schemes/t8_default/t8_default_hex/t8_dhex_bits.c @@ -47,3 +47,14 @@ t8_dhex_compute_reference_coords (const t8_dhex_t *elem, const double *ref_coord out_coords[offset + 2] /= (double) P8EST_ROOT_LEN; } } + +/*Copies a hexahedra from source to dest*/ +void +t8_dhex_copy (const t8_dhex_t *source, t8_dhex_t *dest) +{ + T8_ASSERT (source != NULL && dest != NULL); + if (source == dest) { + return; + } + memcpy (dest, source, sizeof (t8_dhex_t)); +} diff --git a/src/t8_schemes/t8_default/t8_default_hex/t8_dhex_bits.h b/src/t8_schemes/t8_default/t8_default_hex/t8_dhex_bits.h index 92c5ec8cec..3e97662931 100644 --- a/src/t8_schemes/t8_default/t8_default_hex/t8_dhex_bits.h +++ b/src/t8_schemes/t8_default/t8_default_hex/t8_dhex_bits.h @@ -46,6 +46,13 @@ void t8_dhex_compute_reference_coords (const t8_dhex_t *elem, const double *ref_coords, const size_t num_coords, double *out_coords); +/** Copy the data from source to dest + * \param[in] source The source-hex + * \param[in,out] dest The destination + */ +void +t8_dhex_copy (const t8_dhex_t *source, t8_dhex_t *dest); + T8_EXTERN_C_END (); #endif /* T8_DHEX_BITS_H */