PyParticles icon indicating copy to clipboard operation
PyParticles copied to clipboard

Particles simulation in python

PyParticles

PyParticles is a particle simulation toolbox entirely written in python 3.

The main objective of PyParticles is to provide a system API simple and fast to use. Furthermore is to provide a basic application for the implementation of simple models.

| Visit: http://pyparticles.wordpress.com/ | Docs: http://simon-r.github.com/PyParticles/index.html

Download

PyParticles v0.3.5 tgz <http://sourceforge.net/projects/pyparticles/files/PyParticles-0.3.5/pyparticles-0.3.5.tar.gz>_

Features

Simulate a particle by particle model with the most popular integrations methods, and it represents the results on a OpenGL or Matplotlib plot.

PyParticle includes the followings integrations methods

#. Euler method #. Leap Frog method #. Rung Kutta method #. Midpoint #. Stormer Verlet method

As a forces model it includes:

#. Gravity #. Particle by Particle spring #. Constant #. User defined field #. Lennard Jones #. Drag #. Damping #. Electromagnetic fields

We have also the possibility of modeling the forces with user-defined constraints (See demo cat_spri).

PyParticle offers an easy to use class structure with a fully interchangeable integrations method or force model, it also implements the possibility to add some boundary model.

Requirements

| PyParticles require the following packages:

| numpy : http://scipy.org/Download | scipy : http://scipy.org/Download | pyopengl : http://pyopengl.sourceforge.net/ | matplotlib : http://matplotlib.org/ | pyopencl : http://mathema.tician.de/software/pyopencl (optional)

For more details about the installation visit the Blog: http://pyparticles.wordpress.com/installation/

Command line tool usage:

In PyParticles a simulation model is entirely described in a config file that should be edited by the user.

The following are the main command of the PyParticles application.

  • Start the demo simulation:

::

pyparticles_app
  • Start a simulation described in a config file ::

    pyparticle_app <file_name>

  • Start the specified demo simulation

============= ======================================================== Demos ============= ======================================================== springs 3 body springs solar_system Simulation of the solar system with realistic magnitudes bubble Bubbles. With a non realistic force cat_spri Vibrating string with gravity and air drag gas_lj Lennard jones gas model (should be improved) elmag_field Electromagnetic field fountain 250'000 particles fountain ============= ======================================================== ::

pyparticles_app --demo springs
pyparticles_app --demo solar_system
pyparticles_app --demo bubble
pyparticles_app --demo cat_spri
pyparticles_app --demo gas_lj
pyparticles_app --demo elmag_field
pyparticles_app --demo fountain
  • Start a testing procedure Execute the specified test: ::

    pyparticles_app --test harmonic pyparticles_app --test fall

  • Write out a model config file ::

    pyparticle_app -m

  • Print out the help and version ::

    pyparticles_app --help pyparticles_app --version

During the simulation you can toggle the help message by pressing h

Config file Example: ::

[pset_origin]
media_origin = from_file
file_name = solar_sys.csv

[set_config]
len_unit = 149597870700.0
mass_unit = 5.9736e24
boundary = open

[model]
force = gravity
ode_solver_name = euler
time_step = 3600
steps = 1000000
force_const = 6.67384e-11
force_vector = 0 0 0

[animation]
animation_type = opengl
xlim = -5.0  5.0
ylim = -5.0  5.0
zlim = -5.0  5.0