Skip to main content

High throughput computation with density functional theory, molecular dynamics and machine learning

Project description


NIST's Joint Automated Repository for Various Integrated Simulations (JARVIS) is an integrated framework for computational science using density functional theory,
classical force-field/molecular dynamics and machine-learning. JARVIS heavily uses VASP, LAMMPS,
pymatgen, ase and scikit-learn packages. Official website:

Installing JARVIS
- First we recommend installing miniconda environment from .

bash (for linux)
bash (for Mac)
Download 32/64 bit python 3.6 miniconda exe and install (for windows)
- Now, let's make a conda environment just for JARVIS::

conda create --name my_jarvis python=3.6
- The 'my_jarvis' environment can be activated using the command::

source activate my_jarvis

- Then, get jarvis repo using the command::

git clone
- Install dependencies::

pip install numpy
pip install scipy
pip install scikit-learn
pip install pymatgen
pip install monty
- Go to the jarvis directory and type::

python install

Running the examples
- LAMMPS example: An example calculation for Aluminum is given in the lammps folder for running EAM calculation ( Untar the example folder using tar -xvzf Al03.eam.alloy_nist.tgz . Change the 'parameters' variable in to accommodate your lammps executable path, inelast.mod and dsiplace.mod path according to your system. Right now, crystal structures are obtained from materials-project, so MAPI_KEY needs to be adjusted also. Then, type python which will launch jobs on your cluster. A json file is created as any lammps calculation get created. First, the geometry is optimized using LAMMPS. Then, symmetrically distinct vacancies are created and their energetics is determined. Reference elements are also downloaded from MP and their energies are calculated for measuring the chemical potemtial used in defect calculation. Afterthat, surfaces with miller index upto 3 is created and their energies are calculated. Perfect cell is used as reference to calculate surface energies. Finally, phonons are calculated using phonopy package. We use ASE to make interface between phonopy and LAMMPS.
- VASP example: Similarly, an example calculation for Silicon is given in vasp folder ( The input is a POSCAR file, which is already provided. executable paths, pseudopotential directory path and Special_POTCAR.yaml path needs to be adjusted in top section. The can be submitted to the queuing system with qsub Adjust path and your cluster specifics in The contents of and should be independent of PBS/SLURM or any other cluster. After successful submission of the script a series of ENCUT- and KPOINTS- files are produced for plane wave convergence and kpoint convergence. After that, geometry is optimized with force-convergence criteria in MAIN-RELAX file. The crystal structure used in MAIN-RELAX calculation is then used for subsequent band-structure, dielectric function, MBJ calculation and elastic property calculations. Each complete calculation is notified with generation of respective json file.
- ML example: We trained machine learning models using JARVIS-DFT data on bandgaps, formation energies and elastic modulus and other properties. We used both chemical and structural descriptors during GradientBoostingRegression training. Example of getting 1557 descriptors for a system is given at:
- Access to JARVIS database: Our database is freely available at and, for JARVIS-DFT and JARVIS-FF. JARVIS-FF and its development version has data for energetics, elastic constants, defect formation energies, surface energies and phonon properties. JARVIS-DFT has 3D and 2D properties of materials such as energetics, X-ray diffraction (for 3D), radial-distribution function, electronic density of states, electrostatic potential and band-structure, MBJ and semi-local dielectric function calculation, elastic properties and allied gamma-point unconverged phonons and thermoelectric properties. JARVIS-DFT can be downloaded in json format also now using the link provided and JARVIS-DFT webpage.

Jupyter notebooks



How to cite JARVIS

Kamal Choudhary, Francesca Tavazza (NIST)

Faical Yannick Congo, Kevin Garrity, Brian DeCost, Adam Biacchi,
Lucas Hale, Andrew Reid, Marcus Newrock (NIST)

Link to presentation slides

Project details

Release history Release notifications

Download files

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

Files for pyjarvis, version 2018.8.11
Filename, size File type Python version Upload date Hashes
Filename, size pyjarvis-2018.8.11-py2.py3-none-any.whl (110.4 kB) File type Wheel Python version py2.py3 Upload date Hashes View
Filename, size pyjarvis-2018.8.11.tar.gz (68.4 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page