usnistgov / Jarvis
Programming Languages
Labels
Projects that are alternatives of or similar to Jarvis
.. class:: center
.. image:: https://badge.fury.io/py/jarvis-tools.svg
:target: https://pypi.org/project/jarvis-tools/
.. image:: https://anaconda.org/conda-forge/jarvis-tools/badges/version.svg
:target: https://anaconda.org/conda-forge/jarvis-tools
.. image:: https://img.shields.io/github/v/tag/usnistgov/jarvis
:target: https://github.com/usnistgov/jarvis
.. image:: https://img.shields.io/travis/usnistgov/jarvis/master.svg?label=Travis%20CI
:target: https://travis-ci.org/usnistgov/jarvis
.. image:: https://ci.appveyor.com/api/projects/status/d8na8vyfm7ulya9p/branch/master?svg=true
:target: https://ci.appveyor.com/project/knc6/jarvis-63tl9
.. image:: https://github.com/usnistgov/jarvis/workflows/JARVIS-Tools%20github%20action/badge.svg
:target: https://github.com/usnistgov/jarvis
.. image:: https://github.com/usnistgov/jarvis/workflows/JARVIS-Tools%20linting/badge.svg
:target: https://github.com/usnistgov/jarvis
.. image:: https://img.shields.io/codecov/c/github/knc6/jarvis
:target: https://codecov.io/gh/knc6/jarvis
.. image:: https://img.shields.io/pypi/dm/jarvis-tools.svg
:target: https://img.shields.io/pypi/dm/jarvis-tools.svg
.. image:: https://pepy.tech/badge/jarvis-tools
:target: https://pepy.tech/badge/jarvis-tools
.. image:: https://zenodo.org/badge/DOI/10.5281/zenodo.3903515.svg
:target: https://doi.org/10.5281/zenodo.3903515
.. image:: https://app.codacy.com/project/badge/Grade/be8fa78b1c0a49c280415ce061163e77
:target: https://www.codacy.com/manual/knc6/jarvis?utm_source=github.com&
.. image:: https://img.shields.io/github/commit-activity/y/usnistgov/jarvis
:target: https://github.com/usnistgov/jarvis
.. image:: https://img.shields.io/github/repo-size/usnistgov/jarvis
:target: https://github.com/usnistgov/jarvis
.. image:: https://img.shields.io/badge/JARVIS-Figshare-Green.svg
:target: https://figshare.com/authors/Kamal_Choudhary/4445539
.. image:: https://img.shields.io/badge/JARVIS-DBDocs-Green.svg
:target: https://jarvis-materials-design.github.io/dbdocs
.. image:: https://img.shields.io/badge/JARVIS-ToolsDocs-Green.svg
:target: https://jarvis-tools.readthedocs.io/en/latest/index.html
========================================================================================
JARVIS-Tools: an open-source software package for data-driven atomistic materials design
NIST-JARVIS (Joint Automated Repository for Various Integrated Simulations) is an integrated framework for computational science using density functional theory, classical force-field/molecular dynamics and machine-learning. The jarvis-tools package consists of scripts used in generating and analyzing the dataset. The NIST-JARVIS official website is: https://jarvis.nist.gov . This project is a part of the Materials Genome Initiative (MGI) at NIST (https://mgi.nist.gov/).
For more details, checkout our latest article: The joint automated repository for various integrated simulations (JARVIS) for data-driven materials design <https://www.nature.com/articles/s41524-020-00440-1>
__ and YouTube videos <https://www.youtube.com/watch?v=P0ZcHXOC6W0&feature=emb_title&ab_channel=JARVIS-repository>
__
.. image:: https://www.ctcms.nist.gov/~knc6/images/logo/jarvis-mission.png :target: https://jarvis.nist.gov/
Capabilities
-
Software workflow tasks for preprcessing, executing and post-processing: VASP, Quantum Espresso, Wien2k BoltzTrap, Wannier90, LAMMPS, Scikit-learn, TensorFlow, LightGBM, Qiskit, Tequila, Pennylane.
-
Several examples: Notebooks and test scripts to explain the package.
-
Several analysis tools: Atomic structure, Electronic structure, Spacegroup, Diffraction, 2D materials and other vdW bonded systems, Mechanical, Optoelectronic, Topological, Solar-cell, Thermoelectric, Piezoelectric, Dielectric, STM, Phonon, Dark matter, Wannier tight binding models, Point defects, Heterostructures, Magnetic ordering, Images, Spectrum etc.
-
Database upload and download: Download JARVIS databases such as JARVIS-DFT, FF, ML, WannierTB, Solar, STM and also external databases such as Materials project, OQMD, AFLOW etc.
-
Access raw input/output files: Download input/ouput files for JARVIS-databases to enhance reproducibility.
-
Train machine learning models: Use different descriptors, graphs and datasets for training machine learning models.
-
HPC clusters: Torque/PBS and SLURM.
-
Available datasets:
Summary of several datasets <https://github.com/usnistgov/jarvis/blob/master/DatasetSummary.rst>
__ .
Installation
pip install -U jarvis-tools
or
conda install -c conda-forge jarvis-tools
For detailed instructions, please see Installation instructions <https://github.com/usnistgov/jarvis/blob/master/Installation.rst>
__
Do not install like this:
.. |ss| raw:: html
.. |se| raw:: html
|ss| pip install jarvis |se|
Example function
from jarvis.core.atoms import Atoms box = [[2.715, 2.715, 0], [0, 2.715, 2.715], [2.715, 0, 2.715]] coords = [[0, 0, 0], [0.25, 0.25, 0.25]] elements = ["Si", "Si"] Si = Atoms(lattice_mat=box, coords=coords, elements=elements) density = round(Si.density,2) print (density) 2.33
from jarvis.db.figshare import data dft_3d = data(dataset='dft_3d') print (len(dft_3d)) 36099 from jarvis.io.vasp.inputs import Poscar for i in dft_3d: ... atoms = Atoms.from_dict(i['atoms']) ... poscar = Poscar(atoms) ... jid = i['jid'] ... filename = 'POSCAR-'+jid+'.vasp' ... poscar.write_file(filename) dft_2d = data(dataset='dft_2d') print (len(dft_2d)) 1070 for i in dft_2d: ... atoms = Atoms.from_dict(i['atoms']) ... poscar = Poscar(atoms) ... jid = i['jid'] ... filename = 'POSCAR-'+jid+'.vasp' ... poscar.write_file(filename)
Example to parse DOS data from JARVIS-DFT webpages
from jarvis.db.webpages import Webpage from jarvis.core.spectrum import Spectrum import numpy as np new_dist=np.arange(-5, 10, 0.05) all_atoms = [] all_dos_up = [] all_jids = [] for ii,i in enumerate(dft_3d): all_jids.append(i['jid']) ... try: ... w = Webpage(jid=i['jid']) ... edos_data = w.get_dft_electron_dos() ... ens = np.array(edos_data['edos_energies'].strip("'").split(','),dtype='float') ... tot_dos_up = np.array(edos_data['total_edos_up'].strip("'").split(','),dtype='float') ... s = Spectrum(x=ens,y=tot_dos_up) ... interp = s.get_interpolated_values(new_dist=new_dist) ... atoms=Atoms.from_dict(i['atoms']) ... all_dos_up.append(interp) ... all_atoms.append(atoms) ... all_jids.append(i['jid']) ... filename=i['jid']+'.cif' ... atoms.write_cif(filename) ... break ... except Exception as exp : ... print (exp,i['jid']) ... pass
Find more examples at
1) https://jarvis-materials-design.github.io/dbdocs/tutorials
2) https://github.com/JARVIS-Materials-Design/jarvis-tools-notebooks
3) https://github.com/usnistgov/jarvis/tree/master/jarvis/tests/testfiles
References
Please see Publications related to JARVIS-Tools <https://jarvis-materials-design.github.io/dbdocs/publications/>
__
Documentation
https://jarvis-materials-design.github.io/dbdocs/
Correspondence
Please report bugs as Github issues (https://github.com/usnistgov/jarvis/issues) or email to [email protected].
Funding support
NIST-MGI (https://www.nist.gov/mgi).
Code of conduct
Please see Code of conduct <https://github.com/usnistgov/jarvis/blob/master/CODE_OF_CONDUCT.md>
__
Module structure
::
jarvis/
├── ai
│ ├── descriptors
│ │ ├── cfid.py
│ │ ├── coulomb.py
│ ├── gcn
│ ├── pkgs
│ │ ├── lgbm
│ │ │ ├── classification.py
│ │ │ └── regression.py
│ │ ├── sklearn
│ │ │ ├── classification.py
│ │ │ ├── hyper_params.py
│ │ │ └── regression.py
│ │ └── utils.py
│ ├── uncertainty
│ │ └── lgbm_quantile_uncertainty.py
├── analysis
│ ├── darkmatter
│ │ └── metrics.py
│ ├── defects
│ │ ├── surface.py
│ │ └── vacancy.py
│ ├── diffraction
│ │ └── xrd.py
│ ├── elastic
│ │ └── tensor.py
│ ├── interface
│ │ └── zur.py
│ ├── magnetism
│ │ └── magmom_setup.py
│ ├── periodic
│ │ └── ptable.py
│ ├── phonon
│ │ ├── force_constants.py
│ │ └── ir.py
│ ├── solarefficiency
│ │ └── solar.py
│ ├── stm
│ │ └── tersoff_hamann.py
│ ├── structure
│ │ ├── neighbors.py
│ │ ├── spacegroup.py
│ ├── thermodynamics
│ │ ├── energetics.py
│ ├── topological
│ │ └── spillage.py
├── core
│ ├── atoms.py
│ ├── composition.py
│ ├── graphs.py
│ ├── image.py
│ ├── kpoints.py
│ ├── lattice.py
│ ├── pdb_atoms.py
│ ├── specie.py
│ ├── spectrum.py
│ └── utils.py
├── db
│ ├── figshare.py
│ ├── jsonutils.py
│ ├── lammps_to_xml.py
│ ├── restapi.py
│ ├── vasp_to_xml.py
│ └── webpages.py
├── examples
│ ├── lammps
│ │ ├── jff_test.py
│ │ ├── Al03.eam.alloy_nist.tgz
│ ├── vasp
│ │ ├── dft_test.py
│ │ ├── SiOptb88.tgz
├── io
│ ├── boltztrap
│ │ ├── inputs.py
│ │ └── outputs.py
│ ├── calphad
│ │ └── write_decorated_poscar.py
│ ├── lammps
│ │ ├── inputs.py
│ │ └── outputs.py
│ ├── pennylane
│ │ ├── inputs.py
│ ├── phonopy
│ │ ├── fcmat2hr.py
│ │ ├── inputs.py
│ │ └── outputs.py
│ ├── qe
│ │ ├── inputs.py
│ │ └── outputs.py
│ ├── qiskit
│ │ ├── inputs.py
│ ├── tequile
│ │ ├── inputs.py
│ ├── vasp
│ │ ├── inputs.py
│ │ └── outputs.py
│ ├── wannier
│ │ ├── inputs.py
│ │ └── outputs.py
│ ├── wanniertools
│ │ ├── inputs.py
│ │ └── outputs.py
│ ├── wien2k
│ │ ├── inputs.py
│ │ ├── outputs.py
├── tasks
│ ├── boltztrap
│ │ └── run.py
│ ├── lammps
│ │ ├── templates
│ │ └── lammps.py
│ ├── phonopy
│ │ └── run.py
│ ├── vasp
│ │ └── vasp.py
│ ├── queue_jobs.py
├── tests
│ ├── testfiles
│ │ ├── ai
│ │ ├── analysis
│ │ │ ├── darkmatter
│ │ │ ├── defects
│ │ │ ├── elastic
│ │ │ ├── interface
│ │ │ ├── magnetism
│ │ │ ├── periodic
│ │ │ ├── phonon
│ │ │ ├── solar
│ │ │ ├── stm
│ │ │ ├── structure
│ │ │ ├── thermodynamics
│ │ │ ├── topological
│ │ ├── core
│ │ ├── db
│ │ ├── io
│ │ │ ├── boltztrap
│ │ │ ├── calphad
│ │ │ ├── lammps
│ │ │ ├── pennylane
│ │ │ ├── phonopy
│ │ │ ├── qiskit
│ │ │ ├── qe
│ │ │ ├── tequila
│ │ │ ├── vasp
│ │ │ ├── wannier
│ │ │ ├── wanniertools
│ │ │ ├── wien2k
│ │ ├── tasks
│ │ │ ├── test_lammps.py
│ │ │ └── test_vasp.py
└── README.rst