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 SPH backend.
3/// Only included by apps/fluid_sim/fluid.cpp and heat.cpp (dispatch).
4#pragma once
5
6#include "particle.hpp"
7#include "rigid_body.hpp"
8#include "spatial_hash.hpp"
9#include "fluid.hpp"
10#include "heat.hpp"
11#include <vector>
12
13namespace physics::backends::seq {
14
15/// Newton's 3rd law pair traversal -- O(n*k/2).
16void compute_density_pressure(std::vector<Particle>& particles,
17 const FluidParams& params,
18 const SpatialHash& grid);
19
20/// Newton's 3rd law pair traversal -- O(n*k/2).
21void compute_forces(std::vector<Particle>& particles,
22 const FluidParams& params,
23 const SpatialHash& grid);
24
25void body_collisions(std::vector<Particle>& particles,
26 const std::vector<RigidBody>& bodies,
27 const FluidParams& params);
28
29void integrate(std::vector<Particle>& particles, const FluidParams& params);
30
31void enforce_boundaries(std::vector<Particle>& particles, const FluidParams& params);
32
33void update_temp_range(const std::vector<Particle>& particles,
34 const std::vector<RigidBody>& bodies,
35 float& T_min, float& T_max);
36
37void integrate_bodies(std::vector<RigidBody>& bodies, const FluidParams& params);
38
39void heat_compute(std::vector<Particle>& particles,
40 const std::vector<RigidBody>& bodies,
41 const SpatialHash& grid,
42 const HeatParams& params);
43
44} // namespace physics::backends::seq
Weakly Compressible SPH (WCSPH) fluid solver – public interface.
Heat transfer parameters for the 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
SPH particle data structure.
Rigid body (sphere) for SPH collision and heat exchange.
SPH neighbour search – now powered by num::CellList2D.