Skip to content
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

Open
wants to merge 27 commits into
base: feature-ghost_interface
Choose a base branch
from

Conversation

sandro-elsweijer
Copy link
Collaborator

@sandro-elsweijer sandro-elsweijer commented Sep 16, 2024

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

  • The code is covered in an existing or new test case using Google Test

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):

    • Should this use case be added to the github action?
    • If not, does the specific use case compile and all tests pass (check manually)

Scripts and Wiki

  • If a new directory with source-files is added, it must be covered by the script/find_all_source_files.scp to check the indentation of these files.
  • If this PR introduces a new feature, it must be covered in an example/tutorial and a Wiki article.

License

  • The author added a BSD statement to doc/ (or already has one)

@sandro-elsweijer sandro-elsweijer added enhancement Enhances already existing code draft Enhance the visibility that this is a draft. labels Sep 16, 2024
Copy link
Collaborator

@holke holke left a 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.

src/t8_forest/t8_forest_ghost.cxx Outdated Show resolved Hide resolved
src/t8_forest/t8_forest_ghost.h Outdated Show resolved Hide resolved
src/t8_forest/t8_forest_ghost.h Show resolved Hide resolved
src/t8_forest/t8_forest_ghost.h Outdated Show resolved Hide resolved
src/t8_forest/t8_forest_ghost.cxx Show resolved Hide resolved
src/t8_forest/t8_forest_private.cxx Outdated Show resolved Hide resolved
src/t8_forest/t8_forest_private.h Show resolved Hide resolved
@holke holke marked this pull request as ready for review October 29, 2024 12:06
@holke holke removed their assignment Oct 30, 2024
@holke holke added Follow-up PR priority: medium Should be solved within half a year workload: low Would take half a day or less and removed draft Enhance the visibility that this is a draft. labels Nov 4, 2024
Copy link
Collaborator

@holke holke left a 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) {
Copy link
Collaborator

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Enhances already existing code Follow-up PR priority: medium Should be solved within half a year workload: low Would take half a day or less
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants