Skip to main content

A python data analysis library for computer simulations

Project description

PyMatterSim

Summary

Physics-driven data analyis of computer simulations for materials science, chemistry, physics, and beyond.

Installation [in a virtual environment]

Preparation: You need a C++compiler and cmake, which can be obtained from the source code installation section.

  • python3.10 -m venv .venv
  • source .venv/bin/activate
  • pip install PyMatterSim
  • version upgrade pip install --upgrade pymattersim

Install from source

  • You need a C++compiler that supports at least the C++11 standard and cmake.

    Recommend using conda or mamba for installation.

    Linux: conda install gxx cmake or mamba install gxx cmake

    Mac OS.conda install clang cmake or mamba install clang cmake

    Windows: conda install gxx cmake or mamba install gxx cmake or Download visual studio installer from here and install the C++ compiler.

    A package manager is also a good choice, for example:

    ubuntu: sudo apt-get install g++ cmake

    centos: sudo yum install gcc-c++ cmake3

    macos: brew install gcc cmake

    Now that you have all the build tools, pip will help you complete everything for compilation.

git clone https://gitee.com/yuanchaohu/pymattersim  --recursive # get submodule
cd  pymattersim
pip install .

Confirm installation

Acceleration is enabled by default. You can determine whether to enable acceleration by importing the _acc module and checking the variables.

from PyMatterSim import _acc
print(_acc.ENABLE_ACC) # should be True

We also provide an environment variable DISABLE_ACC to disable acceleration code. Note that setting it to any non-zero value will result in disabling acceleration code.

export DISABLE_ACC=1 # will disable acceleration
# If you want to reactivate acceleration, do this.
unset(DISABLE_ACC) # will reactivate acceleration

Documentation

The documentation is now available online.

Requirements

  • python 3.8-3.11 (recommend 3.10)
  • numpy==1.26.4
  • pandas==2.1.4
  • freud-analysis==3.0.0
  • scipy==1.15.2
  • sympy==1.12
  • gsd (optional)
  • mdtraj (optional)
  • voro++ (optional, standalone binary)

Usage

Please refer to the /docs/ for documentation and examples. Some examples are provided from the unittest modules (tests/)

Types of computer simulations

  1. LAMMPS
    1. atom type & molecular type such as patchy particle, rigid body, molecules et al.
    2. x, xs, xu type particle positions
    3. orthagonal / triclinic box
  2. Hoomd-blue
    1. GSD for structure analysis (need gsd==3.2.0)
    2. GSD + DCD for dynamics analysis (need gsd==3.2.0 and mdtraj==1.9.9)
  3. VASP (to be added)
  4. Any type of simulators as long as the input were formatted well, modifying the reader module to use the computational modules.

Notes

Voro++ is recommended to install separately for specific Voronoi analysis. Some of the analysis from the original voro++ is maintained from the freud-analysis package developed by the Glozter group.

Citation

@article{hu2024pymattersimpythondataanalysis,
      title={PyMatterSim: a Python Data Analysis Library for Computer Simulations of Materials Science, Physics, Chemistry, and Beyond}, 
      author={Y. -C. Hu and J. Tian},
      year={2024},
      eprint={2411.17970},
      archivePrefix={arXiv},
      primaryClass={cond-mat.mtrl-sci},
      url={https://arxiv.org/abs/2411.17970}, 
}

References

UnitTest

Please run the bash scripts available from shell/ for unittests. As follows are test statistics:

Test # Tests and Runtime Status
test_dynamics Ran 15 tests in 10.303s OK
test_neighbors Ran 11 tests in 91.711s OK
test_reader Ran 11 tests in 0.270s OK
test_static Ran 28 tests in 298.248s OK
test_utils Ran 30 tests in 4.997s OK
test_writer Ran 3 tests in 0.005s OK

The activation of the acceleration code is slightly different for unit-test, and you need to manually compile the dynamic link library and place it in the _acc module.

# compile the dynamic link library
mkdir build
cd build
cmake ..
make
cp PyMatterSim/_acc/acc.cpython-313-x86_64-linux-gnu.so ../PyMatterSim/_acc/ # The dynamic library name varies depending on your platform.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

PyMatterSim-0.1.5.tar.gz (104.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

PyMatterSim-0.1.5-cp311-cp311-macosx_14_0_arm64.whl (187.4 kB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

File details

Details for the file PyMatterSim-0.1.5.tar.gz.

File metadata

  • Download URL: PyMatterSim-0.1.5.tar.gz
  • Upload date:
  • Size: 104.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.8

File hashes

Hashes for PyMatterSim-0.1.5.tar.gz
Algorithm Hash digest
SHA256 595bf039e029a995579e25acc74b67c181d2ff8072cfc82d28232f2e66a235c4
MD5 e830369ef0db3fd72b6b9547cde76c31
BLAKE2b-256 af208f8c765cb8ec17326b36db3874267cf8dfad2d0ff3274ef88f84e8273cbc

See more details on using hashes here.

File details

Details for the file PyMatterSim-0.1.5-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for PyMatterSim-0.1.5-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 dca12583b63f102a330b131a96253e9a0eb2edd0129586944c8fb56559fad50d
MD5 a633efd37fa5af268ad43024164c5f98
BLAKE2b-256 6fa01b0e011cc5c55b61129d2b6f16367997dcb7b4c7578bf1bc5165340525fe

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page