jarvis-tools: an open-source software package for data-driven atomistic materials design. https://jarvis.nist.gov/
Project description
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 and YouTube videos
Capabilities
Software workflow tasks for preprcessing 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 .
Installation
>>> pip install -U jarvis-tools
For detailed instructions, please see Installation instructions
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
References
Please see Publications related to JARVIS-Tools
Documentation
Correspondence
Please report bugs as Github issues (https://github.com/usnistgov/jarvis/issues) or email to kamal.choudhary@nist.gov.
Funding support
NIST-MGI (https://www.nist.gov/mgi).
Code of conduct
Please see Code of conduct
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
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
Hashes for jarvis_tools-2021.2.22-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 98a65155e4753c14017f48deb04ab863310ecc5b4916d47781991ed21cf83434 |
|
MD5 | 015b6fac3c34d92eb5bd11c942f69055 |
|
BLAKE2b-256 | 1375512b4e60cfeb89660c4f9d07d9156d4cb37ec0f0dd37b16a2662e5363f66 |