Skip to content

Commit 9ad760c

Browse files
committed
Update changelog, bump versions, update some help strings
1 parent e47c02f commit 9ad760c

5 files changed

Lines changed: 27 additions & 14 deletions

File tree

CHANGELOG.md

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,25 @@
11
## Master
22

3-
- Lib: Implemented an own `profile!` macro that also works in multi-threaded code, i.e. with together with `rayon`
4-
- CLI: The CLI now also prints detailed profiling/timing output when running in parallel with domain decomposition thanks to the new `profile` macro
5-
63
### Short-term goals
7-
- Investigate and fix artifacts with domain decomposition in large, flat surfaces
84
- Implement export of surface normals via the CLI
95

6+
## Version 0.6.0
7+
8+
This release fixes a couple of bugs that may lead to inconsistent surface reconstructions when using domain decomposition (i.e. reconstructions with artificial bumps exactly at the subdomain boundaries, especially on flat surfaces). Currently there are no other known bugs and the domain decomposed approach appears to be really fast and robust.
9+
10+
In addition the CLI now reports more detailed timing statistics for multi-threaded reconstructions.
11+
12+
Otherwise this release contains just some small changes to command line parameters.
13+
14+
- Lib: Add a `ParticleDensityComputationStrategy` enum to the `SpatialDecompositionParameters` struct. In order for domain decomposition to work consistently, the per particle densities have to be evaluated to a consistent value between domains. This is especially important for the ghost particles. Previously, this resulted inconsistent density values on boundaries if the ghost particle margin was not at least 2x the compact support radius (as this ensures that the inner ghost particles actually have the correct density). This option is now still available as the `IndependentSubdomains` strategy. The preferred way, that avoids the 2x ghost particle margin is the `SynchronizeSubdomains` where the density values of the particles in the subdomains are first collected into a global storage. This can be faster as the previous method as this avoids having to collect a double-width ghost particle layer. In addition there is the "playing it safe" option, the `Global` strategy, where the particle densities are computed in a completely global step before any domain decomposition. This approach however is *really* slow for large quantities of particles. For more information, read the documentation on the `ParticleDensityComputationStrategy` enum.
15+
- Lib: Fix bug where the workspace storage was not cleared correctly leading to inconsistent results depending on the sequence of processed subdomains
16+
- Lib: Fix bug in the octree splitting where ghost particles of a parent node were actually classified as non-ghost particles in the child node, leading to many subsequent splits
17+
- Lib: Change AABB's `contains_point` method such that it now considers the AABB as "open" to its max value, i.e. it checks if the point is in the half-open set `[min, max[`
18+
- Lib: Implemented an own `profile!` macro that also works in multi-threaded code, i.e. with together with `rayon`
19+
- CLI: The CLI now also prints detailed profiling/timing output when running in parallel with domain decomposition thanks to the new `profile` macro
20+
- CLI: Add `--domain-min` and `--domain-max` flags to the `convert` subcommand that allows to filter out particles
21+
- CLI: Remove the `--splash-detection-radius` flag as it did not work for a couple of releases
22+
1023
## Version 0.5.1
1124

1225
- Lib: Fixed bug in triangulation that resulted in at most 4 out 5 possible triangles being emitted. This resulted in holes in surface meshes in some cases.

Cargo.lock

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

splashsurf/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "splashsurf"
3-
version = "0.5.0"
3+
version = "0.6.0"
44
authors = ["Fabian Löschner <loeschner@cs.rwth-aachen.de>"]
55
license = "MIT"
66
description = "Command-line tool for surface reconstruction of SPH particle data"
@@ -13,7 +13,7 @@ homepage = "https://github.com/w1th0utnam3/splashsurf"
1313
repository = "https://github.com/w1th0utnam3/splashsurf"
1414

1515
[dependencies]
16-
splashsurf_lib = { path = "../splashsurf_lib", version = "0.5", features = ["vtk_extras", "profiling"] }
16+
splashsurf_lib = { path = "../splashsurf_lib", version = "0.6", features = ["vtk_extras", "profiling"] }
1717
structopt = "0.3"
1818
log = "0.4"
1919
fern = "0.6"

splashsurf/src/reconstruction.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ pub struct ReconstructSubcommandArgs {
2121
/// Path to the input file where the particle positions are stored (supported formats: VTK, binary f32 XYZ, PLY, BGEO)
2222
#[structopt(short = "-i", long, parse(from_os_str))]
2323
input_file: Option<PathBuf>,
24-
/// Path to a sequence of particle files that should be processed, use `{}` in the filename to indicated a placeholder
24+
/// Path to a sequence of particle files that should be processed, use `{}` in the filename to indicate a placeholder
2525
#[structopt(
2626
name = "input_sequence_pattern",
2727
short = "-s",
@@ -47,7 +47,7 @@ pub struct ReconstructSubcommandArgs {
4747
/// The cube edge length used for marching cubes in multiplies of the particle radius, corresponds to the cell size of the implicit background grid
4848
#[structopt(long)]
4949
cube_size: f64,
50-
/// The iso-surface threshold for the density, i.e. value of the reconstructed density that indicates the fluid surface (in multiplies of the rest density)
50+
/// The iso-surface threshold for the density, i.e. the normalized value of the reconstructed density level that indicates the fluid surface (in multiplies of the rest density)
5151
#[structopt(long, default_value = "0.6")]
5252
surface_threshold: f64,
5353
/// Whether to enable the use of double precision for all computations
@@ -72,13 +72,13 @@ pub struct ReconstructSubcommandArgs {
7272
/// Whether to enable spatial decomposition using an octree (faster) instead of a global approach
7373
#[structopt(long, default_value = "on", possible_values = &["on", "off"], case_insensitive = true)]
7474
octree_decomposition: Switch,
75-
/// Whether to enable stitching of the disconnected local meshes when spatial decomposition is enabled (slower, but without stitching meshes will not be closed)
75+
/// Whether to enable stitching of the disconnected local meshes resulting from the reconstruction when spatial decomposition is enabled (slower, but without stitching meshes will not be closed)
7676
#[structopt(long, default_value = "on", possible_values = &["on", "off"], case_insensitive = true)]
7777
octree_stitch_subdomains: Switch,
78-
/// The maximum number of particles for leaf nodes of the octree, default is to compute it based on number of threads and particles
78+
/// The maximum number of particles for leaf nodes of the octree, default is to compute it based on the number of threads and particles
7979
#[structopt(long)]
8080
octree_max_particles: Option<usize>,
81-
/// Safety factor applied to the kernel compact support radius when it's used as a margin to collect ghost particles in the leaf nodes
81+
/// Safety factor applied to the kernel compact support radius when it's used as a margin to collect ghost particles in the leaf nodes when performing the spatial decomposition
8282
#[structopt(long)]
8383
octree_ghost_margin_factor: Option<f64>,
8484
/// Whether to compute particle densities in a global step before domain decomposition (slower)

splashsurf_lib/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "splashsurf_lib"
3-
version = "0.5.1"
3+
version = "0.6.0"
44
authors = ["Fabian Löschner <loeschner@cs.rwth-aachen.de>"]
55
license = "MIT"
66
description = "Library for surface reconstruction of SPH particle data"

0 commit comments

Comments
 (0)