Skip to main content

A general purpose Smoothed Particle Hydrodynamics framework

Project description

PySPH: a Python-based SPH framework

Shippable Status Appveyor Status Codeship Status

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:

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 20 seconds) would be the following:

$ pysph run elliptical_drop

This requires that Mayavi be installed. The saved output data can be viewed by running:

$ pysph view elliptical_drop_output/

A more interesting example would be a 2D dam-break example (this takes about 30 minutes in total to run):

$ pysph run dam_break_2d

The solution can be viewed live by running (on another shell):

$ pysph view

The generated output can also be viewed and the newly generated output files can be refreshed on the viewer UI.

A 3D version of the dam-break problem is also available, and may be run as:

$ pysph run dam_break_3d

This runs the 3D dam-break problem which is also a SPHERIC benchmark Test 2

Three-dimensional dam-break example

PySPH is more than a tool for wave-body interactions::

$ pysph run cavity

This runs the driven cavity problem using the transport velocity formulation of Adami et al. The output directory cavity_output will also contain streamlines and other post-processed results after the simulation completes. For example the streamlines look like the following image:

Lid-driven-cavity example

If you want to use PySPH for elastic dynamics, you can try some of the examples from the pysph.examples.solid_mech package:

$ pysph run solid_mech.rings

Which runs the problem of the collision of two elastic rings:

Collision of two steel 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.

There are many more examples, they can be listed by simply running:

$ pysph run

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:

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

PySPH-1.0a3.zip (2.6 MB view details)

Uploaded Source

PySPH-1.0a3.tar.gz (2.4 MB view details)

Uploaded Source

PySPH-1.0a3.tar.bz2 (2.4 MB view details)

Uploaded Source

File details

Details for the file PySPH-1.0a3.zip.

File metadata

  • Download URL: PySPH-1.0a3.zip
  • Upload date:
  • Size: 2.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for PySPH-1.0a3.zip
Algorithm Hash digest
SHA256 180c4a1808e76b67e9684cb5cfc916a79e1a2cfa398fd43d186ec0e9cd08055f
MD5 4d94635f680c3df9afd533e84e3db02d
BLAKE2b-256 40e80e2106b6367f2b2039093b760bd87596084cc2ff8f6f2eb8c6567cf419ad

See more details on using hashes here.

File details

Details for the file PySPH-1.0a3.tar.gz.

File metadata

  • Download URL: PySPH-1.0a3.tar.gz
  • Upload date:
  • Size: 2.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for PySPH-1.0a3.tar.gz
Algorithm Hash digest
SHA256 ad4331812a2587e32253a9ca6772c2db6434f068d79339092c44662b61a55f6a
MD5 83302f3ba575db115826fc24de9d5b51
BLAKE2b-256 8168c3bddf10a9d65a21166cffa7bfd9d127968c53a69cc62222911ade838452

See more details on using hashes here.

File details

Details for the file PySPH-1.0a3.tar.bz2.

File metadata

  • Download URL: PySPH-1.0a3.tar.bz2
  • Upload date:
  • Size: 2.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for PySPH-1.0a3.tar.bz2
Algorithm Hash digest
SHA256 e430e0c0f0332145ad085c18455cf87603bb93e3c9ef2e5ba70e587b300e7053
MD5 90642ce87eefcb7cb0e3bff030d20e8e
BLAKE2b-256 9f11176754e3490f5c215845b1fd13f0785871f53bd849963cfb40cdbc117a65

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page