Code Monkey home page Code Monkey logo

hoomd-blue's Introduction

HOOMD-blue

HOOMD-blue is a general purpose particle simulation toolkit. It performs hard particle Monte Carlo simulations of a variety of shape classes, and molecular dynamics simulations of particles with a range of pair, bond, angle, and other potentials. HOOMD-blue runs fast on NVIDIA GPUs, and can scale across many nodes. For more information, see the HOOMD-blue website.

Tutorial

Read the HOOMD-blue tutorial online.

Installing HOOMD-blue

HOOMD-blue binary images are available on Docker Hub and packages on conda-forge.

Docker images

Pull the glotzerlab/software to get HOOMD-blue along with many other tools commonly used in simulation and analysis workflows. Use these images to execute HOOMD-blue in Docker/Singularity containers on Mac, Linux, and cloud systems you control and on HPC clusters with Singularity support. CUDA and MPI operate with native performance on supported HPC systems See full usage information on the glotzerlab/software docker hub page.

Singularity:

$ umask 002
$ singularity pull docker://glotzerlab/software

Docker:

$ docker pull glotzerlab/software

Anaconda package

HOOMD-blue is available on conda-forge. To install, first download and install miniconda. Then add the conda-forge channel and install hoomd:

$ conda config --add channels conda-forge
$ conda install hoomd

If you have already installed hoomd in conda, you can upgrade to the latest version with:

$ conda update hoomd

Compile from source

Download source releases directly from the web: https://glotzerlab.engin.umich.edu/Downloads/hoomd

$ curl -O https://glotzerlab.engin.umich.edu/Downloads/hoomd/hoomd-v2.3.4.tar.gz

Or, clone using git:

$ git clone --recursive  https://bitbucket.org/glotzer/hoomd-blue

HOOMD-blue uses git submodules. Either clone with the --recursive option, or execute git submodule update --init to fetch the submodules.

Prerequisites

  • Required:
    • Python >= 2.7
    • numpy >= 1.7
    • CMake >= 2.8.0
    • C++ 11 capable compiler (tested with gcc 4.8, 4.9, 5.4, 6.4, 7.0, 8.0, clang 3.8, 5.0, 6.0)
  • Optional:
    • NVIDIA CUDA Toolkit >= 7.0
    • Intel Threaded Building Blocks >= 4.3
    • MPI (tested with OpenMPI, MVAPICH)
    • sqlite3

Compile

Configure with cmake and compile with make. Replace ${PREFIX} your desired installation location.

mkdir build
cd build
cmake ../ -DCMAKE_INSTALL_PREFIX=${PREFIX}/lib/python
make install -j10

Add ${PREFIX}/lib/python to your PYTHONPATH to use HOOMD-blue.

$ export PYTHONPATH=$PYTHONPATH:${PREFIX}/lib/python

For more detailed instructions, see the documentation.

Job scripts

HOOMD-blue job scripts are python scripts. You can control system initialization, run protocol, analyze simulation data, or develop complex workflows all with python code in your job.

Here is a simple example.

import hoomd
from hoomd import md
hoomd.context.initialize()

# create a 10x10x10 square lattice of particles with name A
hoomd.init.create_lattice(unitcell=hoomd.lattice.sc(a=2.0, type_name='A'), n=10)
# specify Lennard-Jones interactions between particle pairs
nl = md.nlist.cell()
lj = md.pair.lj(r_cut=3.0, nlist=nl)
lj.pair_coeff.set('A', 'A', epsilon=1.0, sigma=1.0)
# integrate at constant temperature
all = hoomd.group.all();
md.integrate.mode_standard(dt=0.005)
hoomd.md.integrate.langevin(group=all, kT=1.2, seed=4)
# run 10,000 time steps
hoomd.run(10e3)

Save this as lj.py and run with python lj.py (or singularity exec software.simg python3 lj.py if using containers).

Reference Documentation

Read the reference documentation on readthedocs.

Change log

See ChangeLog.md.

Contributing to HOOMD-blue.

See CONTRIBUTING.md.

hoomd-blue's People

Contributors

akohlmey avatar antonio-osorio avatar bdice avatar benjaminaschultz avatar bvansade avatar csadorf avatar dnlebard avatar eirrgang avatar erteich avatar harperic avatar innocentbug avatar j-proc avatar jamesaan avatar jdaaph avatar joaander avatar klarh avatar ksil avatar lyrivera avatar mphoward avatar ndtrung81 avatar nkahm avatar phyang avatar rjsm avatar shannon-moran avatar swerdfish avatar tcmoore3 avatar trvsst avatar vyasr avatar willzygmunt avatar xiyudu avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.