![]() |
Shamrock 2025.10.0
Astrophysical Code
|
The shamrock SPH model. More...
#include <shammodels/sph/include/shammodels/sph/Solver.hpp>
Classes | |
| struct | SolverStepCallback |
Public Types | |
| using | Tscal = shambase::VecComponent<Tvec> |
| using | Kernel = SPHKernel<Tscal> |
| using | Config = SolverConfig<Tvec, SPHKernel> |
| using | u_morton = typename Config::u_morton |
| using | GhostHandle = sph::BasicSPHGhostHandler<Tvec> |
| using | GhostHandleCache = typename GhostHandle::CacheMap |
| using | RTree = typename Config::RTree |
Public Member Functions | |
| PatchScheduler & | scheduler () |
| void | init_required_fields () |
| void | gen_serial_patch_tree () |
| void | reset_serial_patch_tree () |
| void | gen_ghost_handler (Tscal time_val) |
| void | reset_ghost_handler () |
| void | build_ghost_cache () |
| Builds ghost particle interface cache for inter-patch communication. | |
| void | clear_ghost_cache () |
| Clears ghost particle cache to free memory. | |
| void | merge_position_ghost () |
| Merges ghost particle positions from neighboring patches. | |
| void | build_merged_pos_trees () |
| Builds spatial BVH trees for merged positions including ghosts. | |
| void | clear_merged_pos_trees () |
| Clears merged position trees to free memory. | |
| void | compute_presteps_rint () |
| Computes maximum smoothing length in tree nodes for neighbor search. | |
| void | reset_presteps_rint () |
| Resets tree radius interval field. | |
| void | start_neighbors_cache () |
| Builds neighbor particle cache for SPH calculations. | |
| void | reset_neighbors_cache () |
| Resets neighbor cache. | |
| void | sph_prestep (Tscal time_val, Tscal dt) |
| Performs pre-step operations for SPH timestep. | |
| void | apply_position_boundary (Tscal time_val) |
| Applies position-based boundary conditions. | |
| void | update_artificial_viscosity (Tscal dt) |
| Updates artificial viscosity coefficients for shock capturing. | |
| void | init_ghost_layout () |
| Initializes data layout for ghost particle fields. | |
| void | communicate_merge_ghosts_fields () |
| Communicates and merges ghost particle fields across processes. | |
| void | reset_merge_ghosts_fields () |
| Resets merged ghost field data. | |
| void | compute_eos_fields () |
| Computes equation of state fields (pressure, sound speed). | |
| void | reset_eos_fields () |
| Frees memory allocated for EOS fields. | |
| void | prepare_corrector () |
| Saves old derivative fields for predictor-corrector integration. | |
| void | update_derivs (Tscal dt_hydro) |
| Updates time derivatives and applies external forces. | |
| bool | apply_corrector (Tscal dt, u64 Npart_all) |
| void | update_sync_load_values () |
| Updates load balancing values and synchronizes patch ownership. | |
| Solver (ShamrockCtx &context) | |
| void | init_solver_graph () |
| Initializes the solver graph for computation pipeline. | |
| void | vtk_do_dump (std::string filename, bool add_patch_world_id) |
| Writes VTK dump file for visualization. | |
| void | set_debug_dump (bool _do_debug_dump, std::string _debug_dump_filename) |
| void | print_timestep_logs () |
| TimestepLog | evolve_once () |
| Performs one complete SPH timestep evolution. | |
| Tscal | evolve_once_time_expl (Tscal t_current, Tscal dt_input) |
| Evolves system by one explicit timestep with specified time and dt. | |
| EvolveUntilResults | evolve_until (Tscal target_time, i32 niter_max, f64 max_walltime=-1) |
Public Attributes | |
| ShamrockCtx & | context |
| SolverStorage< Tvec, u_morton > | storage {} |
| Config | solver_config |
| SolverLog | solve_logs |
| std::vector< SolverStepCallback > | timestep_callbacks {} |
Static Public Attributes | |
| static constexpr u32 | dim = shambase::VectorProperties<Tvec>::dimension |
| static constexpr Tscal | Rkern = Kernel::Rkern |
The shamrock SPH model.
| Tvec | |
| SPHKernel |
Definition at line 70 of file Solver.hpp.
| using shammodels::sph::Solver< Tvec, SPHKernel >::Config = SolverConfig<Tvec, SPHKernel> |
Definition at line 76 of file Solver.hpp.
| using shammodels::sph::Solver< Tvec, SPHKernel >::GhostHandle = sph::BasicSPHGhostHandler<Tvec> |
Definition at line 103 of file Solver.hpp.
| using shammodels::sph::Solver< Tvec, SPHKernel >::GhostHandleCache = typename GhostHandle::CacheMap |
Definition at line 104 of file Solver.hpp.
| using shammodels::sph::Solver< Tvec, SPHKernel >::Kernel = SPHKernel<Tscal> |
Definition at line 74 of file Solver.hpp.
| using shammodels::sph::Solver< Tvec, SPHKernel >::RTree = typename Config::RTree |
Definition at line 161 of file Solver.hpp.
| using shammodels::sph::Solver< Tvec, SPHKernel >::Tscal = shambase::VecComponent<Tvec> |
Definition at line 72 of file Solver.hpp.
| using shammodels::sph::Solver< Tvec, SPHKernel >::u_morton = typename Config::u_morton |
Definition at line 78 of file Solver.hpp.
|
inline |
Definition at line 215 of file Solver.hpp.
| bool shammodels::sph::Solver< Tvec, Kern >::apply_corrector | ( | Tscal | dt, |
| u64 | Npart_all ) |
Definition at line 1560 of file Solver.cpp.
| void shammodels::sph::Solver< Tvec, Kern >::apply_position_boundary | ( | Tscal | time_val | ) |
Applies position-based boundary conditions.
Applies position boundary conditions to the particles.
| time_val | the current time value |
Definition at line 775 of file Solver.cpp.
| void shammodels::sph::Solver< Tvec, Kern >::build_ghost_cache | ( | ) |
Builds ghost particle interface cache for inter-patch communication.
Definition at line 821 of file Solver.cpp.
| void shammodels::sph::Solver< Tvec, Kern >::build_merged_pos_trees | ( | ) |
Builds spatial BVH trees for merged positions including ghosts.
Definition at line 886 of file Solver.cpp.
| void shammodels::sph::Solver< Tvec, Kern >::clear_ghost_cache | ( | ) |
Clears ghost particle cache to free memory.
Definition at line 837 of file Solver.cpp.
| void shammodels::sph::Solver< Tvec, Kern >::clear_merged_pos_trees | ( | ) |
Clears merged position trees to free memory.
Definition at line 891 of file Solver.cpp.
| void shammodels::sph::Solver< Tvec, Kern >::communicate_merge_ghosts_fields | ( | ) |
Communicates and merges ghost particle fields across processes.
Definition at line 1231 of file Solver.cpp.
| void shammodels::sph::Solver< Tvec, Kern >::compute_eos_fields | ( | ) |
Computes equation of state fields (pressure, sound speed).
Definition at line 1493 of file Solver.cpp.
| void shammodels::sph::Solver< Tvec, Kern >::compute_presteps_rint | ( | ) |
Computes maximum smoothing length in tree nodes for neighbor search.
Definition at line 1159 of file Solver.cpp.
| shammodels::sph::TimestepLog shammodels::sph::Solver< Tvec, Kern >::evolve_once | ( | ) |
Performs one complete SPH timestep evolution.
patch_rank_owner is automatically updated since it is just a lambda
must be after the mpi timer to not count the barrier of the system metrics
Definition at line 1623 of file Solver.cpp.
|
inline |
Evolves system by one explicit timestep with specified time and dt.
Definition at line 238 of file Solver.hpp.
|
inline |
Definition at line 245 of file Solver.hpp.
|
inline |
Definition at line 106 of file Solver.hpp.
| void shammodels::sph::Solver< Tvec, Kern >::gen_serial_patch_tree | ( | ) |
Definition at line 761 of file Solver.cpp.
| void shammodels::sph::Solver< Tvec, Kern >::init_ghost_layout | ( | ) |
Initializes data layout for ghost particle fields.
Definition at line 1144 of file Solver.cpp.
|
inline |
Definition at line 96 of file Solver.hpp.
| void shammodels::sph::Solver< Tvec, Kern >::init_solver_graph | ( | ) |
Initializes the solver graph for computation pipeline.
Definition at line 112 of file Solver.cpp.
| void shammodels::sph::Solver< Tvec, Kern >::merge_position_ghost | ( | ) |
Merges ghost particle positions from neighboring patches.
Definition at line 843 of file Solver.cpp.
| void shammodels::sph::Solver< Tvec, Kern >::prepare_corrector | ( | ) |
Saves old derivative fields for predictor-corrector integration.
Definition at line 1505 of file Solver.cpp.
|
inline |
Definition at line 227 of file Solver.hpp.
| void shammodels::sph::Solver< Tvec, Kern >::reset_eos_fields | ( | ) |
Frees memory allocated for EOS fields.
Definition at line 1499 of file Solver.cpp.
|
inline |
Definition at line 150 of file Solver.hpp.
| void shammodels::sph::Solver< Tvec, Kern >::reset_merge_ghosts_fields | ( | ) |
Resets merged ghost field data.
Definition at line 1473 of file Solver.cpp.
| void shammodels::sph::Solver< Tvec, Kern >::reset_neighbors_cache | ( | ) |
Resets neighbor cache.
Definition at line 1226 of file Solver.cpp.
| void shammodels::sph::Solver< Tvec, Kern >::reset_presteps_rint | ( | ) |
Resets tree radius interval field.
Definition at line 1196 of file Solver.cpp.
|
inline |
Definition at line 100 of file Solver.hpp.
|
inline |
Definition at line 83 of file Solver.hpp.
|
inline |
Definition at line 223 of file Solver.hpp.
| void shammodels::sph::Solver< Tvec, Kern >::sph_prestep | ( | Tscal | time_val, |
| Tscal | dt ) |
Performs pre-step operations for SPH timestep.
Definition at line 897 of file Solver.cpp.
| void shammodels::sph::Solver< Tvec, Kern >::start_neighbors_cache | ( | ) |
Builds neighbor particle cache for SPH calculations.
Definition at line 1201 of file Solver.cpp.
| void shammodels::sph::Solver< Tvec, Kern >::update_artificial_viscosity | ( | Tscal | dt | ) |
Updates artificial viscosity coefficients for shock capturing.
Definition at line 1482 of file Solver.cpp.
| void shammodels::sph::Solver< Tvec, Kern >::update_derivs | ( | Tscal | dt_hydro | ) |
Updates time derivatives and applies external forces.
Definition at line 1550 of file Solver.cpp.
| void shammodels::sph::Solver< Tvec, Kern >::update_sync_load_values | ( | ) |
Updates load balancing values and synchronizes patch ownership.
Definition at line 1565 of file Solver.cpp.
| void shammodels::sph::Solver< Tvec, Kern >::vtk_do_dump | ( | std::string | filename, |
| bool | add_patch_world_id ) |
Writes VTK dump file for visualization.
Definition at line 598 of file Solver.cpp.
| ShamrockCtx& shammodels::sph::Solver< Tvec, SPHKernel >::context |
Definition at line 82 of file Solver.hpp.
|
staticconstexpr |
Definition at line 73 of file Solver.hpp.
|
staticconstexpr |
Definition at line 80 of file Solver.hpp.
| SolverLog shammodels::sph::Solver< Tvec, SPHKernel >::solve_logs |
Definition at line 88 of file Solver.hpp.
| Config shammodels::sph::Solver< Tvec, SPHKernel >::solver_config |
Definition at line 87 of file Solver.hpp.
| SolverStorage<Tvec, u_morton> shammodels::sph::Solver< Tvec, SPHKernel >::storage {} |
Definition at line 85 of file Solver.hpp.
| std::vector<SolverStepCallback> shammodels::sph::Solver< Tvec, SPHKernel >::timestep_callbacks {} |
Definition at line 94 of file Solver.hpp.