Skip to content

Commit

Permalink
Updated readme
Browse files Browse the repository at this point in the history
  • Loading branch information
AhmedSalih3d committed Apr 6, 2024
1 parent bd10dac commit 34044dd
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 5 deletions.
2 changes: 1 addition & 1 deletion Project.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name = "SPHExample"
uuid = "49649ea8-6f54-4931-9342-0ba915f114f7"
version = "0.4.0"
version = "0.5.0"

[deps]
CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b"
Expand Down
12 changes: 8 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
# SPH Example

This package serves as an example of how to write a relatively simple SPH (Smooehd Particle Hydrodynamics) simulation in Julia. A few examples are provided out of the box; still wedge and dam break. Custom particle distributions can be loaded in as well.
This package serves as an example of how to write a relatively simple SPH (Smoothed Particle Hydrodynamics) simulation in Julia. A few examples are provided out of the box; still wedge and dam break. Custom particle distributions can be loaded in as well.

Please consider 🌟 the package if it has been useful for you. I would love to know if you have used it to learn SPH, for your teaching and more, it really motivates me!

If you are using this package for an academic project or a scientific paper, please do cite the project - and feel free to reach out too!


Below are some examples of what the code can run:

The code can produce a 2D dam-break ([@DamBreak2D-Video](https://www.youtube.com/watch?v=7kDVjZkc_TI)):
Expand Down Expand Up @@ -36,7 +35,7 @@ Key-elements of the code are:
- Wendland Quintic Kernel (as in DualSPHysics)
- One of the simpler kernels which does not require tensile correction to be applied.

*Please* remember that the main aim of this code is not to be performant. It is made to teach and showcase one way to code a relatively simple SPH code. *Unofficially* I have benchmarked this code up against DualSPHysics similar cases and found that for 2D simulations this code is on par with DualSPHysics.
*Please* remember that the main aim of this code is not to be performant. It is made to teach and showcase one way to code a relatively simple SPH code. *Unofficially* I have benchmarked this code up against DualSPHysics similar cases and found that for 2D simulations this code is on par with DualSPHysics in regards to execution speed on CPU.

## Getting Started

Expand All @@ -49,6 +48,8 @@ The "src" package contains all the code files used in this process. An overview
* Function for loading in the files in "input".
* PostProcess
* Function to output .vtp files. "ProduceVTP.jl" is a hand-rolled custom solution for those interested in that.
* ProduceHDFVTK
* Function to output the simulation data in the efficient `HDF5` format, directly readable in Paraview 5.12. Files can be opened after a simulation has concluded, since they must be closed at the end of a simulation for performance reasons.
* AuxillaryFunctions
* To store some small, repeatedly used smaller functions
* TimeStepping
Expand All @@ -57,6 +58,8 @@ The "src" package contains all the code files used in this process. An overview
* The interface for stating the most relevant simulation constants is found here
* SimulationMetaDataConfiguration
* The interface for the meta data associated with a simulation, such as total time, save location etc.
* SimulationLoggerConfiguration
* Functions for logging data of execution
* SimulationEquations
* SPH physics functions
* SPHCellList
Expand All @@ -82,7 +85,8 @@ Written by Ahmed Salih [@AhmedSalih3D](https://github.com/AhmedSalih3d)

## Version History

* (main) Version 0.4 | Complete rewrite, letting go of `LoopVectorization.jl` and `CellListMap.jl` to only code exactly what is needed and improve performance.
* (main) Version 0.5 | Introduced logging, `hdfvtk` output format and minor improvements.
* Version 0.4 | Complete rewrite, letting go of `LoopVectorization.jl` and `CellListMap.jl` to only code exactly what is needed and improve performance. (Not provided anymore)
* Version 0.3 | A highly optimized version for CPU, with extremely few allocations after the initial array allocation. Only the neighbour search and saving of data allocates memory now. Recommend to use this. (Not provided anymore)
* Version 0.2 | A cleaned up version of the original release version data allocates memory now. (Not provided anymore)
* Version 0.1 | Initial release version
Expand Down

0 comments on commit 34044dd

Please sign in to comment.