A simple package to run and analyze VASP calculations
Project description
__ __ __ __
\ \ / / | \/ |
\ \ / /_ _ ___ _ __ | \ / | __ _ _ __ __ _ __ _ ___ _ __
\ \/ / _` / __| '_ \| |\/| |/ _` | '_ \ / _` |/ _` |/ _ \ '__|
\ / (_| \__ \ |_) | | | | (_| | | | | (_| | (_| | __/ |
\/ \__,_|___/ .__/|_| |_|\__,_|_| |_|\__,_|\__, |\___|_|
| | __/ |
|_| |___/ v1.3.4
Automatically run VASP relaxation, static, bulk moduli, or elastic constant
calculations
How to Install
- Create a new environment with python version $\geq$ 3.10
- Clone this repository
- Run
pip install -e .or optionallypip install -e .[dev]to include packages needed for development/contribution
This package is also available on
PyPi. To install, run
pip install vasp-manager.
User Guide
This package serves to automate VASP calculations. VASP input creation is
automatic, and so is job submission, queue monitoring, calculation analysis, and
storage of the results. Simply rerun the main script and any calculations that
are ready for the next type of calculation will be created and submitted.
VaspManager
The main class for handling all calculations is vasp_manager.VaspManager,
which takes in a list of calculation types and material paths. See the class
documentation for more details. By default, results are exported to
calculations/results.json.
The bulk moduli analysis is carried out in the backend using the open-source
pymatgen software to fit an EOS and elastic constant analysis using custom
scripts.
Calculation Modes
We include calculation modes "rlx-coarse", "rlx", "static", "bulkmod",
and "elastic". The desired modes to calculate are specified when
initializing a VaspManager object.
rlx-coarse: lower precision energy-based relaxationrlx: tighter force-based relaxationstatic: high accuracy static SCF calculationbulkmod: bulk modulus calculation using an Equation of State (EOS) fit to an energy-volume curve- Can be run as a standalone (no relaxation required) calculation of bulk modulus using an EOS (although this is not recommended unless you are sure the cell volume is very close to the equilibrium value)
elastic: Determination of elastic constants using the strain/deformation method built intoVASP
I generally recommend starting from rlx-coarse, although the functionality is
there to start a rlx calculation from the initially provided POSCAR.
Most users' workflows follow rlx-coarse → rlx → static. The
modes static, bulkmod, and elastic can all be run independently of each
other. For example, workflows might look like rlx-coarse → rlx
→ static → bulkmod, or rlx → elastic, or simply
static or bulkmod. The elastic mode requires at least rlx preceding it
in order to guarantee converged lattice parameters and atomic positions.
Usage Guide
In order to use this package, you MUST
- Create a calculations folder where you'd like to run your calculations. Each
subfolder of
calculations/should have a unique name and contain aPOSCAR. A sample method of creating the calculations folder from ajsonwith names and cifs is available inrun_vasp_calculations.py, and an example calculations folder is provided incalculations/. - Configure
computing_config.jsonand place it in thecalculations/directory. You will need to specify youruser_id, apotcar_directory, aqueuetype, yourallocationand avasp_module(VASP 6 strongly recommended). As of now, only Perlmutter and Bridges2 at NERSC and QUEST at Northwestern University are supported. Any other SLURM based supercomputers can be easily added, but modifications could be made for other queue management systems. - If desired, make modifications to
calc_config.json. This must also be placed in thecalculations/directory. Each mode has its own configuration settings with sensible defaults, but these can be easily customized by the user.- To include spin polarization, set
"ispin": "auto"incalc_config.json; otherwise set"ispin": 1. With this setting, all elements with valence d or f electrons will start with initial magnetic moments of 5 and 7 $\mu_B$, respectively.VaspManageralso accepts an additional argumentmagmom_per_atom_cutoffwhich defaults to 0. If this argument is passed,rlxcalculations that finish with a magmom per atom less than this value with be re-run without spin polarization. This argument only affectsrlxcalculations, and the spin setting for followingstatic,bulkmod, orelasticcalculations is inferred from the finalrlxcalculation. - To include DFT+U for transition metal oxides, set
"hubbards": "wang"; otherwise, set"hubbards": null. Currently, only"gga": "PE"(PBE) is supported.
- To include spin polarization, set
To manually stop VaspManager from processing a material, place a STOP file
in that material's directory: e.g. calculations/NaCl/STOP.
The module logger is also made available for information and debugging and can
be accessed through logging.getLogger("vasp_manager").
Notes
- The current implementation has only been tested on Linux and Mac OS.
- At this point, KPOINT generation is handled through the KSPACING tag in the INCAR, but future versions will be able to specify KPPRA or a manual grid instead. Spin-orbit coupling calculations are also not currently supported.
\\ TODO: Implement band-structure calculations and possibly phonopy
calculations
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vasp_manager-1.3.4.tar.gz.
File metadata
- Download URL: vasp_manager-1.3.4.tar.gz
- Upload date:
- Size: 6.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
17fbef66b580ea9bbcb1db50e8d8ebad28545a4dfd19c70074c112d77b0efa41
|
|
| MD5 |
0d807caba88f762dced11b58b1ae347c
|
|
| BLAKE2b-256 |
c06fdd01fdd7177dc2aa6b0c0e665d1dfccc0712fb70781bacec7b14b1d31bf8
|
Provenance
The following attestation bundles were made for vasp_manager-1.3.4.tar.gz:
Publisher:
publish.yml on dgaines2/vasp_manager
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vasp_manager-1.3.4.tar.gz -
Subject digest:
17fbef66b580ea9bbcb1db50e8d8ebad28545a4dfd19c70074c112d77b0efa41 - Sigstore transparency entry: 346634542
- Sigstore integration time:
-
Permalink:
dgaines2/vasp_manager@272d730791f20237a0cd48840273dc7c35856b88 -
Branch / Tag:
refs/tags/v1.3.4 - Owner: https://github.com/dgaines2
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@272d730791f20237a0cd48840273dc7c35856b88 -
Trigger Event:
push
-
Statement type:
File details
Details for the file vasp_manager-1.3.4-py3-none-any.whl.
File metadata
- Download URL: vasp_manager-1.3.4-py3-none-any.whl
- Upload date:
- Size: 6.9 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b2fc744622387515703c58fa10bbe6f37e636f2f6ed9e1e0f5edc22aaf885b03
|
|
| MD5 |
7d626c3b82de1f7fe8ea4851d1cc1390
|
|
| BLAKE2b-256 |
93b8a85e236f4cf025bbf0e0a72c9acf3a1fd7ae1ddc5924d0b474d8049b8b30
|
Provenance
The following attestation bundles were made for vasp_manager-1.3.4-py3-none-any.whl:
Publisher:
publish.yml on dgaines2/vasp_manager
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vasp_manager-1.3.4-py3-none-any.whl -
Subject digest:
b2fc744622387515703c58fa10bbe6f37e636f2f6ed9e1e0f5edc22aaf885b03 - Sigstore transparency entry: 346634543
- Sigstore integration time:
-
Permalink:
dgaines2/vasp_manager@272d730791f20237a0cd48840273dc7c35856b88 -
Branch / Tag:
refs/tags/v1.3.4 - Owner: https://github.com/dgaines2
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@272d730791f20237a0cd48840273dc7c35856b88 -
Trigger Event:
push
-
Statement type: