Features Implemented

  • Solvers
    • EOS SPH Solver
    • EOS with Splitting
    • Iterative EOS with Splitting
      • Different Equations of State
    • IISPH (2013, Notes)
  • Datastructures
    • Index search - regular grid
      • XYZ, Morton, Hilbert curves
    • GPU version with parallel radix sort and reductions
  • Experiments
    • Oscillation frequencies over stiffness
    • Error over stiffness
    • Stability over viscosity, timestep size
    • Aliasing and stability improvements with jitter
  • Initialization
    • Oblique and regular grid initialization
    • Jittered initialization
      • Non-uniform mass, uniform density solver (-> influence on viscosity?)
  • GUI/Visualization
    • Off-thread, GPU accelerated rendering
    • Atomic parameters
    • SPH “number density” using OpenGL quads and alpha blending
  • Miscellanous
    • arbitrary non-uniform boudnary handling (-> tests?)
    • Viscosity-based adhesion
    • GPU implementation of EOS SPH

IISPH v2

  • 2013 Paper version more numerically stable than Notes version?

Improving Robustness

  • minimum/maximum timestep relevant (stability vs. shock problems)
  • higher \(\epsilon\) for \(A_{ii} \neq 0\)
  • maximum compression over average compression as convergence criterion (but higher iteration count)
  • lower \(\omega\)
  • higher (minimum) iteration count
  • jittered boundaries and spacing not a multiple of \(h\) - less porous

Observations

  • iteration count coupled to compression:

Stability

  • problems seem largely related to boundary quality
  • occur mostly at the start (better equilibration? remove outliers?)
  • also, velocity field is noisy:

Visible noise in the velocity field using density invariance as IISPH source term

Improvements?

  • other solver?
  • regularization?
  • stochastic behaviour?
  • preconditioning?
  • other initialization?
  • better parameters \(\epsilon, \omega, \text{miniter}, \dots\)

Other Questions

  • meaning of diagonally dominant and non-zero entries
  • micropolar vorticity model / use vorticity to integrate on curve?