## Supported features

The current version of RUMD supports- easy-to-use Python interface
- auto-tuner for automatic optimization
- pair interactions:
standard Lennard-Jones generalized Lennard-Jones Gaussian core Buckingham Dzugutov inverse power law (IPL) Girifalco Yukawa and more... - easy implementation of user-defined pair potentials
- shifted forces interactions (wiki link)
- Intra-molecular interactions
- bonds: FENE, harmonic, fixed constraints
- angle-bending potential
- torsion potential
- NVE, NVU, and NVT ensemble simulations
- Standard Monte-Carlo simulations
- Non-equilibrium shear defomations (SLLOD, atomic systems only)
- a set of post-simulation data analysis tools, for example,
- rumd_stats: Computes averages and variances for thermodynamic quantities, like pressure, potential energy, etc.
- rumd_rdf: Computes the radial distribution function from a simulation
- rumd_msd: Computes functions quantifying the dynamics, e.g. the mean square displacement and the incoherent intermediate scattering function
- rumd_sq: Computes the static structure factor
- rumd_vhc: Computes the van Hove distribution function
- rumd_rouse: Computes the Rouse modes

## RUMD user philosophy

We have defined five user levels:- A user at level 1 is one who can write or copy a simple python script to run a standard molecular dynamics simulation, and then use the provided analysis tools to perform standard analysis of the output. This user can make some basic choices, such as the potential, the integrator, and controlling the frequency of output.
- This user understands the deeper structure of the code--that is the different kinds of classes/objects, the relations between them, and their interfaces. Also this user understands how the python language works, and can therefore write more sophisticated python scripts which access the full power and flexibility of RUMD.
- A user at level 3 is one with minimal experience in C++ and can write her own (pair-)potential functions, to be available as classes.
- This user can write her own analysis programs in C++ or Python, but does not need to know anything about GPU programming, since analysis is generally carried out on the CPU.
- RUMD developer. Must have a good knowledge of C++, CUDA programing and knowledge of Subversion.

The tutorial will bring you from level 1 to level 3.