Skip to main content

pymatgen is the Python library powering the Materials Project (www.materialsproject.org).

Project description

## Introduction ##

Pymatgen is the python library that powers the Materials Project (http://www.materialsproject.org). This repo contains the public version of this powerful library. These are some of the key features:

1. Highly flexible classes for the representation of Element, Site, Structure objects.
2. Powerful io capabilities to manipulate many VASP input and output files (http://cms.mpi.univie.ac.at/vasp/) and the crystallographic information file format. This includes generating Structure objects from vasp input and output.
3. A comprehensive tool to generate and view compositional and grand canonical phase diagrams.

The public version of pymatgen is free (as in free beer) to download and to use. However, we would also like you to help us improve this library by making your own contributions as well. These contributions can be in the form of additional tools or modules you develop, or even simple things such as bug reports. Please contact the maintainer of this library (shyue@mit.edu) to find out how to include your contributions via github or for bug reports.

## Requirements ##

Required for proper functioning of the code.

1. Python 2.7+ required. New default modules such as json are used, as well as new unittest features in Python 2.7.
2. numpy - For array, matrix and other numerical manipulations. Used extensively by all core modules.
3. scipy 0.9+ - For interpolation, physical constants and other functions. In particular, scipy.spatial.Delaunay is used for phase diagram construction.
5. nose - For complete unittesting. This is NOT optional!

## Optional Python Libraries ##

Optional python libraries that are required if you need certain features.

1. matplotlib : For plotting (e.g., Phase Diagrams) using the pymatgen.phasediagrams package.
2. [PyCifRW](http://prdownload.berlios.de/pycifrw/PyCifRW-3.3.tar.gz) : For reading and writing Crystallographic Information Format (CIF) files using the pymatgen.io.cifio module [more info](http://pycifrw.berlios.de/)
3. [Pyspglib](http://spglib.sourceforge.net/) : For symmetry finding [more info](http://spglib.sourceforge.net/) using the pymatgen.spglib package.
4. VTK with Python bindings (http://www.vtk.org/): For visualization of crystal structures using the pymatgen.vis package.
5. Atomistic Simulation Environment or ASE (https://wiki.fysik.dtu.dk/ase/): Required for the usage of the adapters in pymatgen.io.aseio between pymatgen's core Structure object and the Atoms object used by ASE.

## Optional non-Python programs ##

Optional non-python libraries (because no good pythonic alternative exists at the moment) required only for certain features.

1. [Qhull](http://www.qhull.org/) : Needed for bond length analysis (structure_analyzer.py). The executable qconvex and qvoronoi must be in the path.
2. [ffmpeg](http://www.http://ffmpeg.org//) : Needed for generation of movies (structure_vtk.py). The executable ffmpeg must be in the path.

## Basic Setup ##

1. Clone the repo.
2. Install the necessary python libraries.
3. (Recommended) Add pymatgen to your PYTHONPATH.
4. (Recommended for developers) Copy hooks from the example-hooks directory into the .git/hooks/ directory in your local repo.

With these two basic steps, you should be able to use most of the pymatgen code. I recommend that you start by reading some of the unittests in the tests subdirectory for each package. The unittests demonstrate the expected behavior and functionality of the code.

However, some extra functionality do require additional setup, as outlined below.

### Generating POTCARs ###
For the code to generate POTCAR files, it needs to know where the VASP pseudopotential files are. We are not allowed to distribute these under the VASP license. The good news is that we have included a setup script to help you along.

1. cd to the root directory of the repo where a file called run_me_first.sh is present.
2. Run the run_me_first.sh file, which will generate a resources directory in a location of your choosing. Please choose a location *outside* of the repo itself. The script will also write a pymatgen.cfg file in the pymatgen subdir.

## Basic usage ##

Some example scripts have been provided in the scripts directory. In general, most file format conversions, manipulations and io can be done with a few quick lines of code. For example, to read a POSCAR and write a cif:

from pymatgen.io.vaspio import Poscar
from pymatgen.io.cifio import CifWriter

p = Poscar('POSCAR')
w = CifWriter(p.struct)
w.write_file('mystructure.cif')

For more examples, please take a look at the wiki (http://github.com/CederGroupMIT/pymatgen_repo/wiki).

Project details


Release history Release notifications | RSS feed

This version

1.5.0

Download files

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

Source Distribution

pymatgen-1.5.0.tar.gz (131.8 kB view details)

Uploaded Source

Built Distribution

pymatgen-1.5.0-py2.7.egg (414.9 kB view details)

Uploaded Source

File details

Details for the file pymatgen-1.5.0.tar.gz.

File metadata

  • Download URL: pymatgen-1.5.0.tar.gz
  • Upload date:
  • Size: 131.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for pymatgen-1.5.0.tar.gz
Algorithm Hash digest
SHA256 86a78ac9ad90822a13971deeaea028e7cee104f4dad553ed7ea5173447bcf220
MD5 3fca448ff3fd384358f5ad2abd8ebf2c
BLAKE2b-256 e26d21bb9beff75f2738e2273242a6927d669b6c3edeeec271c02c2a5fac0c51

See more details on using hashes here.

File details

Details for the file pymatgen-1.5.0-py2.7.egg.

File metadata

  • Download URL: pymatgen-1.5.0-py2.7.egg
  • Upload date:
  • Size: 414.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for pymatgen-1.5.0-py2.7.egg
Algorithm Hash digest
SHA256 a5027343f57286114ed21b0e469078fe02dd478b51e637cfaedfd53047f92d62
MD5 2da23cd05b4e8f6e3ff53f3844353e3e
BLAKE2b-256 83d6d0fb3fafb53b88e2e33647c238cb25c2ac87755138f8e88c5d4a1bc889d1

See more details on using hashes here.

Supported by

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