Package: twod_materials
[![Build Status](https://travis-ci.org/ashtonmv/twod_materials.svg?branch=master)](https://travis-ci.org/ashtonmv/twod_materials)[![Coverage](https://codecov.io/gh/ashtonmv/twod_materials/coverage.svg?branch=master)](https://codecov.io/gh/ashtonmv/twod_materials)<img src="https://s3.amazonaws.com/mashton/twod_materials_logo.png" alt="Drawing" width="200"/>About twod_materials====================The official documentation for `twod_materials`, which includes a prettycomprehensive set of tutorials, can be found[here](https://pythonhosted.org/twod_materials/).The [wiki pages](https://github.com/ashtonmv/twod_materials/wiki) contain theunofficial but still well-maintained documentation for `twod_materials`,including the tutorials.# Overview #`twod_materials` is a library of functions that I've used in my research ondiscovering and characterizing 2D materials. Some of them I have used thousandsof times, and others I have used less than five times. The functions in`twod_materials` have been designed with user-friendliness as a priority,which occasionally comes at the expense of flexibility. For example, some of thepost-processing functions will assume you have used a certain directorystructure when organizing your calculations. The goal here was not to berestrictive, but to be streamlined.# Installation and setup #The latest stable release can be installed with ``pip``:```bashpip install numpypip install twod_materials```Alternatively, the very latest (no promises) version of `twod_materials` can beinstalled by cloning this repository. Once you've cloned iton your system, run `pip install numpy` and then`pip install -r requirements.txt` to install its dependencies. You should thenadd its location to your system's `$PYTHONPATH` so you can import itsfunctions from anywhere. There are a few ways to do this, including adding thefollowing line to your `~/.bashrc` file:```export PYTHONPATH=$PYTHONPATH:/path/to/twod_materials  # obviously change this```Edit config.yaml with your system's settings, following the template:```mp_api: your_materials_project_api_keynormal_binary: path_to_normal_vasp_executabletwod_binary: path_to_twod_vasp_executablepotentials: path_to_your_vasp_potentialsqueue_system: slurm_or_pbs```and then copy or move it to your home directory (~).# How the package is structured #There are five mature modules in `twod_materials`: `stability`,`electronic_structure`, `pourbaix`, `friction`, and `intercalation`.The `magnetism` module is, for now, still in its infancy. The `utils` moduleis basically just a library of helper functions used throughout the otherpackages.Each of these modules has two submodules: `startup` and `analysis`. Formost modules, `startup` contains functions that set up and submit VASPcalculations by interacting with your machine's queue system (PBS or SLURM). Itmight be helpful to think of the `startup` submodules as pre-processing tools.The `analysis` submodules, then, contain post-processing functions. Thesepost-processing functions can be grouped into two main categories: functions foranalyzing data and functions for plotting it. All plotting functions use`matplotlib`.Throughout the package, there are a few configuration files that for the mostpart don't need to be changed (as opposed to config.yaml, which does):potcar_symbols.yaml and the yaml files under the `pourbaix` module.See the [tutorials](https://github.com/ashtonmv/twod_materials/wiki/Tutorial-1:-stability)for sample usage of every function in `twod_materials`.