Skip to content

[SPH] improve new SPH setup performance#1501

Merged
tdavidcl merged 11 commits into
Shamrock-code:mainfrom
tdavidcl:patch-2025-12-29-17-38
Dec 29, 2025
Merged

[SPH] improve new SPH setup performance#1501
tdavidcl merged 11 commits into
Shamrock-code:mainfrom
tdavidcl:patch-2025-12-29-17-38

Conversation

@tdavidcl

Copy link
Copy Markdown
Member

No description provided.

@github-actions

Copy link
Copy Markdown
Contributor

Thanks @tdavidcl for opening this PR!

You can do multiple things directly here:
1 - Comment pre-commit.ci run to run pre-commit checks.
2 - Comment pre-commit.ci autofix to apply fixes.
3 - Add label autofix.ci to fix authorship & pre-commit for every commit made.
4 - Add label light-ci to only trigger a reduced & faster version of the CI (need the full one before merge).
5 - Add label trigger-ci to create an empty commit to trigger the CI.

Once the workflow completes a message will appear displaying informations related to the run.

Also the PR gets automatically reviewed by gemini, you can:
1 - Comment /gemini review to trigger a review
2 - Comment /gemini summary for a summary
3 - Tag it using @gemini-code-assist either in the PR or in review comments on files

@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello @tdavidcl, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly enhances the performance of the SPH (Smoothed Particle Hydrodynamics) setup process by optimizing memory management during particle distribution. It introduces a mechanism to reuse device buffers for intermediate calculations, thereby reducing the overhead of repeated memory allocations in critical loops. These changes are expected to yield noticeable performance improvements in the SPH simulation setup phase.

Highlights

  • Performance Optimization: Implemented a buffer recycling mechanism for get_ids_where operations to reduce memory allocations and improve performance in critical loops.
  • Refactored get_ids_where: Introduced a new function, get_ids_where_recycle_buffer, in PatchDataField.hpp to allow reusing a pre-allocated mask buffer, centralizing buffer management logic.
  • SPH Setup Integration: The SPHSetup.cpp module now utilizes the new buffer recycling mechanism within its inject_in_local_domains logic, specifically for identifying particles within local domains, preventing repeated buffer allocations.
  • Code Structure Improvements: Minor refactoring in SPHSetup.cpp by encapsulating particle indexing logic into a dedicated lambda function for better organization.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request aims to improve performance in the SPH setup by refactoring code and introducing buffer recycling to avoid reallocations in a loop. The changes are generally good, but I've found a high-severity issue where the performance optimization is not correctly implemented. Additionally, I've provided a couple of medium-severity suggestions to improve template argument forwarding for better consistency and correctness within the codebase.

I am having trouble creating individual review comments. Click here to see my feedback.

src/shammodels/sph/src/modules/SPHSetup.cpp (422-429)

high

