-
Notifications
You must be signed in to change notification settings - Fork 53
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Enhancement ghost query functions #1248
base: feature-ghost_interface
Are you sure you want to change the base?
Enhancement ghost query functions #1248
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks!
Only minor changes needed.
However, i suggest to take some part of the code and make a genera t8_element_array function out of it: Finding the index of an element in an element array.
t8_element_array_find (const t8_element_array_t *, const t8_element_t *)
Since we need this in other code places as well and should not duplicate the code.
…hancement-ghost_query_functions
…s' into enhancement-ghost_query_functions
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I reviewed everything but the tests since i wrote them myself.
I also added some minor bits to the rest of the code.
Would like to have a review from someone else that @sandro-elsweijer since he wrote the rest.
const t8_element_array_t *ghosts = t8_forest_ghost_get_tree_elements (forest_adapt, ighost_tree); | ||
t8_locidx_t ghost_index_in_tree = 0; | ||
//for (const t8_element_t &ighost : ghosts) { // loop over all ghost elements | ||
for (; ghost_index_in_tree < t8_element_array_get_count (ghosts); ++ghost_index_in_tree) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Buffer result of element_get_count
Describe your changes here:
Edit @holke: This PR adds two functions:
t8_ghost_get_ghost_id_in_tree
Retrieves the local index of a ghost element in its specific ghost tree.
t8_ghost_get_ghost_in_tree_from_linear_id
Retrieves a ghost element from its ghost tree given the element's linear id.
And we add a test that checks both functions.
Original text from @sandro-elsweijer:
I just drafted the code and it compiles without warning. I never executed the code. Giving it to our Hydrotec advisor @holke.
Note: The typos and indentation are from the base branch of this branch and I did not correct them since the base branch is still WIP. But this branch should be (if the new code works) usable by Hydrotec.
All these boxes must be checked by the reviewers before merging the pull request:
As a reviewer please read through all the code lines and make sure that the code is fully understood, bug free, well-documented and well-structured.
General
The reviewer executed the new code features at least once and checked the results manually
The code follows the t8code coding guidelines
New source/header files are properly added to the Makefiles
The code is well documented
All function declarations, structs/classes and their members have a proper doxygen documentation
All new algorithms and data structures are sufficiently optimal in terms of memory and runtime (If this should be merged, but there is still potential for optimization, create a new issue)
Tests
Github action
The code compiles without warning in debugging and release mode, with and without MPI (this should be executed automatically in a github action)
All tests pass (in various configurations, this should be executed automatically in a github action)
If the Pull request introduces code that is not covered by the github action (for example coupling with a new library):
Scripts and Wiki
script/find_all_source_files.scp
to check the indentation of these files.License
doc/
(or already has one)