Skip to content

Conversation

@Guo-astro
Copy link
Contributor

Summary

This PR completes the GSPH module by adding the Model class (Python interface) and Python bindings.

Depends on: #1453 (Solver and I/O)

Files added

Model.hpp/cpp:

  • High-level Python-facing interface for GSPH simulations
  • Wraps SolverConfig and Solver for easy scripting
  • Provides methods for setup, running, and output

pyGSPHModel.cpp:

  • pybind11 bindings exposing GSPH to Python
  • Binds Model, SolverConfig, RiemannConfig, ReconstructConfig
  • Allows full simulation control from Python scripts

Usage example

import shamrock

model = shamrock.gsph.Model()
model.set_gamma(1.4)
model.set_riemann_iterative(tol=1e-6)
model.init_sod_shock_tube()
model.run(t_end=0.2)

CMakeLists.txt updates

  • Added Model.cpp and pyGSPHModel.cpp to sources

Test plan

  • Builds successfully with all previous PRs
  • Python bindings import correctly
  • Example simulation script runs successfully

@gemini-code-assist
Copy link

Summary of Changes

Hello @Guo-astro, 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 GSPH module by introducing a robust Model class and comprehensive Python bindings. These additions provide users with a high-level, scriptable interface to set up, configure, run, and analyze GSPH simulations, leveraging advanced Riemann solvers for improved accuracy in hydrodynamic problems. The changes integrate new core solver logic, detailed configuration options, and essential I/O capabilities, making the GSPH method more accessible and powerful within the framework.

Highlights

  • GSPH Model Class: Introduced a high-level C++ Model class to encapsulate GSPH simulation setup, execution, and output, simplifying the user interface.
  • Python Bindings: Comprehensive Python bindings using pybind11 are added, exposing the Model class, SolverConfig, RiemannConfig, and ReconstructConfig to enable full GSPH simulation control from Python scripts.
  • Core GSPH Implementation: The Solver class implements the Godunov SPH method, utilizing Riemann solvers for inter-particle interactions instead of artificial viscosity, which is crucial for sharper shock resolution.
  • Configurability: Detailed configuration structures (SolverConfig, RiemannConfig, ReconstructConfig) are provided for customizing various aspects of the GSPH simulation, including different Riemann solver types (iterative, HLLC), reconstruction methods (piecewise constant, MUSCL with limiters), EOS (adiabatic, isothermal), and boundary conditions (free, periodic, wall).
  • Dynamic Wall Particles: Added functionality for dynamic wall particles that update each timestep, offering robust boundary support, especially for mixed boundary conditions like shock tubes.
  • I/O and Checkpointing: Implemented modules for VTK data dumping and checkpointing (saving/loading simulation states) to facilitate analysis and long-running simulations.
  • CMake Integration: Updated CMakeLists.txt to include all new GSPH source files, ensuring proper build integration.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

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.

Copy link

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

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 introduces a comprehensive GSPH (Godunov Smoothed Particle Hydrodynamics) module, including the core solver, configuration classes, and Python bindings. The overall structure is well-organized, and the use of modern C++ features like std::variant for configuration is commendable. The Python bindings are well-documented, which will greatly aid usability.

However, the review has identified several critical and high-severity issues that need to be addressed. These include potential out-of-bounds memory access due to missing input validation, use of hardcoded constants instead of configurable parameters, and inconsistencies in the implementation of boundary conditions. There are also significant performance concerns related to inefficient data handling, code duplication, and suboptimal particle loading from checkpoints. Addressing these points will be crucial for the stability, performance, and maintainability of this new module.

@github-actions
Copy link

Workflow report

workflow report corresponding to commit c3da280
Commiter email is yona.lapeyre@ens-lyon.fr

Light CI is enabled. This will only run the basic tests and not the full tests.
Merging a PR require the job "on PR / all" to pass which is disabled in this case.

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.

Doxygen diff with main

Removed warnings : 3
New warnings : 237
Warnings count : 7433 → 7667 (3.1%)

