numerics
Loading...
Searching...
No Matches
impl.hpp
Go to the documentation of this file.
1/// @file backends/omp/impl.hpp
2/// @brief Private declarations for the OpenMP 3D SPH backend.
3/// Only included by apps/fluid_sim_3d/fluid3d.cpp (dispatch).
4///
5/// integrate_bodies absent -- dispatch falls through to seq (M bodies tiny).
6#pragma once
7
8#include "particle3d.hpp"
9#include "rigid_body3d.hpp"
10#include "spatial_hash3d.hpp"
11#include "fluid3d.hpp"
12#include "heat3d.hpp"
13#include <vector>
14
15namespace physics::backends::omp {
16
17void compute_density_pressure(std::vector<Particle3D>& particles,
18 const FluidParams3D& params,
19 const SpatialHash3D& grid);
20
21void compute_forces(std::vector<Particle3D>& particles,
22 const FluidParams3D& params,
23 const SpatialHash3D& grid);
24
25void body_collisions(std::vector<Particle3D>& particles,
26 const std::vector<RigidBody3D>& bodies,
27 const FluidParams3D& params);
28
29void integrate(std::vector<Particle3D>& particles, const FluidParams3D& params);
30
31void enforce_boundaries(std::vector<Particle3D>& particles, const FluidParams3D& params);
32
33void update_temp_range(const std::vector<Particle3D>& particles,
34 const std::vector<RigidBody3D>& bodies,
35 float& T_min, float& T_max);
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::omp
3D WCSPH fluid solver – public interface and dispatch hub
Heat transfer parameters for the 3D SPH backends.
void body_collisions(std::vector< Particle > &particles, const std::vector< RigidBody > &bodies, const FluidParams &params)
Definition fluid.cpp:105
void heat_compute(std::vector< Particle > &particles, const std::vector< RigidBody > &bodies, const SpatialHash &grid, const HeatParams &params)
Definition heat.cpp:16
void compute_forces(std::vector< Particle > &particles, const FluidParams &params, const SpatialHash &grid)
Per-particle query – each thread writes only to particles[i]. O(n*k).
Definition fluid.cpp:62
void compute_density_pressure(std::vector< Particle > &particles, const FluidParams &params, const SpatialHash &grid)
Per-particle query – each thread writes only to particles[i]. O(n*k).
Definition fluid.cpp:33
void update_temp_range(const std::vector< Particle > &particles, const std::vector< RigidBody > &bodies, float &T_min, float &T_max)
reduction(min:T_min) reduction(max:T_max)
Definition fluid.cpp:168
void integrate(std::vector< Particle > &particles, const FluidParams &params)
Definition fluid.cpp:133
void enforce_boundaries(std::vector< Particle > &particles, const FluidParams &params)
Definition fluid.cpp:151
3D SPH neighbour search – powered by num::CellList3D