t8code icon indicating copy to clipboard operation
t8code copied to clipboard

Standalone scheme types

Open ole-alb opened this issue 10 months ago • 2 comments

Describe your changes here: Closes #1574

Add support for the remaining eclasses (tri, tet, prism & pyramid) to the standalone scheme.

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)

Tag Label

  • [ ] The author added the patch/minor/major label in accordance to semantic versioning.

ole-alb avatar Feb 28 '25 10:02 ole-alb

This is a first batch of review comments.

A general comment / question: A lot of functions have an if/else block with if(!T8_ELEMENT_NUM_EQUATIONS) or if(T8_ELEMENT_NUM_EQUATIONS) to implement line/quad/hex specific stuff.

Wouldn't it be faster to provide the LUT for these eclasses, too? We could avoid if/else blocks slowing down the computation. Or does the compiler optimize it out?

To my understanding the if/else should not have an impact on the runtime as we use if constexpr and as you suggested the compiler optimizes it out.

ole-alb avatar May 21 '25 13:05 ole-alb

Codecov Report

:x: Patch coverage is 95.48872% with 12 lines in your changes missing coverage. Please review. :white_check_mark: Project coverage is 76.15%. Comparing base (8d06ad1) to head (1aff0a3).

Files with missing lines Patch % Lines
...mes/t8_standalone/t8_standalone_implementation.hxx 95.33% 12 Missing :warning:
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1443      +/-   ##
==========================================
+ Coverage   75.86%   76.15%   +0.28%     
==========================================
  Files         103      103              
  Lines       19200    19423     +223     
==========================================
+ Hits        14566    14791     +225     
+ Misses       4634     4632       -2     

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

:rocket: New features to boost your workflow:
  • :snowflake: Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

codecov[bot] avatar Aug 19 '25 11:08 codecov[bot]