DLR-AMR / t8code

Parallel algorithms and data structures for tree-based adaptive mesh refinement (AMR) with arbitrary element shapes.
https://dlr-amr.github.io/t8code/
GNU General Public License v2.0
154 stars 52 forks source link

Support elements with pointers in partition #1303

Open lukasdreyer opened 1 week ago

lukasdreyer commented 1 week ago

Feature request

Currently, in t8_forest_partition, elements are put into the sendbuffer by memcpy. This does not work with elements that use pointers in their representation.

Is your feature request related to a problem? Please describe. 2.5D elements use pointers and can't be partitioned.

Describe the solution or feature you'd like Replace copy to sendbuffer by new scheme interface function to pack elements that are next to each other (i.e. initialized in a t8_element_array, currently only there for elements created by t8_element_new). Replace copy from recvbuffer by new scheme interface function to unpack elements that are next to each other.

Describe alternatives you've considered The interface functions can be implemented by the default schemes with

Estimated priority

"Priority: high" Should be solved as soon as possible

holke commented 1 week ago

This builds on the data handler works of @Davknapp and should be possible once these are implemented.

Davknapp commented 1 week ago

This feature currently needs a review, but we have decided to take it slow to currently focus on more urgent implementations. Nevertheless I would love to see the pack/unpack feature in use and would support you going in that direction