To achieve the performance benefit of recycling the mask_get_ids_where buffer, its declaration should be moved outside the while (has_been_limited) loop. Currently, it's being re-created in every iteration, which negates the optimization.

            auto dev_sched = shamsys::instance::get_compute_scheduler_ptr();
            sham::DeviceBuffer<u32> mask_get_ids_where(0, dev_sched);

            bool has_been_limited = true;

            while (has_been_limited) {
                has_been_limited = false;
                using namespace shamrock::patch;

src/shamrock/include/shamrock/patch/PatchDataField.hpp (346)

medium

To support perfect forwarding and for consistency with other template functions in this file (e.g., get_ids_vec_where), variadic template arguments should be taken as forwarding references (Args&&... args).

        sham::DeviceBuffer<u32> &mask, Lambdacd &&cd_true, Args&&... args) const {

src/shamrock/include/shamrock/patch/PatchDataField.hpp (394)

medium

To ensure correct move/copy semantics and enable perfect forwarding of the lambda, std::forward should be used here. This is consistent with other functions in this file like get_ids_vec_where.

            return get_ids_where_recycle_buffer(mask, std::forward<Lambdacd>(cd_true), args...);

@tdavidcl

Copy link
Copy Markdown
Member Author

/gemini review

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request refactors the table utility class by moving its definition from src/shammodels/common/src/timestep_report.cpp to a new, centralized header src/shambase/include/shambase/tabulate.hpp, making it reusable across the codebase. The timestep_report.cpp file is updated to include the new header and use the shambase::table namespace. Additionally, the SPH setup process (SPHSetup.hpp and SPHSetup.cpp) is enhanced with a new max_msg_size parameter, providing more granular control over message sizes during particle injection. Default values for insert_step, gen_step, msg_limit, and data_count_limit are adjusted, and performance logging for memory allocation and MPI timings is introduced during the injection phase. An optimization is also implemented to reuse device buffers (get_ids_where_recycle_buffer) during particle indexing. Review comments highlight the need to simplify the rulled_data rendering logic in the new tabulate.hpp for better readability and performance, correct a misleading variable name (sum_max_time_rank_getter) in the performance report, and fix the calculation of per-rank allocation time percentages by using rank-specific injection times instead of a global value.

Comment thread src/shambase/include/shambase/tabulate.hpp
Comment thread src/shammodels/sph/src/modules/SPHSetup.cpp Outdated
Comment thread src/shammodels/sph/src/modules/SPHSetup.cpp
@github-actions

Copy link
Copy Markdown
Contributor

Workflow report

workflow report corresponding to commit 75b6e21
Commiter email is timothee.davidcleris@proton.me
GitHub page artifact URL GitHub page artifact link (can expire)

Pre-commit check report

Pre-commit check: ✅

trim trailing whitespace.................................................Passed
fix end of files.........................................................Passed
check for merge conflicts................................................Passed
check that executables have shebangs.....................................Passed
check that scripts with shebangs are executable..........................Passed
check for added large files..............................................Passed
check for case conflicts.................................................Passed
check for broken symlinks................................................Passed
check yaml...............................................................Passed
detect private key.......................................................Passed
No-tabs checker..........................................................Passed
Tabs remover.............................................................Passed
Validate GitHub Workflows................................................Passed
clang-format.............................................................Passed
black....................................................................Passed
ruff check...............................................................Passed
Check doxygen headers....................................................Passed
Check license headers....................................................Passed
Check #pragma once.......................................................Passed
Check SYCL #include......................................................Passed
No ssh in git submodules remote..........................................Passed

Test pipeline can run.

Clang-tidy diff report

No relevant changes found.
Well done!

You should now go back to your normal life and enjoy a hopefully sunny day while waiting for the review.

Doxygen diff with main

Removed warnings : 67
New warnings : 68
Warnings count : 7608 → 7609 (0.0%)

Detailed changes :
+ src/shambase/include/shambase/tabulate.hpp:28: warning: Compound shambase::table is not documented.
+ src/shambase/include/shambase/tabulate.hpp:31: warning: Compound shambase::table::rulled_data is not documented.
+ src/shambase/include/shambase/tabulate.hpp:32: warning: Member colnames (variable) of struct shambase::table::rulled_data is not documented.
+ src/shambase/include/shambase/tabulate.hpp:34: warning: Member positionning (enumeration) of struct shambase::table is not documented.
+ src/shambase/include/shambase/tabulate.hpp:39: warning: Compound shambase::table::data is not documented.
+ src/shambase/include/shambase/tabulate.hpp:40: warning: Member cols (variable) of struct shambase::table::data is not documented.
+ src/shambase/include/shambase/tabulate.hpp:41: warning: Member position (variable) of struct shambase::table::data is not documented.
+ src/shambase/include/shambase/tabulate.hpp:44: warning: Member table_lines (variable) of struct shambase::table is not documented.
+ src/shambase/include/shambase/tabulate.hpp:46: warning: Member add_rule() (function) of struct shambase::table is not documented.
+ src/shambase/include/shambase/tabulate.hpp:47: warning: Member add_double_rule() (function) of struct shambase::table is not documented.
+ src/shambase/include/shambase/tabulate.hpp:48: warning: Member add_rulled_data(std::array< std::string, cols_count > colnames) (function) of struct shambase::table is not documented.
+ src/shambase/include/shambase/tabulate.hpp:51: warning: Member add_data(std::array< std::string, cols_count > cols, positionning position) (function) of struct shambase::table is not documented.
+ src/shambase/include/shambase/tabulate.hpp:55: warning: Member compute_widths() (function) of struct shambase::table is not documented.
+ src/shambase/include/shambase/tabulate.hpp:71: warning: Member render() (function) of struct shambase::table is not documented.
- src/shammodels/common/src/timestep_report.cpp:31: warning: Compound shammodels::table is not documented.
- src/shammodels/common/src/timestep_report.cpp:34: warning: Compound shammodels::table::rulled_data is not documented.
- src/shammodels/common/src/timestep_report.cpp:35: warning: Member colnames (variable) of struct shammodels::table::rulled_data is not documented.
- src/shammodels/common/src/timestep_report.cpp:37: warning: Member positionning (enumeration) of struct shammodels::table is not documented.
- src/shammodels/common/src/timestep_report.cpp:42: warning: Compound shammodels::table::data is not documented.
- src/shammodels/common/src/timestep_report.cpp:43: warning: Member cols (variable) of struct shammodels::table::data is not documented.
- src/shammodels/common/src/timestep_report.cpp:44: warning: Member position (variable) of struct shammodels::table::data is not documented.
- src/shammodels/common/src/timestep_report.cpp:47: warning: Member table_lines (variable) of struct shammodels::table is not documented.
- src/shammodels/common/src/timestep_report.cpp:49: warning: Member add_rule() (function) of struct shammodels::table is not documented.
- src/shammodels/common/src/timestep_report.cpp:50: warning: Member add_double_rule() (function) of struct shammodels::table is not documented.
- src/shammodels/common/src/timestep_report.cpp:51: warning: Member add_rulled_data(std::array< std::string, cols_count > colnames) (function) of struct shammodels::table is not documented.
- src/shammodels/common/src/timestep_report.cpp:54: warning: Member add_data(std::array< std::string, cols_count > cols, positionning position) (function) of struct shammodels::table is not documented.
- src/shammodels/common/src/timestep_report.cpp:58: warning: Member compute_widths() (function) of struct shammodels::table is not documented.
- src/shammodels/common/src/timestep_report.cpp:74: warning: Member render() (function) of struct shammodels::table is not documented.
- src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:52: warning: Member apply_setup_new(SetupNodePtr setup, bool part_reordering, std::optional< u32 > gen_count_per_step=std::nullopt, std::optional< u32 > insert_count_per_step=std::nullopt, std::optional< u64 > max_msg_count_per_rank_per_step=std::nullopt, std::optional< u64 > max_data_count_per_rank_per_step=std::nullopt, bool do_setup_log=false) (function) of class shammodels::sph::modules::SPHSetup is not documented.
+ src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:52: warning: Member apply_setup_new(SetupNodePtr setup, bool part_reordering, std::optional< u32 > gen_count_per_step=std::nullopt, std::optional< u32 > insert_count_per_step=std::nullopt, std::optional< u64 > max_msg_count_per_rank_per_step=std::nullopt, std::optional< u64 > max_data_count_per_rank_per_step=std::nullopt, std::optional< u64 > max_msg_size=std::nullopt, bool do_setup_log=false) (function) of class shammodels::sph::modules::SPHSetup is not documented.
- src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:61: warning: Member make_generator_lattice_hcp(Tscal dr, std::pair< Tvec, Tvec > box) (function) of class shammodels::sph::modules::SPHSetup is not documented.
+ src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:62: warning: Member make_generator_lattice_hcp(Tscal dr, std::pair< Tvec, Tvec > box) (function) of class shammodels::sph::modules::SPHSetup is not documented.
- src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:64: warning: Member make_generator_disc_mc(Tscal part_mass, Tscal disc_mass, Tscal r_in, Tscal r_out, std::function< Tscal(Tscal)> sigma_profile, std::function< Tscal(Tscal)> H_profile, std::function< Tscal(Tscal)> rot_profile, std::function< Tscal(Tscal)> cs_profile, std::mt19937 eng, Tscal init_h_factor) (function) of class shammodels::sph::modules::SPHSetup is not documented.
+ src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:65: warning: Member make_generator_disc_mc(Tscal part_mass, Tscal disc_mass, Tscal r_in, Tscal r_out, std::function< Tscal(Tscal)> sigma_profile, std::function< Tscal(Tscal)> H_profile, std::function< Tscal(Tscal)> rot_profile, std::function< Tscal(Tscal)> cs_profile, std::mt19937 eng, Tscal init_h_factor) (function) of class shammodels::sph::modules::SPHSetup is not documented.
- src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:76: warning: Member make_combiner_add(SetupNodePtr parent1, SetupNodePtr parent2) (function) of class shammodels::sph::modules::SPHSetup is not documented.
+ src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:77: warning: Member make_combiner_add(SetupNodePtr parent1, SetupNodePtr parent2) (function) of class shammodels::sph::modules::SPHSetup is not documented.
- src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:79: warning: Member make_modifier_warp_disc(SetupNodePtr parent, Tscal Rwarp, Tscal Hwarp, Tscal inclination, Tscal posangle) (function) of class shammodels::sph::modules::SPHSetup is not documented.
+ src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:80: warning: Member make_modifier_warp_disc(SetupNodePtr parent, Tscal Rwarp, Tscal Hwarp, Tscal inclination, Tscal posangle) (function) of class shammodels::sph::modules::SPHSetup is not documented.
- src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:82: warning: Member make_modifier_custom_warp(SetupNodePtr parent, std::function< Tscal(Tscal)> inc_profile, std::function< Tscal(Tscal)> psi_profile, std::function< Tvec(Tscal)> k_profile) (function) of class shammodels::sph::modules::SPHSetup is not documented.
+ src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:83: warning: Member make_modifier_custom_warp(SetupNodePtr parent, std::function< Tscal(Tscal)> inc_profile, std::function< Tscal(Tscal)> psi_profile, std::function< Tvec(Tscal)> k_profile) (function) of class shammodels::sph::modules::SPHSetup is not documented.
- src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:88: warning: Member make_modifier_add_offset(SetupNodePtr parent, Tvec offset_postion, Tvec offset_velocity) (function) of class shammodels::sph::modules::SPHSetup is not documented.
+ src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:89: warning: Member make_modifier_add_offset(SetupNodePtr parent, Tvec offset_postion, Tvec offset_velocity) (function) of class shammodels::sph::modules::SPHSetup is not documented.
- src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:91: warning: Member make_modifier_filter(SetupNodePtr parent, std::function< bool(Tvec)> filter) (function) of class shammodels::sph::modules::SPHSetup is not documented.
+ src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:92: warning: Member make_modifier_filter(SetupNodePtr parent, std::function< bool(Tvec)> filter) (function) of class shammodels::sph::modules::SPHSetup is not documented.
- src/shammodels/sph/src/modules/SPHSetup.cpp:186: warning: Compound SetupLog is not documented.
+ src/shammodels/sph/src/modules/SPHSetup.cpp:187: warning: Compound SetupLog is not documented.
- src/shammodels/sph/src/modules/SPHSetup.cpp:187: warning: Compound SetupLog::State is not documented.
+ src/shammodels/sph/src/modules/SPHSetup.cpp:188: warning: Compound SetupLog::State is not documented.
- src/shammodels/sph/src/modules/SPHSetup.cpp:188: warning: Member count_per_rank (variable) of struct SetupLog::State is not documented.
+ src/shammodels/sph/src/modules/SPHSetup.cpp:189: warning: Member count_per_rank (variable) of struct SetupLog::State is not documented.
- src/shammodels/sph/src/modules/SPHSetup.cpp:189: warning: Member msg_list (variable) of struct SetupLog::State is not documented.
+ src/shammodels/sph/src/modules/SPHSetup.cpp:190: warning: Member msg_list (variable) of struct SetupLog::State is not documented.
- src/shammodels/sph/src/modules/SPHSetup.cpp:190: warning: Member state (variable) of struct SetupLog is not documented.
+ src/shammodels/sph/src/modules/SPHSetup.cpp:191: warning: Member state (variable) of struct SetupLog is not documented.
- src/shammodels/sph/src/modules/SPHSetup.cpp:192: warning: Member step_counter (variable) of struct SetupLog is not documented.
+ src/shammodels/sph/src/modules/SPHSetup.cpp:193: warning: Member step_counter (variable) of struct SetupLog is not documented.
- src/shammodels/sph/src/modules/SPHSetup.cpp:194: warning: Member json_data (variable) of struct SetupLog is not documented.
+ src/shammodels/sph/src/modules/SPHSetup.cpp:195: warning: Member json_data (variable) of struct SetupLog is not documented.
- src/shammodels/sph/src/modules/SPHSetup.cpp:196: warning: Member log_state() (function) of struct SetupLog is not documented.
+ src/shammodels/sph/src/modules/SPHSetup.cpp:197: warning: Member log_state() (function) of struct SetupLog is not documented.
- src/shammodels/sph/src/modules/SPHSetup.cpp:204: warning: Member dump_state() (function) of struct SetupLog is not documented.
+ src/shammodels/sph/src/modules/SPHSetup.cpp:205: warning: Member dump_state() (function) of struct SetupLog is not documented.
- src/shammodels/sph/src/modules/SPHSetup.cpp:217: warning: Member update_count_per_rank(u64 count) (function) of struct SetupLog is not documented.
+ src/shammodels/sph/src/modules/SPHSetup.cpp:218: warning: Member update_count_per_rank(u64 count) (function) of struct SetupLog is not documented.
- src/shammodels/sph/src/modules/SPHSetup.cpp:227: warning: Member update_msg_list(std::vector< std::tuple< u32, u32, u64 > > &msg_list) (function) of struct SetupLog is not documented.
+ src/shammodels/sph/src/modules/SPHSetup.cpp:228: warning: Member update_msg_list(std::vector< std::tuple< u32, u32, u64 > > &msg_list) (function) of struct SetupLog is not documented.
- src/shammodels/sph/src/modules/SPHSetup.cpp:235: warning: Member golden_number (variable) of file SPHSetup.cpp is not documented.
+ src/shammodels/sph/src/modules/SPHSetup.cpp:236: warning: Member golden_number (variable) of file SPHSetup.cpp is not documented.
- src/shammodels/sph/src/pySPHModel.cpp:1027: warning: Member add_analysisBarycenter_instance(py::module &m, std::string name_model) (function) of file pySPHModel.cpp is not documented.
+ src/shammodels/sph/src/pySPHModel.cpp:1035: warning: Member add_analysisBarycenter_instance(py::module &m, std::string name_model) (function) of file pySPHModel.cpp is not documented.
- src/shammodels/sph/src/pySPHModel.cpp:1045: warning: Member add_analysisEnergyKinetic_instance(py::module &m, std::string name_model) (function) of file pySPHModel.cpp is not documented.
+ src/shammodels/sph/src/pySPHModel.cpp:1053: warning: Member add_analysisEnergyKinetic_instance(py::module &m, std::string name_model) (function) of file pySPHModel.cpp is not documented.
- src/shammodels/sph/src/pySPHModel.cpp:1061: warning: Member add_analysisEnergyPotential_instance(py::module &m, std::string name_model) (function) of file pySPHModel.cpp is not documented.
+ src/shammodels/sph/src/pySPHModel.cpp:1069: warning: Member add_analysisEnergyPotential_instance(py::module &m, std::string name_model) (function) of file pySPHModel.cpp is not documented.
- src/shammodels/sph/src/pySPHModel.cpp:1077: warning: Member add_analysisTotalMomentum_instance(py::module &m, std::string name_model) (function) of file pySPHModel.cpp is not documented.
+ src/shammodels/sph/src/pySPHModel.cpp:1085: warning: Member add_analysisTotalMomentum_instance(py::module &m, std::string name_model) (function) of file pySPHModel.cpp is not documented.
- src/shammodels/sph/src/pySPHModel.cpp:1095: warning: Member analysis_impl(shammodels::sph::Model< Tvec, SPHKernel > &model) -> Analysis (function) of file pySPHModel.cpp is not documented.
- src/shammodels/sph/src/pySPHModel.cpp:1100: warning: Member register_analysis_impl_for_each_kernel(py::module &msph, const char *name_class) (function) of file pySPHModel.cpp is not documented.
+ src/shammodels/sph/src/pySPHModel.cpp:1103: warning: Member analysis_impl(shammodels::sph::Model< Tvec, SPHKernel > &model) -> Analysis (function) of file pySPHModel.cpp is not documented.
+ src/shammodels/sph/src/pySPHModel.cpp:1108: warning: Member register_analysis_impl_for_each_kernel(py::module &msph, const char *name_class) (function) of file pySPHModel.cpp is not documented.
- src/shammodels/sph/src/pySPHModel.cpp:1161: warning: Member Register_pymod(pysphmodel) (function) of file pySPHModel.cpp is not documented.
+ src/shammodels/sph/src/pySPHModel.cpp:1169: warning: Member Register_pymod(pysphmodel) (function) of file pySPHModel.cpp is not documented.
+ src/shamrock/include/shamrock/patch/PatchDataField.hpp:345: warning: Member get_ids_where_recycle_buffer(sham::DeviceBuffer< u32 > &mask, Lambdacd &&cd_true, Args... args) const (function) of class PatchDataField is not documented.
- src/shamrock/include/shamrock/patch/PatchDataField.hpp:383: warning: Member get_elements_with_range(Lambdacd &&cd_true, T vmin, T vmax) (function) of class PatchDataField is not documented.
- src/shamrock/include/shamrock/patch/PatchDataField.hpp:399: warning: Member get_elements_with_range_buf(Lambdacd &&cd_true, T vmin, T vmax) (function) of class PatchDataField is not documented.
- src/shamrock/include/shamrock/patch/PatchDataField.hpp:407: warning: Member check_err_range(Lambdacd &&cd_true, T vmin, T vmax, std::string add_log="") (function) of class PatchDataField is not documented.
- src/shamrock/include/shamrock/patch/PatchDataField.hpp:409: warning: Member extract_element(u32 pidx, PatchDataField< T > &to) (function) of class PatchDataField is not documented.
- src/shamrock/include/shamrock/patch/PatchDataField.hpp:410: warning: Member extract_elements(const sham::DeviceBuffer< u32 > &idxs, PatchDataField< T > &to) (function) of class PatchDataField is not documented.
+ src/shamrock/include/shamrock/patch/PatchDataField.hpp:411: warning: Member get_elements_with_range(Lambdacd &&cd_true, T vmin, T vmax) (function) of class PatchDataField is not documented.
- src/shamrock/include/shamrock/patch/PatchDataField.hpp:412: warning: Member check_field_match(PatchDataField< T > &f2) (function) of class PatchDataField is not documented.
- src/shamrock/include/shamrock/patch/PatchDataField.hpp:414: warning: Member field_raz() (function) of class PatchDataField is not documented.
- src/shamrock/include/shamrock/patch/PatchDataField.hpp:426: warning: Member append_subset_to(sycl::buffer< u32 > &idxs_buf, u32 sz, PatchDataField &pfield) (function) of class PatchDataField is not documented.
- src/shamrock/include/shamrock/patch/PatchDataField.hpp:427: warning: Member append_subset_to(const sham::DeviceBuffer< u32 > &idxs_buf, u32 sz, PatchDataField &pfield) const (function) of class PatchDataField is not documented.
+ src/shamrock/include/shamrock/patch/PatchDataField.hpp:427: warning: Member get_elements_with_range_buf(Lambdacd &&cd_true, T vmin, T vmax) (function) of class PatchDataField is not documented.
- src/shamrock/include/shamrock/patch/PatchDataField.hpp:430: warning: Member make_new_from_subset(sycl::buffer< u32 > &idxs_buf, u32 sz) (function) of class PatchDataField is not documented.
+ src/shamrock/include/shamrock/patch/PatchDataField.hpp:435: warning: Member check_err_range(Lambdacd &&cd_true, T vmin, T vmax, std::string add_log="") (function) of class PatchDataField is not documented.
- src/shamrock/include/shamrock/patch/PatchDataField.hpp:436: warning: Member make_new_from_subset(sham::DeviceBuffer< u32 > &idxs_buf, u32 sz) (function) of class PatchDataField is not documented.
+ src/shamrock/include/shamrock/patch/PatchDataField.hpp:437: warning: Member extract_element(u32 pidx, PatchDataField< T > &to) (function) of class PatchDataField is not documented.
+ src/shamrock/include/shamrock/patch/PatchDataField.hpp:438: warning: Member extract_elements(const sham::DeviceBuffer< u32 > &idxs, PatchDataField< T > &to) (function) of class PatchDataField is not documented.
+ src/shamrock/include/shamrock/patch/PatchDataField.hpp:440: warning: Member check_field_match(PatchDataField< T > &f2) (function) of class PatchDataField is not documented.
+ src/shamrock/include/shamrock/patch/PatchDataField.hpp:442: warning: Member field_raz() (function) of class PatchDataField is not documented.
- src/shamrock/include/shamrock/patch/PatchDataField.hpp:442: warning: Member gen_mock_data(u32 obj_cnt, std::mt19937 &eng) (function) of class PatchDataField is not documented.
+ src/shamrock/include/shamrock/patch/PatchDataField.hpp:454: warning: Member append_subset_to(sycl::buffer< u32 > &idxs_buf, u32 sz, PatchDataField &pfield) (function) of class PatchDataField is not documented.
+ src/shamrock/include/shamrock/patch/PatchDataField.hpp:455: warning: Member append_subset_to(const sham::DeviceBuffer< u32 > &idxs_buf, u32 sz, PatchDataField &pfield) const (function) of class PatchDataField is not documented.
+ src/shamrock/include/shamrock/patch/PatchDataField.hpp:458: warning: Member make_new_from_subset(sycl::buffer< u32 > &idxs_buf, u32 sz) (function) of class PatchDataField is not documented.
+ src/shamrock/include/shamrock/patch/PatchDataField.hpp:464: warning: Member make_new_from_subset(sham::DeviceBuffer< u32 > &idxs_buf, u32 sz) (function) of class PatchDataField is not documented.
+ src/shamrock/include/shamrock/patch/PatchDataField.hpp:470: warning: Member gen_mock_data(u32 obj_cnt, std::mt19937 &eng) (function) of class PatchDataField is not documented.
- src/shamrock/include/shamrock/patch/PatchDataField.hpp:528: warning: Member compute_max() const (function) of class PatchDataField is not documented.
- src/shamrock/include/shamrock/patch/PatchDataField.hpp:529: warning: Member compute_min() const (function) of class PatchDataField is not documented.
- src/shamrock/include/shamrock/patch/PatchDataField.hpp:530: warning: Member compute_sum() const (function) of class PatchDataField is not documented.
- src/shamrock/include/shamrock/patch/PatchDataField.hpp:532: warning: Member compute_dot_sum() (function) of class PatchDataField is not documented.
- src/shamrock/include/shamrock/patch/PatchDataField.hpp:534: warning: Member has_nan() (function) of class PatchDataField is not documented.
- src/shamrock/include/shamrock/patch/PatchDataField.hpp:535: warning: Member has_inf() (function) of class PatchDataField is not documented.
- src/shamrock/include/shamrock/patch/PatchDataField.hpp:536: warning: Member has_nan_or_inf() (function) of class PatchDataField is not documented.
- src/shamrock/include/shamrock/patch/PatchDataField.hpp:542: warning: Member mock_field(u64 seed, u32 obj_cnt, std::string name, u32 nvar) (function) of class PatchDataField is not documented.
- src/shamrock/include/shamrock/patch/PatchDataField.hpp:543: warning: Member mock_field(u64 seed, u32 obj_cnt, std::string name, u32 nvar, T vmin, T vmax) (function) of class PatchDataField is not documented.
+ src/shamrock/include/shamrock/patch/PatchDataField.hpp:556: warning: Member compute_max() const (function) of class PatchDataField is not documented.
+ src/shamrock/include/shamrock/patch/PatchDataField.hpp:557: warning: Member compute_min() const (function) of class PatchDataField is not documented.
+ src/shamrock/include/shamrock/patch/PatchDataField.hpp:558: warning: Member compute_sum() const (function) of class PatchDataField is not documented.
+ src/shamrock/include/shamrock/patch/PatchDataField.hpp:560: warning: Member compute_dot_sum() (function) of class PatchDataField is not documented.
+ src/shamrock/include/shamrock/patch/PatchDataField.hpp:562: warning: Member has_nan() (function) of class PatchDataField is not documented.
+ src/shamrock/include/shamrock/patch/PatchDataField.hpp:563: warning: Member has_inf() (function) of class PatchDataField is not documented.
+ src/shamrock/include/shamrock/patch/PatchDataField.hpp:564: warning: Member has_nan_or_inf() (function) of class PatchDataField is not documented.
+ src/shamrock/include/shamrock/patch/PatchDataField.hpp:570: warning: Member mock_field(u64 seed, u32 obj_cnt, std::string name, u32 nvar) (function) of class PatchDataField is not documented.
+ src/shamrock/include/shamrock/patch/PatchDataField.hpp:571: warning: Member mock_field(u64 seed, u32 obj_cnt, std::string name, u32 nvar, T vmin, T vmax) (function) of class PatchDataField is not documented.
- src/shamrock/include/shamrock/patch/PatchDataField.hpp:674: warning: Compound PatchDataRangeCheckError is not documented.
- src/shamrock/include/shamrock/patch/PatchDataField.hpp:676: warning: Member PatchDataRangeCheckError(const char *message) (function) of class PatchDataRangeCheckError is not documented.
- src/shamrock/include/shamrock/patch/PatchDataField.hpp:678: warning: Member PatchDataRangeCheckError(const std::string &message) (function) of class PatchDataRangeCheckError is not documented.
- src/shamrock/include/shamrock/patch/PatchDataField.hpp:682: warning: Member what() const noexcept override (function) of class PatchDataRangeCheckError is not documented.
- src/shamrock/include/shamrock/patch/PatchDataField.hpp:685: warning: Member msg_ (variable) of class PatchDataRangeCheckError is not documented.
+ src/shamrock/include/shamrock/patch/PatchDataField.hpp:702: warning: Compound PatchDataRangeCheckError is not documented.
+ src/shamrock/include/shamrock/patch/PatchDataField.hpp:704: warning: Member PatchDataRangeCheckError(const char *message) (function) of class PatchDataRangeCheckError is not documented.
+ src/shamrock/include/shamrock/patch/PatchDataField.hpp:706: warning: Member PatchDataRangeCheckError(const std::string &message) (function) of class PatchDataRangeCheckError is not documented.
+ src/shamrock/include/shamrock/patch/PatchDataField.hpp:710: warning: Member what() const noexcept override (function) of class PatchDataRangeCheckError is not documented.
+ src/shamrock/include/shamrock/patch/PatchDataField.hpp:713: warning: Member msg_ (variable) of class PatchDataRangeCheckError is not documented.

@tdavidcl tdavidcl merged commit b5fc63d into Shamrock-code:main Dec 29, 2025
60 checks passed
@tdavidcl tdavidcl deleted the patch-2025-12-29-17-38 branch December 29, 2025 23:47
DavidFang03 pushed a commit to DavidFang03/Shamrock that referenced this pull request Jan 6, 2026
Guo-astro pushed a commit to Guo-astro/shamrock that referenced this pull request Jan 9, 2026
Guo-astro pushed a commit to Guo-astro/shamrock that referenced this pull request Jan 9, 2026
Guo-astro pushed a commit to Guo-astro/shamrock that referenced this pull request Jan 9, 2026
aserhani pushed a commit to aserhani/Shamrock that referenced this pull request Feb 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant