A general purpose Smoothed Particle Hydrodynamics framework
Project description
PySPH: a Python-based SPH framework
PySPH is an open source framework for Smoothed Particle Hydrodynamics (SPH) simulations. It is implemented in Python and the performance critical parts are implemented in Cython.
PySPH allows users to write their high-level code in pure Python. This Python code is automatically converted to high-performance Cython which is compiled and executed. PySPH can also be configured to work seamlessly with OpenMP and MPI.
The latest documentation for PySPH is available at pysph.readthedocs.org.
Here are videos of some example problems solved using PySPH.
Features
Flexibility to define arbitrary SPH equations operating on particles in pure Python.
Define your own multi-step integrators in pure Python.
High-performance: our performance is comparable to hand-written solvers implemented in FORTRAN.
Seamless multi-core support with OpenMP.
Seamless parallel support using Zoltan.
SPH formulations
PySPH ships with a variety of standard SPH formulations along with basic examples. Some of the formulations available are:
Weakly Compressible SPH (WCSPH) for free-surface flows (Gesteira et al. 2010, Journal of Hydraulic Research, 48, pp. 6–27)
Transport Velocity Formulation for incompressilbe fluids (Adami et al. 2013, JCP, 241, pp. 292–307)
SPH for elastic dynamics (Gray et al. 2001, CMAME, Vol. 190, pp 6641–6662)
Compressible SPH (Puri et al. 2014, JCP, Vol. 256, pp 308–333)
Installation
Up-to-date details on how to install PySPH on Linux/OS X and Windows are available from here.
If you wish to see a working build/test script please see our shippable.yml. Or you could see the build script hosted at drone.io or for Windows platforms see the appveyor.yml.
Running the examples
You can verify the installation by exploring some examples. A fairly quick running example (taking about 5-10 minutes) would be the following:
$ cd examples $ python dam_break.py
The solution can be viewed live by running:
$ pysph_viewer
This requires that Mayavi be installed. The saved output data can be viewed by running:
$ pysph_viewer dam_break_output/
A 3D version of the dam-break problem is also available, and may be run as:
$ python dam_break3D.py
This runs the 3D dam-break problem which is also a SPHERIC benchmark Test 2
PySPH is more than a tool for wave-body interactions::
$ cd examples/transport_velocity $ python cavity.py
This runs the driven cavity problem using the transport velocity formulation of Adami et al. You can verify the results for this problem using the helper script examples/transport_velocity/ldcavity_results.py to plot, for example the streamlines look like the following image:
If you want to use PySPH for elastic dynamics, you can try some of the examples from the directory examples/solid_mech:
$ cd examples/solid_mech $ python rings.py
Which runs the problem of the collision of two elastic rings:
The auto-generated code for the example resides in the directory ~/.pysph/source. A note of caution however, it’s not for the faint hearted.
Credits
PySPH is primarily developed at the Department of Aerospace Engineering, IIT Bombay. We are grateful to IIT Bombay for their support. Our primary goal is to build a powerful SPH based tool for both application and research. We hope that this makes it easy to perform reproducible computational research.
Lead developers:
Kunal Puri
Earlier developers:
Pankaj Pandey (stress solver and improved load balancing, 2011)
Chandrashekhar Kaushik (original parallel and serial implementation in 2009)
Support
If you have any questions or are running into any difficulties with PySPH, please email or post your questions on the pysph-users mailing list here: https://groups.google.com/d/forum/pysph-users
Please also take a look at the PySPH issue tracker.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
File details
Details for the file PySPH-1.0a2.zip
.
File metadata
- Download URL: PySPH-1.0a2.zip
- Upload date:
- Size: 2.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 929d339ca006fa86e2f75103af221b3bac645cf379b1457ec81c130ff1dcf0ca |
|
MD5 | d001f3d09fd952443a3e69c02113da01 |
|
BLAKE2b-256 | 0eb013fd819177027bf0150d1e6b92b066e7ca5592518b508077ee00927a7792 |
File details
Details for the file PySPH-1.0a2.tar.gz
.
File metadata
- Download URL: PySPH-1.0a2.tar.gz
- Upload date:
- Size: 2.5 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5a429f18d5bb8f086ef07dcfb1d87a83585d73c3de0b8a51df3899b08faa2e46 |
|
MD5 | d0e7cfc867f71f087fcbcf8e67fe4913 |
|
BLAKE2b-256 | 4e98d68647e8b1354db2ff74212c8019604f6af87b4d1c0b1e4ad79e9a71ecac |
File details
Details for the file PySPH-1.0a2.tar.bz2
.
File metadata
- Download URL: PySPH-1.0a2.tar.bz2
- Upload date:
- Size: 2.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2868fd157293c4a123e193471696da0e6b1ef92961a4a49ee43ff5cf289da332 |
|
MD5 | 2a60032bbb63bb06ab3ac07339e92402 |
|
BLAKE2b-256 | ea90a0d89b08f5f0f1bd1f438434625cb58b3614e044a524562f524cff8f4189 |