Detailed changes :
+ src/shammodels/gsph/include/shammodels/gsph/Model.hpp:101: warning: Member resize_simulation_box(std::pair< Tvec, Tvec > box) (function) of class shammodels::gsph::Model is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Model.hpp:105: warning: Member do_vtk_dump(std::string filename, bool add_patch_world_id) (function) of class shammodels::gsph::Model is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Model.hpp:109: warning: Member get_total_part_count() (function) of class shammodels::gsph::Model is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Model.hpp:111: warning: Member total_mass_to_part_mass(f64 totmass) (function) of class shammodels::gsph::Model is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Model.hpp:113: warning: Member get_ideal_fcc_box(Tscal dr, std::pair< Tvec, Tvec > box) (function) of class shammodels::gsph::Model is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Model.hpp:114: warning: Member get_ideal_hcp_box(Tscal dr, std::pair< Tvec, Tvec > box) (function) of class shammodels::gsph::Model is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Model.hpp:116: warning: Member get_hfact() (function) of class shammodels::gsph::Model is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Model.hpp:118: warning: Member rho_h(Tscal h) (function) of class shammodels::gsph::Model is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Model.hpp:122: warning: Member add_cube_fcc_3d(Tscal dr, std::pair< Tvec, Tvec > _box) (function) of class shammodels::gsph::Model is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Model.hpp:123: warning: Member add_cube_hcp_3d(Tscal dr, std::pair< Tvec, Tvec > _box) (function) of class shammodels::gsph::Model is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Model.hpp:130: warning: Member set_field_value_lambda(std::string field_name, const std::function< T(Tvec)> pos_to_val) (function) of class shammodels::gsph::Model is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Model.hpp:166: warning: Member set_value_in_a_box(std::string field_name, T val, std::pair< Tvec, Tvec > box, u32 ivar=0) (function) of class shammodels::gsph::Model is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Model.hpp:205: warning: Member set_value_in_sphere(std::string field_name, T val, Tvec center, Tscal radius) (function) of class shammodels::gsph::Model is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Model.hpp:237: warning: Member get_sum(std::string name) (function) of class shammodels::gsph::Model is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Model.hpp:257: warning: Member gen_default_config() (function) of class shammodels::gsph::Model is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Model.hpp:266: warning: Member set_solver_config(SolverConfig cfg) (function) of class shammodels::gsph::Model is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Model.hpp:275: warning: Member solver_logs_last_rate() (function) of class shammodels::gsph::Model is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Model.hpp:276: warning: Member solver_logs_last_obj_count() (function) of class shammodels::gsph::Model is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Model.hpp:315: warning: Member load_from_dump(std::string fname) (function) of class shammodels::gsph::Model is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Model.hpp:338: warning: Member dump(std::string fname) (function) of class shammodels::gsph::Model is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Model.hpp:356: warning: Member timestep() (function) of class shammodels::gsph::Model is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Model.hpp:358: warning: Member evolve_once() (function) of class shammodels::gsph::Model is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Model.hpp:363: warning: Member evolve_until(Tscal target_time, i32 niter_max=-1) (function) of class shammodels::gsph::Model is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Model.hpp:64: warning: Member Tscal (typedef) of class shammodels::gsph::Model is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Model.hpp:65: warning: Member dim (variable) of class shammodels::gsph::Model is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Model.hpp:66: warning: Member Kernel (typedef) of class shammodels::gsph::Model is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Model.hpp:68: warning: Member Solver (typedef) of class shammodels::gsph::Model is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Model.hpp:69: warning: Member SolverConfig (typedef) of class shammodels::gsph::Model is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Model.hpp:71: warning: Member ctx (variable) of class shammodels::gsph::Model is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Model.hpp:72: warning: Member solver (variable) of class shammodels::gsph::Model is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Model.hpp:74: warning: Member Model(ShamrockCtx &ctx) (function) of class shammodels::gsph::Model is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Model.hpp:80: warning: Member init_scheduler(u32 crit_split, u32 crit_merge) (function) of class shammodels::gsph::Model is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Model.hpp:83: warning: Member get_box_dim_fcc_3d(Tscal dr, u32 xcnt, u32 ycnt, u32 zcnt) (function) of class shammodels::gsph::Model is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Model.hpp:87: warning: Member set_cfl_cour(Tscal cfl_cour) (function) of class shammodels::gsph::Model is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Model.hpp:91: warning: Member set_cfl_force(Tscal cfl_force) (function) of class shammodels::gsph::Model is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Model.hpp:95: warning: Member set_particle_mass(Tscal gpart_mass) (function) of class shammodels::gsph::Model is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Model.hpp:99: warning: Member get_particle_mass() (function) of class shammodels::gsph::Model is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:101: warning: Member build_ghost_cache() (function) of class shammodels::gsph::Solver is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:102: warning: Member clear_ghost_cache() (function) of class shammodels::gsph::Solver is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:104: warning: Member merge_position_ghost() (function) of class shammodels::gsph::Solver is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:107: warning: Member RTree (typedef) of class shammodels::gsph::Solver is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:108: warning: Member build_merged_pos_trees() (function) of class shammodels::gsph::Solver is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:109: warning: Member clear_merged_pos_trees() (function) of class shammodels::gsph::Solver is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:111: warning: Member compute_presteps_rint() (function) of class shammodels::gsph::Solver is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:112: warning: Member reset_presteps_rint() (function) of class shammodels::gsph::Solver is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:114: warning: Member start_neighbors_cache() (function) of class shammodels::gsph::Solver is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:115: warning: Member reset_neighbors_cache() (function) of class shammodels::gsph::Solver is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:117: warning: Member gsph_prestep(Tscal time_val, Tscal dt) (function) of class shammodels::gsph::Solver is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:119: warning: Member apply_position_boundary(Tscal time_val) (function) of class shammodels::gsph::Solver is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:121: warning: Member do_predictor_leapfrog(Tscal dt) (function) of class shammodels::gsph::Solver is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:123: warning: Member init_ghost_layout() (function) of class shammodels::gsph::Solver is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:125: warning: Member communicate_merge_ghosts_fields() (function) of class shammodels::gsph::Solver is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:126: warning: Member reset_merge_ghosts_fields() (function) of class shammodels::gsph::Solver is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:128: warning: Member compute_omega() (function) of class shammodels::gsph::Solver is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:129: warning: Member compute_eos_fields() (function) of class shammodels::gsph::Solver is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:130: warning: Member reset_eos_fields() (function) of class shammodels::gsph::Solver is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:132: warning: Member prepare_corrector() (function) of class shammodels::gsph::Solver is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:154: warning: Member apply_corrector(Tscal dt, u64 Npart_all) (function) of class shammodels::gsph::Solver is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:156: warning: Member update_sync_load_values() (function) of class shammodels::gsph::Solver is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:158: warning: Member Solver(ShamrockCtx &context) (function) of class shammodels::gsph::Solver is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:160: warning: Member init_solver_graph() (function) of class shammodels::gsph::Solver is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:162: warning: Member vtk_do_dump(std::string filename, bool add_patch_world_id) (function) of class shammodels::gsph::Solver is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:190: warning: Member print_timestep_logs() (function) of class shammodels::gsph::Solver is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:199: warning: Member evolve_once() (function) of class shammodels::gsph::Solver is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:201: warning: Member evolve_once_time_expl(Tscal t_current, Tscal dt_input) (function) of class shammodels::gsph::Solver is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:208: warning: Member evolve_until(Tscal target_time, i32 niter_max=-1) (function) of class shammodels::gsph::Solver is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:47: warning: Compound shammodels::gsph::TimestepLog is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:48: warning: Member rank (variable) of struct shammodels::gsph::TimestepLog is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:49: warning: Member rate (variable) of struct shammodels::gsph::TimestepLog is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:50: warning: Member npart (variable) of struct shammodels::gsph::TimestepLog is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:51: warning: Member tcompute (variable) of struct shammodels::gsph::TimestepLog is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:53: warning: Member rate_sum() (function) of struct shammodels::gsph::TimestepLog is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:54: warning: Member npart_sum() (function) of struct shammodels::gsph::TimestepLog is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:55: warning: Member tcompute_max() (function) of struct shammodels::gsph::TimestepLog is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:70: warning: Member Tscal (typedef) of class shammodels::gsph::Solver is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:71: warning: Member dim (variable) of class shammodels::gsph::Solver is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:72: warning: Member Kernel (typedef) of class shammodels::gsph::Solver is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:74: warning: Member Config (typedef) of class shammodels::gsph::Solver is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:76: warning: Member u_morton (typedef) of class shammodels::gsph::Solver is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:78: warning: Member Rkern (variable) of class shammodels::gsph::Solver is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:80: warning: Member context (variable) of class shammodels::gsph::Solver is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:81: warning: Member scheduler() (function) of class shammodels::gsph::Solver is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:83: warning: Member storage (variable) of class shammodels::gsph::Solver is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:85: warning: Member solver_config (variable) of class shammodels::gsph::Solver is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:86: warning: Member solve_logs (variable) of class shammodels::gsph::Solver is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:88: warning: Member init_required_fields() (function) of class shammodels::gsph::Solver is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:91: warning: Member gen_serial_patch_tree() (function) of class shammodels::gsph::Solver is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:92: warning: Member reset_serial_patch_tree() (function) of class shammodels::gsph::Solver is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:95: warning: Member GhostHandle (typedef) of class shammodels::gsph::Solver is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:96: warning: Member GhostHandleCache (typedef) of class shammodels::gsph::Solver is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:98: warning: Member gen_ghost_handler(Tscal time_val) (function) of class shammodels::gsph::Solver is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/Solver.hpp:99: warning: Member reset_ghost_handler() (function) of class shammodels::gsph::Solver is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:101: warning: Member Rkern (variable) of struct shammodels::gsph::SolverConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:112: warning: Member unit_sys (variable) of struct shammodels::gsph::SolverConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:114: warning: Member set_units(shamunits::UnitSystem< Tscal > new_sys) (function) of struct shammodels::gsph::SolverConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:116: warning: Member get_constant_G() const (function) of struct shammodels::gsph::SolverConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:134: warning: Member SolverStatusVar (typedef) of struct shammodels::gsph::SolverConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:135: warning: Member time_state (variable) of struct shammodels::gsph::SolverConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:137: warning: Member set_time(Tscal t) (function) of struct shammodels::gsph::SolverConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:138: warning: Member set_next_dt(Tscal dt) (function) of struct shammodels::gsph::SolverConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:139: warning: Member get_time() const (function) of struct shammodels::gsph::SolverConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:140: warning: Member get_dt() const (function) of struct shammodels::gsph::SolverConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:150: warning: Member RiemannConfig (typedef) of struct shammodels::gsph::SolverConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:151: warning: Member riemann_config (variable) of struct shammodels::gsph::SolverConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:153: warning: Member set_riemann_iterative(Tscal tol=Tscal{1e-6}, u32 max_iter=20) (function) of struct shammodels::gsph::SolverConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:157: warning: Member set_riemann_hllc() (function) of struct shammodels::gsph::SolverConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:167: warning: Member ReconstructConfig (typedef) of struct shammodels::gsph::SolverConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:168: warning: Member reconstruct_config (variable) of struct shammodels::gsph::SolverConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:170: warning: Member set_reconstruct_first_order() (function) of struct shammodels::gsph::SolverConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:172: warning: Member set_reconstruct_second_order(Tscal mach_threshold=Tscal{1.1}) (function) of struct shammodels::gsph::SolverConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:176: warning: Member requires_gradients() const (function) of struct shammodels::gsph::SolverConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:186: warning: Member EOSConfig (typedef) of struct shammodels::gsph::SolverConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:187: warning: Member eos_config (variable) of struct shammodels::gsph::SolverConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:189: warning: Member is_eos_adiabatic() const (function) of struct shammodels::gsph::SolverConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:194: warning: Member is_eos_isothermal() const (function) of struct shammodels::gsph::SolverConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:199: warning: Member set_eos_adiabatic(Tscal _gamma) (function) of struct shammodels::gsph::SolverConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:204: warning: Member set_eos_isothermal(Tscal cs) (function) of struct shammodels::gsph::SolverConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:214: warning: Member BCConfig (typedef) of struct shammodels::gsph::SolverConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:215: warning: Member boundary_config (variable) of struct shammodels::gsph::SolverConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:217: warning: Member set_boundary_free() (function) of struct shammodels::gsph::SolverConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:218: warning: Member set_boundary_periodic() (function) of struct shammodels::gsph::SolverConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:248: warning: Member ExtForceConfig (typedef) of struct shammodels::gsph::SolverConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:249: warning: Member ext_force_config (variable) of struct shammodels::gsph::SolverConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:251: warning: Member add_ext_force_point_mass(Tscal central_mass, Tscal Racc) (function) of struct shammodels::gsph::SolverConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:263: warning: Member tree_reduction_level (variable) of struct shammodels::gsph::SolverConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:264: warning: Member use_two_stage_search (variable) of struct shammodels::gsph::SolverConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:266: warning: Member set_tree_reduction_level(u32 level) (function) of struct shammodels::gsph::SolverConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:267: warning: Member set_two_stage_search(bool enable) (function) of struct shammodels::gsph::SolverConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:287: warning: Member has_field_uint() const (function) of struct shammodels::gsph::SolverConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:289: warning: Member print_status() (function) of struct shammodels::gsph::SolverConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:302: warning: Member check_config() const (function) of struct shammodels::gsph::SolverConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:309: warning: Member check_config_runtime() const (function) of struct shammodels::gsph::SolverConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:318: warning: Member set_layout(shamrock::patch::PatchDataLayerLayout &pdl) (function) of struct shammodels::gsph::SolverConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:319: warning: Member set_ghost_layout(shamrock::patch::PatchDataLayerLayout &ghost_layout) (function) of struct shammodels::gsph::SolverConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:325: warning: Member to_json(nlohmann::json &j, const CFLConfig< Tscal > &p) (function) of namespace shammodels::gsph is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:333: warning: Member from_json(const nlohmann::json &j, CFLConfig< Tscal > &p) (function) of namespace shammodels::gsph is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:339: warning: Member to_json(nlohmann::json &j, const SolverStatusVar< Tvec > &p) (function) of namespace shammodels::gsph is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:347: warning: Member from_json(const nlohmann::json &j, SolverStatusVar< Tvec > &p) (function) of namespace shammodels::gsph is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:354: warning: Member to_json(nlohmann::json &j, const SolverConfig< Tvec, SPHKernel > &p) (function) of namespace shammodels::gsph is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:388: warning: Member from_json(const nlohmann::json &j, SolverConfig< Tvec, SPHKernel > &p) (function) of namespace shammodels::gsph is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:85: warning: Member Tscal (typedef) of struct shammodels::gsph::SolverStatusVar is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:94: warning: Member Tscal (typedef) of struct shammodels::gsph::SolverConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:95: warning: Member dim (variable) of struct shammodels::gsph::SolverConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:96: warning: Member Kernel (typedef) of struct shammodels::gsph::SolverConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:97: warning: Member u_morton (typedef) of struct shammodels::gsph::SolverConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/SolverConfig.hpp:99: warning: Member RTree (typedef) of struct shammodels::gsph::SolverConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/config/ReconstructConfig.hpp:118: warning: Member to_json(nlohmann::json &j, const ReconstructConfig< Tvec > &p) (function) of namespace shammodels::gsph is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/config/ReconstructConfig.hpp:138: warning: Member from_json(const nlohmann::json &j, ReconstructConfig< Tvec > &p) (function) of namespace shammodels::gsph is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/config/ReconstructConfig.hpp:56: warning: Member Tscal (typedef) of struct shammodels::gsph::ReconstructConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/config/ReconstructConfig.hpp:57: warning: Member dim (variable) of struct shammodels::gsph::ReconstructConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/config/ReconstructConfig.hpp:83: warning: Member Variant (typedef) of struct shammodels::gsph::ReconstructConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/config/ReconstructConfig.hpp:85: warning: Member config (variable) of struct shammodels::gsph::ReconstructConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/config/ReconstructConfig.hpp:87: warning: Member set(Variant v) (function) of struct shammodels::gsph::ReconstructConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/config/ReconstructConfig.hpp:89: warning: Member set_first_order() (function) of struct shammodels::gsph::ReconstructConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/config/ReconstructConfig.hpp:91: warning: Member set_second_order(Tscal mach_threshold=Tscal{1.1}) (function) of struct shammodels::gsph::ReconstructConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/config/ReconstructConfig.hpp:93: warning: Member is_first_order() const (function) of struct shammodels::gsph::ReconstructConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/config/ReconstructConfig.hpp:95: warning: Member is_second_order() const (function) of struct shammodels::gsph::ReconstructConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/config/ReconstructConfig.hpp:97: warning: Member requires_gradients() const (function) of struct shammodels::gsph::ReconstructConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/config/ReconstructConfig.hpp:99: warning: Member print_status() const (function) of struct shammodels::gsph::ReconstructConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/config/RiemannConfig.hpp:100: warning: Member Variant (typedef) of struct shammodels::gsph::RiemannConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/config/RiemannConfig.hpp:102: warning: Member config (variable) of struct shammodels::gsph::RiemannConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/config/RiemannConfig.hpp:104: warning: Member set(Variant v) (function) of struct shammodels::gsph::RiemannConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/config/RiemannConfig.hpp:106: warning: Member set_iterative(Tscal tol=Tscal{1.0e-6}, u32 max_iter=20) (function) of struct shammodels::gsph::RiemannConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/config/RiemannConfig.hpp:110: warning: Member set_exact(Tscal tol=Tscal{1.0e-8}) (function) of struct shammodels::gsph::RiemannConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/config/RiemannConfig.hpp:112: warning: Member set_hllc() (function) of struct shammodels::gsph::RiemannConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/config/RiemannConfig.hpp:114: warning: Member set_roe(Tscal entropy_fix=Tscal{0.1}) (function) of struct shammodels::gsph::RiemannConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/config/RiemannConfig.hpp:116: warning: Member is_iterative() const (function) of struct shammodels::gsph::RiemannConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/config/RiemannConfig.hpp:117: warning: Member is_exact() const (function) of struct shammodels::gsph::RiemannConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/config/RiemannConfig.hpp:118: warning: Member is_hllc() const (function) of struct shammodels::gsph::RiemannConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/config/RiemannConfig.hpp:119: warning: Member is_roe() const (function) of struct shammodels::gsph::RiemannConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/config/RiemannConfig.hpp:121: warning: Member print_status() const (function) of struct shammodels::gsph::RiemannConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/config/RiemannConfig.hpp:147: warning: Member to_json(nlohmann::json &j, const RiemannConfig< Tvec > &p) (function) of namespace shammodels::gsph is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/config/RiemannConfig.hpp:180: warning: Member from_json(const nlohmann::json &j, RiemannConfig< Tvec > &p) (function) of namespace shammodels::gsph is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/config/RiemannConfig.hpp:54: warning: Member Tscal (typedef) of struct shammodels::gsph::RiemannConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/config/RiemannConfig.hpp:55: warning: Member dim (variable) of struct shammodels::gsph::RiemannConfig is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/IterateSmoothingLengthDensity.hpp:58: warning: Member IterateSmoothingLengthDensity(Tscal gpart_mass, Tscal h_evol_max, Tscal h_evol_iter_max) (function) of class shammodels::gsph::modules::IterateSmoothingLengthDensity is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/IterateSmoothingLengthDensity.hpp:61: warning: Compound shammodels::gsph::modules::IterateSmoothingLengthDensity::Edges is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/IterateSmoothingLengthDensity.hpp:62: warning: Member sizes (variable) of struct shammodels::gsph::modules::IterateSmoothingLengthDensity::Edges is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/IterateSmoothingLengthDensity.hpp:63: warning: Member neigh_cache (variable) of struct shammodels::gsph::modules::IterateSmoothingLengthDensity::Edges is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/IterateSmoothingLengthDensity.hpp:64: warning: Member positions (variable) of struct shammodels::gsph::modules::IterateSmoothingLengthDensity::Edges is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/IterateSmoothingLengthDensity.hpp:65: warning: Member old_h (variable) of struct shammodels::gsph::modules::IterateSmoothingLengthDensity::Edges is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/IterateSmoothingLengthDensity.hpp:66: warning: Member new_h (variable) of struct shammodels::gsph::modules::IterateSmoothingLengthDensity::Edges is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/IterateSmoothingLengthDensity.hpp:67: warning: Member eps_h (variable) of struct shammodels::gsph::modules::IterateSmoothingLengthDensity::Edges is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/IterateSmoothingLengthDensity.hpp:68: warning: Member density (variable) of struct shammodels::gsph::modules::IterateSmoothingLengthDensity::Edges is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/IterateSmoothingLengthDensity.hpp:69: warning: Member omega (variable) of struct shammodels::gsph::modules::IterateSmoothingLengthDensity::Edges is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/IterateSmoothingLengthDensity.hpp:72: warning: Member set_edges(std::shared_ptr< shamrock::solvergraph::Indexes< u32 > > sizes, std::shared_ptr< shammodels::sph::solvergraph::NeighCache > neigh_cache, std::shared_ptr< shamrock::solvergraph::IFieldSpan< Tvec > > positions, std::shared_ptr< shamrock::solvergraph::IFieldSpan< Tscal > > old_h, std::shared_ptr< shamrock::solvergraph::IFieldSpan< Tscal > > new_h, std::shared_ptr< shamrock::solvergraph::IFieldSpan< Tscal > > eps_h, std::shared_ptr< shamrock::solvergraph::Field< Tscal > > density, std::shared_ptr< shamrock::solvergraph::Field< Tscal > > omega) (function) of class shammodels::gsph::modules::IterateSmoothingLengthDensity is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/IterateSmoothingLengthDensity.hpp:85: warning: Member get_edges() (function) of class shammodels::gsph::modules::IterateSmoothingLengthDensity is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/SolverStorage.hpp:107: warning: Member merged_patchdata_ghost (variable) of struct shammodels::gsph::SolverStorage is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/SolverStorage.hpp:114: warning: Member soundspeed (variable) of struct shammodels::gsph::SolverStorage is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/SolverStorage.hpp:123: warning: Member old_duint (variable) of struct shammodels::gsph::SolverStorage is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/SolverStorage.hpp:127: warning: Member interface (variable) of struct shammodels::gsph::SolverStorage::Timings is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/SolverStorage.hpp:128: warning: Member neighbors (variable) of struct shammodels::gsph::SolverStorage::Timings is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/SolverStorage.hpp:129: warning: Member io (variable) of struct shammodels::gsph::SolverStorage::Timings is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/SolverStorage.hpp:132: warning: Member reset() (function) of struct shammodels::gsph::SolverStorage::Timings is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/SolverStorage.hpp:133: warning: Member timings_details (variable) of struct shammodels::gsph::SolverStorage is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/SolverStorage.hpp:47: warning: Member Component (typedef) of namespace shammodels::gsph is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/SolverStorage.hpp:63: warning: Member Tscal (typedef) of struct shammodels::gsph::SolverStorage is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/SolverStorage.hpp:64: warning: Member dim (variable) of struct shammodels::gsph::SolverStorage is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/SolverStorage.hpp:67: warning: Member GhostHandle (typedef) of struct shammodels::gsph::SolverStorage is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/SolverStorage.hpp:68: warning: Member GhostHandleCache (typedef) of struct shammodels::gsph::SolverStorage is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/SolverStorage.hpp:70: warning: Member RTree (typedef) of struct shammodels::gsph::SolverStorage is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/SolverStorage.hpp:74: warning: Member part_counts_with_ghost (variable) of struct shammodels::gsph::SolverStorage is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/SolverStorage.hpp:78: warning: Member hpart_with_ghosts (variable) of struct shammodels::gsph::SolverStorage is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/SolverStorage.hpp:91: warning: Member ghost_patch_cache (variable) of struct shammodels::gsph::SolverStorage is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/SolverStorage.hpp:99: warning: Member rtree_rint_field (variable) of struct shammodels::gsph::SolverStorage is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/UpdateDerivs.hpp:53: warning: Member Tscal (typedef) of class shammodels::gsph::modules::UpdateDerivs is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/UpdateDerivs.hpp:54: warning: Member dim (variable) of class shammodels::gsph::modules::UpdateDerivs is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/UpdateDerivs.hpp:55: warning: Member Kernel (typedef) of class shammodels::gsph::modules::UpdateDerivs is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/UpdateDerivs.hpp:57: warning: Member Config (typedef) of class shammodels::gsph::modules::UpdateDerivs is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/UpdateDerivs.hpp:58: warning: Member Storage (typedef) of class shammodels::gsph::modules::UpdateDerivs is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/UpdateDerivs.hpp:60: warning: Member context (variable) of class shammodels::gsph::modules::UpdateDerivs is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/UpdateDerivs.hpp:61: warning: Member solver_config (variable) of class shammodels::gsph::modules::UpdateDerivs is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/UpdateDerivs.hpp:62: warning: Member storage (variable) of class shammodels::gsph::modules::UpdateDerivs is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/UpdateDerivs.hpp:64: warning: Member UpdateDerivs(ShamrockCtx &context, Config &solver_config, Storage &storage) (function) of class shammodels::gsph::modules::UpdateDerivs is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/io/GSPHCheckpoint.hpp:51: warning: Member Tscal (typedef) of class shammodels::gsph::modules::GSPHCheckpoint is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/io/GSPHCheckpoint.hpp:52: warning: Member dim (variable) of class shammodels::gsph::modules::GSPHCheckpoint is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/io/GSPHCheckpoint.hpp:54: warning: Member Config (typedef) of class shammodels::gsph::modules::GSPHCheckpoint is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/io/GSPHCheckpoint.hpp:56: warning: Member context (variable) of class shammodels::gsph::modules::GSPHCheckpoint is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/io/GSPHCheckpoint.hpp:57: warning: Member solver_config (variable) of class shammodels::gsph::modules::GSPHCheckpoint is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/io/GSPHCheckpoint.hpp:59: warning: Member GSPHCheckpoint(ShamrockCtx &context, Config &solver_config) (function) of class shammodels::gsph::modules::GSPHCheckpoint is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/io/VTKDump.hpp:27: warning: Compound shammodels::gsph::modules::VTKDump is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/io/VTKDump.hpp:29: warning: Member Tscal (typedef) of class shammodels::gsph::modules::VTKDump is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/io/VTKDump.hpp:30: warning: Member dim (variable) of class shammodels::gsph::modules::VTKDump is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/io/VTKDump.hpp:31: warning: Member Kernel (typedef) of class shammodels::gsph::modules::VTKDump is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/io/VTKDump.hpp:33: warning: Member Config (typedef) of class shammodels::gsph::modules::VTKDump is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/io/VTKDump.hpp:35: warning: Member context (variable) of class shammodels::gsph::modules::VTKDump is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/io/VTKDump.hpp:36: warning: Member solver_config (variable) of class shammodels::gsph::modules::VTKDump is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/io/VTKDump.hpp:38: warning: Member VTKDump(ShamrockCtx &context, Config &solver_config) (function) of class shammodels::gsph::modules::VTKDump is not documented.
+ src/shammodels/gsph/include/shammodels/gsph/modules/io/VTKDump.hpp:41: warning: Member do_dump(std::string filename, bool add_patch_world_id) (function) of class shammodels::gsph::modules::VTKDump is not documented.
+ src/shammodels/gsph/src/Solver.cpp:519: warning: documented symbol 'u64 shammodels::gsph::Solver< Tvec, Kern >::update_wall_particles' was not declared or defined.
+ src/shammodels/gsph/src/pyGSPHModel.cpp:304: warning: Member Register_pymod(pygsphmodel) (function) of file pyGSPHModel.cpp is not documented.
+ src/shammodels/gsph/src/pyGSPHModel.cpp:38: warning: Member add_gsph_instance(py::module &m, std::string name_config, std::string name_model) (function) of file pyGSPHModel.cpp is not documented.
+ src/shamrock/include/shamrock/solvergraph/INode.hpp:103: warning: Member get_rw_edge_base(int slot) const (function) of class shamrock::solvergraph::INode is not documented.
+ src/shamrock/include/shamrock/solvergraph/INode.hpp:94: warning: Member get_ro_edge_base(int slot) const (function) of class shamrock::solvergraph::INode is not documented.

