numerics
Loading...
Searching...
No Matches
impl.hpp
Go to the documentation of this file.
1/// @file backends/seq/impl.hpp
2/// @brief Private declarations for the sequential 3D SPH backend.
3/// Only included by apps/fluid_sim_3d/fluid3d.cpp (dispatch).
4#pragma once
5
6#include "particle3d.hpp"
7#include "rigid_body3d.hpp"
8#include "spatial_hash3d.hpp"
9#include "fluid3d.hpp"
10#include "heat3d.hpp"
11#include <vector>
12
13namespace physics::backends::seq {
14
15void compute_density_pressure(std::vector<Particle3D>& particles,
16 const FluidParams3D& params,
17 const SpatialHash3D& grid);
18
19void compute_forces(std::vector<Particle3D>& particles,
20 const FluidParams3D& params,
21 const SpatialHash3D& grid);
22
23void body_collisions(std::vector<Particle3D>& particles,
24 const std::vector<RigidBody3D>& bodies,
25 const FluidParams3D& params);
26
27void integrate(std::vector<Particle3D>& particles, const FluidParams3D& params);
28
29void enforce_boundaries(std::vector<Particle3D>& particles, const FluidParams3D& params);
30
31void update_temp_range(const std::vector<Particle3D>& particles,
32 const std::vector<RigidBody3D>& bodies,
33 float& T_min, float& T_max);
34
35void integrate_bodies(std::vector<RigidBody3D>& bodies, const FluidParams3D& params);
36
37void heat_compute(std::vector<Particle3D>& particles,
38 const std::vector<RigidBody3D>& bodies,
39 const SpatialHash3D& grid,
40 const HeatParams3D& params);
41
42} // namespace physics::backends::seq
3D WCSPH fluid solver – public interface and dispatch hub
Heat transfer parameters for the 3D SPH backends.
void enforce_boundaries(std::vector< Particle > &particles, const FluidParams &params)
Definition fluid.cpp:119
void body_collisions(std::vector< Particle > &particles, const std::vector< RigidBody > &bodies, const FluidParams &params)
Definition fluid.cpp:87
void integrate(std::vector< Particle > &particles, const FluidParams &params)
Definition fluid.cpp:108
void compute_density_pressure(std::vector< Particle > &particles, const FluidParams &params, const SpatialHash &grid)
Newton's 3rd law pair traversal – O(n*k/2).
Definition fluid.cpp:19
void heat_compute(std::vector< Particle > &particles, const std::vector< RigidBody > &bodies, const SpatialHash &grid, const HeatParams &params)
Definition heat.cpp:11
void update_temp_range(const std::vector< Particle > &particles, const std::vector< RigidBody > &bodies, float &T_min, float &T_max)
Definition fluid.cpp:129
void integrate_bodies(std::vector< RigidBody > &bodies, const FluidParams &params)
Definition fluid.cpp:144
void compute_forces(std::vector< Particle > &particles, const FluidParams &params, const SpatialHash &grid)
Newton's 3rd law pair traversal – O(n*k/2).
Definition fluid.cpp:50
3D SPH neighbour search – powered by num::CellList3D