Giter Club home page Giter Club logo

espressopp's Introduction

ESPResSo++

Build Status Code Climate codecov

ESPResSo++ is an extensible, flexible, fast and parallel simulation software for soft matter research. It is a highly versatile software package for the scientific simulation and analysis of coarse-grained atomistic or bead-spring models as they are used in soft matter research. ESPResSo and ESPResSo++ have common roots and share parts of the developer/user community. However their development is independent and they are different software packages. ESPResSo++ is free, open-source software published under the GNU General Public License (GPL).

Quick start:

To get a copy of the developer version (most recent version) of ESPResSo++, you can use git or docker. Using docker will give you a binary release (nothing to compile, but performance may not be optimal). If you use git clone or download a tarball, you will have to compile ESPResSo+ yourself, which might lead to better performance.

Using docker:

$ docker pull espressopp/espressopp
$ docker run -it espressopp/espressopp /bin/bash

Using git:

$ git clone https://github.com/espressopp/espressopp.git

Alternatively, you can download a tarball or zip file of previous release versions of ESPResSo++.

Dependencies

C++ Dependencies

  • Boost ( >= 1.69.0)
  • MPI
  • FFTW3
  • GROMACS (required when WITH_XTC flag is enabled, GROMACS needs to be built with GMX_INSTALL_LEGACY_API)
  • HDF5

Python Dependencies

ESPResSo++ requires Python 3.7 or newer. All required Python packages are listed in requirements.txt. You can install them via: pip3 install -r requirements.txt

Quick install:

$ cd espressopp
$ cmake -B builddir -DCMAKE_INSTALL_PREFIX=/where/to/install/espressopp .
$ cmake --build builddir
$ cmake --install builddir
$ export PYTHONPATH=/where/to/install/espressopp/lib/python3*/site-packages:${PYTHONPATH}

After building go to the examples directory and have a look at the Python scripts.

You can also use Pipenv, simply after compilation call in the root directory

$ pipenv install
$ pipenv shell

then you can go to examples and have a look at the Python scripts.

CMake options

You can customize the build process by applying following CMake flags

  • WITH_XTC - build E++ with support of dumping trajectory to GROMACS xtc files (default: OFF).
  • CMAKE_INSTALL_PREFIX - where the E++ should be installed.
  • CMAKE_CXX_FLAGS - put specific compilation flags.

Then, the flags can be used in cmake

$ cmake -B builddir -DWITH_XTC=ON -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_CXX_FLAGS=-O3 .
$ cmake --build builddir

You can include ScaFaCoS Library (pre-installation required, see in http://www.scafacos.de/) into E++ compilation

$ cmake . -DCMAKE_PREFIX_PATH=[installation directory]
$ cmake --build .

You can also include Random123 Library (ONLY used for DPD thermostat, pre-download required)

$ git clone https://github.com/DEShawResearch/random123.git
$ cmake . -DRANDOM123_ROOT_DIR=[download directory]
$ cmake --build .

How to install E++ in some Linux distributions

Ubuntu

$ apt-get -qq install -y build-essential openmpi-bin libfftw3-dev python3-dev libboost-all-dev git python3-mpi4py cmake wget python3-numpy ipython3 clang llvm ccache python3-pip doxygen sphinx-common python3-matplotlib graphviz texlive-latex-base texlive-latex-extra texlive-latex-recommended ghostscript libgromacs-dev clang-format curl latexmk libhdf5-dev python3-h5py sudo

$ cd espressopp
$ cmake -B builddir .
$ cmake --build builddir

Fedora

$ dnf install -y make cmake wget git gcc-c++ doxygen python-devel openmpi-devel environment-modules python-pip clang llvm compiler-rt ccache findutils boost-devel boost-python3-devel python-sphinx fftw-devel python-matplotlib texlive-latex-bin graphviz boost-openmpi-devel ghostscript python3-mpi4py-openmpi texlive-hyphen-base texlive-cm texlive-cmap texlive-ucs texlive-ec gromacs-devel hwloc-devel lmfit-devel ocl-icd-devel hdf5-devel python-h5py atlas hdf5 liblzf python-six python-nose python-numpy
$ cd espressopp
$ cmake -B builddir .
$ cmake --build builddir

Documentation

http://espressopp.github.io

Reporting issues

Report bugs on the GitHub issues site

espressopp's People

Contributors

junghans avatar stuehn avatar brandest avatar niktre avatar jkrajniak avatar jnvance avatar govarguz avatar xzhh avatar acfogarty avatar xzzx avatar pdebuyl avatar tbereau avatar espressopp-bot avatar songbin6280 avatar jsmrek avatar gdeichmann avatar pgemuende avatar ppkk avatar vitst avatar

Watchers

 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.