# Welcome to the PySPH documentation!

PySPH is an open source framework for Smoothed Particle Hydrodynamics (SPH) simulations. Users can implement an SPH formulation in pure Python and still obtain excellent performance. PySPH can make use of multiple cores via OpenMP or be run seamlessly in parallel using MPI.

Here are some videos of simulations made with PySPH.

PySPH is hosted on bitbucket. Please see the bitbucket site for development details.

## Overview

- PySPH: a Python-based SPH framework
  - Features
  - SPH formulations
  - Credits
  - Citing PySPH
  - History
  - Support
  - Changelog

## Installation and getting started

- Installation and getting started
  - Quick installation
  - Dependencies
  - Installing the dependencies on GNU/Linux
  - Installing the dependencies on Mac OS X
  - Installing the dependencies on Windows
  - Using a virtualenv for PySPH
  - Downloading PySPH
  - Building and Installing PySPH
  - Running the tests
  - Running the examples
  - Organization of the `pysph` package
- Learning the ropes
  - Imports
  - Functions for loading/generating the particles
  - Setting up the PySPH framework
  - Specifying the interactions
  - Running the example
  - Visualizing and post-processing
  - Doing more

## The framework and library

- The PySPH framework
  - The dam-break problem
  - A non-PySPH implementation
  - PySPH implementation
- Using the PySPH library
  - Working With Particles
  - Nearest Neighbour Particle Searching (NNPS)
  - Parallel NNPS with PyZoltan
  - Putting it together: A simple example
  - Summary
- Introduction to PyZoltan
  - A simple example: Partitioning points
  - Inverting the Import/Export lists
  - Unstructured point to point communication
  - Distributed data directories

## Reference documentation

Autogenerated from doc strings using sphinx’s autodoc feature.

- PySPH Reference Documentation
  - Module application
  - Module carray
  - Module controller
  - SPH equations
  - Integrator module
  - SPH Kernels
  - Module nnps: Nearest Neighbor Particle Search
  - Module parallel_manager
  - Module particle_array
  - Module solver
  - Module simple_inlet_outlet
  - Module solver_interfaces
  - Miscellaneous Tools for PySPH
  - Module zoltan: A Python wrapper for Zoltan
- Solver Interfaces
  - CommandManager
  - Controller
  - Blocking and Non-Blocking mode
  - Interfaces
  - Adding Interface to Solver
  - Commandline Interface
  - XML-RPC Interface
  - Multiprocessing Interface
  - Example

### Indices and tables

- Index
- Module Index
- Search Page