Module splashsurf_lib::density_map
source · Expand description
Computation of sparse density maps (evaluation of particle densities and mapping onto sparse grids)
This module provides functions for the computation of per-particle densities and the discretization of the resulting fluid density field by mapping onto a discrete background grid.
Currently, only sparse density maps are implemented.
Sparse density maps
The DensityMap
stores fluid density values for each point of an implicit background grid
where the density is not trivially zero. This is the case for all points that are inside or at
least within some tolerance to the compact support radius of a particle.
In case of a sparse density map, the values are stored in a hashmap. The keys are so called
“flat point indices”. These are computed from the background grid point coordinates (i,j,k)
analogous to multidimensional array index flattening. That means for a grid with dimensions
[n_x, n_y, n_z]
, the flat point index is given by the expression i*n_x + j*n_y + k*n_z
.
For these point index operations, the UniformGrid
is used.
Note that all density mapping functions always use the global background grid for flat point indices, even if the density map is only generated for a smaller subdomain.
Enums
- A sparse density map
- Errors that can occur during generation of the density map
Functions
- Computes the individual densities of particles using a standard SPH sum
- Computes the individual densities of particles inplace using a standard SPH sum
- Computes a sparse density map for the fluid based on the specified background grid
- Computes the individual densities of particles using a standard SPH sum, multi-threaded implementation
- Computes a sparse density map for the fluid based on the specified background grid, multi-threaded implementation
- Computes the individual densities of particles using a standard SPH sum, sequential implementation
- Computes a sparse density map for the fluid based on the specified background grid, sequential implementation
- Computes a sparse density map for the fluid restricted to the specified subdomain
- Converts a sparse density map (based on the implicit background grid) to a sparse hexahedral mesh with explicit coordinates for the cells’ vertices.