Adds main solver class and VTK output for GSPH:

Solver.hpp/cpp:
- Main GSPH solver orchestrating the simulation
- Predictor-corrector time integration (leapfrog)
- Ghost particle exchange via SPH's BasicSPHGhostHandler
- Neighbor search using compressed BVH trees
- Timestep calculation based on CFL and signal velocity

modules/io/VTKDump.hpp/cpp:
- VTK Legacy format output for visualization
- Outputs positions, velocity, density, pressure, internal energy
- Compatible with ParaView

SPH code reuse (no duplication):
- IterateSmoothingLengthDensity: uses SPH's module for h-iteration
- LoopSmoothingLengthIter: uses SPH's outer loop
- Ghost handling: BasicSPHGhostHandler for all BC types
- Forces: sph_pressure_symetric() with Riemann solver pressure
- Density utilities: rho_h(), h_rho(), newtown_iterate_new_h()
- Safe division: inv_sat_zero() for numerical stability

Performance improvement:
- Density/omega computed ONCE after h converges (not on every iteration)
- Previous approach recomputed density/omega 10+ times wastefully

Fixes compatibility with main:
- Use get_eos_gamma() instead of gamma member variable
- Stub checkpoint methods (GSPHCheckpoint to be added separately)
- Add Model.hpp/cpp with high-level GSPH interface
- Add pyGSPHModel.cpp with pybind11 bindings for Python
- Use shared ShamrockDump mechanism for checkpoints (same as SPH)
- Remove duplicate GSPHCheckpoint (reuse SPH pattern)
- Add example scripts for Sod shock tube and Sedov blast
- Add analytical Riemann solver utilities for validation
- Clean up ad-hoc comments in Model.cpp
@Guo-astro
Copy link
Contributor Author

Merged into PR #1453 for a cleaner single PR with all GSPH changes.

@Guo-astro Guo-astro closed this Dec 26, 2025
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.

2 participants