JARVIS-DFT is a density functional theory-based database for ~40000 3D, ~1000 2D materials and around a million calculated properties. JARVIS-DFT mainly uses vdW-DF-OptB88 functional for geometry optimization. It also uses beyond-GGA approaches, including Tran-Blaha modified Becke-Johnson (TBmBJ) meta-GGA, PBE0, HSE06, DMFT, G0W0 for analyzing selective cases. In addition to hosting conventional properties such as formation energies, bandgaps, elastic constants, piezoelectric constants, dielectric constants, and magnetic moments, it also contains unique datasets, such as exfoliation energies for van der Waals bonded materials, spin-orbit coupling spillage, improved meta-GGA bandgaps, frequency-dependent dielectric function, spin-orbit spillage, spectroscopy limited maximum efficiency (SLME), infrared (IR) intensities, electric field gradient (EFG), heterojunction classifications, and Wannier tight-binding Hamiltonians. These datasets are compared to experimental results wherever possible, to evaluate their accuracy as predictive tools. JARVIS-DFT introduces protocols such as automatic k-point convergence that can be critical for obtaining precise and accurate calculation results.
Table. A brief summary of datasets available in the JARVIS-DFT.
|Total DFT calculated systems||37646|
Table. A brief summary of functionals used in optimizing crystal geometry in the JARVIS-DFT.
Table. A brief summary of material-properties available in the JARVIS-DFT. The database is continuously expanding.
|Optimized crystal-structure (OPT)||37646|
|Exfoliation energy (OPT)||819|
|Frequency dependent dielectric tensor (OPT)||34045|
|Frequency dependent dielectric tensor (TBmBJ)||15655|
|Finite-difference phonons at Г-point (OPT)||15500|
|Work-function, electron-affinity (OPT)||1105|
|Theoretical solar-cell efficiency (SLME) (TBmBJ)||5097|
|Topological spin-orbit spillage (PBE+SOC)||11500|
|Wannier tight-binding Hamiltonians (PBE+SOC)||1771|
|Seebeck coefficient (OPT, BoltzTrap)||22190|
|Power factor (OPT, BoltzTrap)||22190|
|Effective mass (OPT, BoltzTrap)||22190|
|Magnetic moment (OPT)||37528|
|Piezoelectric constant (OPT, DFPT)||5015|
|Dielectric tensor (OPT, DFPT)||5015|
|Infrared intensity (OPT, DFPT)||5015|
|DFPT phonons at Г-point (OPT)||5015|
|Electric field gradient (OPT)||15187|
|Non-resonant Raman intensity (OPT, DFPT)||250|
|Scanning tunneling microscopy images (PBE+SOC)||770|
The initial/input crystal structures were obtained from the Inorganic Crystal Structure Database, Materials Project, OQMD, AFLOW, COD databases. These input structures are then subjected to a set of geometric and electronic optimizations (discussed below) following JARVIS-DFT workflow protocols. After the geometric optimization, several materials properties are calculated .
# Make sure JARVIS_VASP_PSP_DIR is correctly set for VASP pseudopotentials. from jarvis.io.vasp.inputs import Poscar from jarvis.tasks.vasp.vasp import JobFactory p = Poscar.from_file("POSCAR") print (p) JobFactory().all_optb88vdw_props(mat=p)
DFT calculations were carried out using the Vienna Ab-initio simulation package (VASP) software using the workflow given on our JARVIS-Tools github page (https://github.com/usnistgov/jarvis). We use the projected augmented wave method . Both the internal atomic positions and the lattice constants are allowed to relax in spin-unrestricted calculations until the maximal residual Hellmann–Feynman forces on atoms are smaller than 0.001 eV Å−1 and energy-tolerance of 10-7 eV with accurate precision setting (PREC=Accurate). Note that force convergence is important for properties such as phonons, elastic constants etc. We use spin-polarized set-up with initial magnetic moment of default value 1 muB during geometric optimization. Also use conjugate gradient algorithm for ionic relaxation (IBRION=2).
We mainly use OptB88vdW method for our calculations, but we also carryout local density approximation (LDA) and generalized gradient approximation with Perdew-Burke-Ernzerhof (GGA-PBE)-based calculations for benchmarking purposes. OptB88vdW functional, has been shown to gives accurate lattice parameters for both van der Waals (vdW) and non-vdW solids. TBmBJ potential is used as a meta-GGA method for better predicting the bandgaps and dielectric function of a material on the OptB88vdW optimized cell.
from jarvis.tasks.vasp.vasp import GenericIncars pbe = GenericIncars().pbe() optb88vdw = GenericIncars().optb88vdw() lda = GenericIncars().lda()
K-point and cut-off convergence
We use the Monkhorst-Pack scheme to generate k-points, but after the generation, the grid is shifted so that one of the k-points lies on the Г-point. We included the gamma-point because we were interested in computing quantities that require gamma-point contribution, such as optical transition for our optoelectronic database, gamma-point phonons for our elastic properties, finding multiferroic materials which have negative phonons at the gamma-point. The k-points are continuously stored in memory, to check that each of the new k-points generated by equation is unique. The k-points line density starts from length 0, with Г-point being the only k-point and is increased by 5 Å at each successive iteration if the difference between the energy computed with the new k-points and the one computed with previous k-points is more than the tolerance. After the convergence with a particular tolerance, we compute five extra points to further ensure the convergence. This procedure is repeated until convergence is found for all 5 extra points. A similar convergence procedure is carried out for the plane wave cut-off until the energy difference between successive iterations is less than the tolerance for 6 successive points. The plane wave cut-off is increased by 50 eV each time, starting from 500 eV. In both convergence procedures, we perform only single step electronic relaxation, i.e. no ionic relaxation is considered. When starting the cut-off energy convergence, we used a minimal k-point length of 10 Å. Similarly, for the k-point convergence we started with a cut-off of 500 eV. We used Gaussian smearing (with 0.01 eV parameter) which is recommended by several DFT codes, because it is less sensitive than other methods to determine partial occupancies for each orbital. This leads to an easier DFT-SCF convergence, especially when the materials are not apriori known to be a metal or insulator, which is always the case in this work. However, it is to be emphasized that, in principle, k-points and smearing parameters should be converged together, but this requires a very computationally expensive workflow. For this reason, we choose to converge k-points and cut-off only. In addition to the above convergence procedure, we further increase the cut-off by 30% for elastic, dielectric and electric field gradient, piezoelectric tensors as the volume and shape of the material may change during the distortions.
optb88 = GenericIncars().optb88vdw() job = JobFactory(use_incar_dict=optb88.incar, pot_type=optb88.pot_type) encut = job.converg_encut(mat=mat) length = job.converg_kpoint(mat=mat) energy, contcar_path = job.optimize_geometry( mat=mat, encut=encut, length=length )
DFT+U corrections are used only for special cases because it is somewhat tricky to get formation energies from the total energies obtained from such calculations. DFT+U calculations are used during magnetic topologic insulator search cases mainly. We generally use U=3.0 eV or complete U-scan (0 to 3 eV) for enumerating the effects of U-parameter.
from jarvis.io.vasp.inputs import find_ldau_magmom atoms=Atoms.from_poscar('POSCAR') ld_soc = find_ldau_magmom(atoms=atoms,lsorbit=True) ld_nonsoc = find_ldau_magmom(atoms=atoms,lsorbit=False)
Spin-orbit coupling usually split states that are degenerate in a nonrelativistic description. We consider spin-orbit coupling (LSORBIT = .TRUE.) only during spin-orbit spillage calculations for topological materials but not during geometric optimization or any other major property calculations. We take into account only scalar relativistic effects. Accurate lattice-constants of materials with vdW bonding can play a critical role in predicting the correct topology, as emphasized. We calculate the spillage using the Perdew, Burke and Ernzerhof (PBE) functional and 1000/atom k-points, as well as by analyzing the spillage along a high-symmetry Brillouin-zone path, with a 600 eV plane-wave cut-off.
Beyond DFT methods
JARVIS-DFT contains data using conventional local and semi-local methods, as well as beyond conventional DFT based methods such as meta-GGA (TBmBJ), G0W0, HSE06, PBE0, DMFT etc. BDFT methods are used to better predict electronic bandgaps, dielectric functions hence solar-cell efficiencies, as well magnetic moment (using DMFT) of a material. HSE06 and PBE0 were used to predict accurate bandgaps for exfoliable bulk and corresponding monolayer materials. We utilized two hybrid functionals: PBE0 and HSE06. In PBE0 the exchange energy is given by a 3:1 ratio mix of the PBE and Hartree–Fock exchange energies, respectively, while the correlation is completely given by the PBE correlation energy. In HSE (Heyd–Scuseria–Ernzerhof), the exchange is given by a screened Coulomb potential, to improve computational efficiency. An adjustable parameter (ω) controls how short range the interaction is. HSE06 is characterized by ω=0.2, while for a choice of ω=0 HSE becomes PBE0.
Density functional perturbation theory
We carry out the Density functional perturbation theory (DFPT) (as implemented in the VASP code, IBRION=8) calculation on the standard conventional cell for each material. We determine the Born-effective charge, piezoelectric and dielectric (ionic+electronic parts) tensors and the phonon eigenvectors. DFPT is also used to calculate Infrared and Raman intensities for selected materials. As mentioned earlier, it is important to converge K-points, cut-off and parameters to get reliable results which is taken into account in the JARVIS-DFT.
The elastic tensor is determined by performing six finite distortions of the lattice and deriving the elastic constants from the strain-stress relationship. In addition to elastic tensor, the finite difference (IBRION=6) method used predicts the phonons at gamma-point for the conventional cell used.
To obtain the optical properties of the materials, we calculated the imaginary part of the dielectric function from the Bloch wavefunctions and eigenvalues (neglecting local field effects) (LOPTICS=.TRUE.). We introduced three times as many empty conduction bands as valance bands. This treatment is necessary to facilitate proper electronic transitions. We choose 5000 energy grid points to have a sufficiently high resolution in dielectric function spectra. Several properties such as absorption coefficient, solar-cell efficiency, and reflectivity can be predicted with the dielectric function data. Note that due to bandgap underestimation the peaks may beshifted. A better method such as TBmBJ, HSE06, G0W0 is necessary for predicting better behavior.
We use Wannier90 to construct Maximally-Localized Wannier Functions (MLWF) based TB-Hamiltonians. For the case of interest in this work, where we wish to describe both the valence and conduction bands near the Fermi level, it is necessary to first select a set of bands to Wannierize, which includes separating the conduction bands from the free-electron-like bands that generally overlap with them in energy. The procedure to determine this localized subspace of Bloch wavefunctions proceeds similarly to minimization described above, where after an initial guess, the subspace is iteratively updated in order to minimize the spread function. After this initial disentanglement step, the Wannierization of the selected subspace proceeds as described above. Due to the iterative non-linear minimization employed during both the disentanglement and Wannierization steps, the localization and utility of the final Wannier functions depend in practice on the initial choice of orbitals that are used to begin the disentanglement procedure, and which are then used as the initial guess for the Wannierization. Our initial guesses consist of a set of atomic orbitals we have chosen to describe all the chemically relevant orbitals for each element in typical elemental systems and compounds.
During the disentanglement step, it is possible to choose an energy range that is included exactly (“the frozen window”), with the result that the Wannier band structure will exactly match the DFT band structure in this energy range and at the grid of k-points used in the Wannierization. We use a frozen window of ± 2 eV around the Fermi-energy. This window ensures that bands near the Fermi level are well described by the WTBH. For cases where the original WFs were unsatisfactory (see below), we found that lowering the lower bound of this window to include all of the valence bands often improves that WTBH, which we use as a second Wannierization setting. In order to validate our WTBH, we calculate the maximum absolute difference (μ) between the Wannier and DFT eigenvalues within an energy range of ± 2eV around the Fermi level.
A weakness of this evaluation method is that highly dispersive energy bands (high (dE_nk)/dk) can result in high μ values even if the WTBH is of good quality because any slight shift in the k-direction of a dispersive band will result in a large energy error. We consider that systems with μ less than 0.1 eV to useful for most applications, and we provide data for the user to evaluate individual WTBH for their own applications.
from jarvis.io.wannier.inputs import Wannier90win 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) Wannier90win(struct=Si, efermi=0.0).write_win(name=win)
The transport properties were calculated using the Boltzmann transport equation (BTE) implemented in the BoltzTrap code. The BTE is used to investigate the non-equilibrium behavior of electrons and holes by statistically averaging all possible quantum states. The computation of the relaxation time is very computationally expensive, especially in a high-throughput context, hence a constant relaxation time approach is used here.
from jarvis.tasks.boltztrap.run import run_boltztrap path = 'xyz' run_boltztrap(path)
Partial charge density
The partial charge densities are used to calculate scanning tunneling microscopy images. The surface charge and probability densities are calculated by integrating the local density of states function (ILDOS) over an energy range of ±0.5 eV from the conduction band minima (CBM) to Fermi energy (EF) and valence band maxima (VBM) to Fermi energy (EF). The STM images are calculated using Tersoff-Hamann approach.
Atomic structure and derived properties
After obtaining the initial structures from several databases, we optimize following JARVIS-DFT protocols of a) converging k-points, b) converging cut-off, c) converging energy, d) converging forces. These final optimized structures are analyzed in terms of scalar quantities such as density, volume etc. as well as statistical functions such as radial distribution function, angular distribution function, dihedral distribution function, X-ray diffraction pattern etc. to know about the local atomisitic environments that controls several material-properties.
from jarvis.core.atoms import Atoms from jarvis.analysis.structure.neighbors import NeighborsAnalysis from jarvis.ai.descriptors.cfid import CFID from jarvis.analysis.diffraction.xrd import XRD from jarvis.analysis.structure.spacegroup import Spacegroup3D 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"] atoms = Atoms(lattice_mat=box, coords=coords, elements=elements) density = round(density,2) spg = Spacegroup3D(atoms) prim_atoms = spg.primitive_atoms conv_atoms = spg.conventional_standard_structure spg_numb = spg.space_group_number crys_system = spg.crystal_system conv_params = conv_atoms.lattice.parameters packing_fr = round(atoms.packing_fraction, 3) nbr = NeighborsAnalysis(atoms) rdf_bins, rdf_hist, nn = nbr.get_rdf() nbr = NeighborsAnalysis(atoms, max_cut=10.0) ang1_hist, ang1_bins = nbr.ang_dist_first() ang2_hist, ang2_bins = nbr.ang_dist_second() dhd_hist, dhd_bins = nbr.get_ddf() two_thetas, d_hkls, intensities = XRD().simulate(atoms=atoms) cfid = CFID(atoms).get_comp_descp()
The enthalpy of formation is the standard reaction enthalpy for the formation of the compound from its elements (atoms or molecules) in their most stable reference states. We report formation energies at 0K only based on energies directly obtained from the DFT especially with OptB88vdW functional. We have calculated the elemental energies (in respective crystalline forms) and treat those energies as the chemical potential. These chemical potentials are subtracted from the total energies of the system to predict the formation energies. If functional other than OptB88vdW is used then the unary energy needs to be provided.
from jarvis.analysis.thermodynamics.energetics import form_enp total_energy = -9.974648 fen = form_enp(atoms=atoms, total_energy=total_energy)
The exfoliation energy for 2D materials is computed as the energy difference per atom for bulk and monolayer systems.
Defect formation energies
Defect formation energies are available for a few 2D materials. For neutral defect formation energies, we generate a at least 11 Angs. Cell for 2D materials and create point defects using unique Wyckoff information. The total energy of the defect system, the energy of the perfect 2D crystal and the elemental chemical potential is then used to predict the defect formation energies. Currently this property is available for OptB88vdW functional only.
from jarvis.analysis.thermodynamics.energetics import get_twod_defect_energy from jarvis.io.vasp.outputs import Vasprun tmp_xml=os.path.join(os.path.dirname(__file__), "JVASP-667_C_C_c.xml") vrun=Vasprun(tmp_xml) Ef=get_twod_defect_energy(vrun=vrun,jid="JVASP-667",atom="C")
Electronic density of density of states
EDOS is a spectrum of the number of allowed electron energy levels (occupied and unoccupied) against energy interval (generally in electron volt). EDOS is generally calculated based on a dense k-point grid with a smoothening/smearing setup. EDOS is generally rescaled with respect to the Fermi-energy of the system. A high value for the DOS represents a high number for the electronic states that can be occupied. Experimental methods such as scanning tunneling microscopy can be used obtain EDOS. One of the obvious properties that can be calculated from EDOS is the bandgap. EDOS can be based on total density of states or further resolved into atom-projected and element-projected density of states. The projected EDOS provides information about the particular electronic orbitals (say s,p,d,f) and specific atom (say Si) contributing towards a particular energy level. We calculate EDOS for both semi-local, HSE06 and PBE0 methods. At least, DOS is provided at local or semilocal materials for all the materials.
from jarvis.io.vasp.outputs import Vasprun vrun = Vasprun('vasprun.xml') total_dos = vrun.total_dos energies = total_dos spin_up = total_dos spin_dn = total_dos spdf_dos = vrun.get_spdf_dos() atoms_dos = vrun.get_atom_resolved_dos()
Following the laws of quantum mechanics only certain energy levels are allowed and others could be forbidden. These levels can be discrete or spilt, called bands. Electronic bands depend on crystal momentum leading to bandstructure. The allowed states which are filled (upto the Fermi level) are valence bands while the unoccupied bands are conduction bands. The difference in energy between the conduction and valence band gives rise to the bandgaps. The materials with no bandgap are termed metals, with low bandgap semiconductors and with high bandgaps insulators. We calculate bandstructure using local, semi-local as well as hybrid functionals.
from jarvis.io.vasp.outputs import Vasprun vrun = Vasprun('vasprun.xml') band_info = vrun.get_bandstructure(kpoints_file_path='KPOINTS')
Spin-orbit spillage and topological properties
Topological materials driven by spin-orbit coupling have different bandgaps with/without spin orbit coupling effects. Spillage is calculated by comparing the wavefunctions of these two bandstructures. We calculate the spillage values for a large set of low bandgap and high atomic mass materials, with a spillage value of 0.5 as a threshold to screen for potential topologically non-trivial materials. The threshold denotes number of band-inverted electrons. This criterion can be used for predicting non-trivial topological behavior of metals, semiconductors and both perfect and defective structures.
from jarvis.analysis.topological.spillage import Spillage spl = Spillage(wf_noso=wf_noso, wf_so=wf_so) info = spl.overlap_so_spinpol() max_spillage = round(info["spillage"], 2)
Frequency dependent dielectric function and optoelectronic properties
We use linear optics theory at semilocal and meta-GGA levels to calculate frequency dependent real and imaginary part of dielectric function. The meta-GGA based data should predict better bandgaps hence dielectric function. Note that ionic contributions are ignored in such calculations. Several important properties such as absorption coefficient, electron energy loss spectrum, reflectivity, solar cell efficiency etc. can be calculated from the frequency dependent dielectric function.
Using the absorption coefficient and bandgap (indirect and direct gaps), we calculate theoretical solar cell efficiencies of a material.
from jarvis.io.vasp.outputs import Vasprun vrun = Vasprun('vasprun.xml') reals, imags = vrun.dielectric_loptics en, abz = lvrun.avg_absorption_coefficient abz = abz * 100 eff_slme = SolarEfficiency().slme( en, abz, indirgap, indirgap, plot_current_voltage=False ) # print("SLME", 100 * eff) eff_sq = SolarEfficiency().calculate_SQ(indirgap) eff_slme = round(100 * eff_slme, 2) eff_sq = round(100 * eff_sq, 2)
Static dielectric tensor
Dielectric materials are important components in many electronic devices such as capacitors, field-effect transistors computer memory (DRAM), sensors and communication circuits. Both high and low-value DL materials have applications in different technologies. Static dielectric constants with both ionic and electronic contributions are obtained using DFPT method. The electronic part of the dielectric constant is generally in close agreement with that obtained from the linear optics method mentioned above.
from jarvis.io.vasp.outputs import Vasprun vrun = Vasprun('vasprun.xml') epsilon = vrun.dfpt_data["epsilon"]["epsilon"] epsilon_rpa = vrun.dfpt_data["epsilon"]["epsilon_rpa"] epsilon_ion = vrun.dfpt_data["epsilon"]["epsilon_ion"]
The piezoelectric effect is a reversible process where materials exhibit electrical polarization resulting from an applied mechanical stress, or conversely, a strain due to an applied electric field. Common applications for piezoelectricity include medical applications, energy harvesting devices, actuators, sensors, motors, atomic force microscopes, and high voltage power generation. PZ responses can be measured under constant strain, giving the piezoelectric stress tensor e_ij or constant stress, giving the piezoelectric strain tensor d_ij . Piezoelectric tensor is a 6x3 matrix.
from jarvis.io.vasp.outputs import Outcar out = Outcar('OUTCAR') pza = out.piezoelectric_tensor max_pza = np.max(np.abs(pza)) born_charges = vrun.dfpt_data["born_charges"]
The infrared intensity is important for thermal-imaging, infrared-astronomy, food-quality control. Infrared frequencies are classified in three categories: far (30-400 cm-1), mid (400-4000 cm-1) and near (4000-14000 cm-1) IR frequencies. The IR intensity is calculated obtained from the gamma-point phonon data used in the DFPT calculations.
from jarvis.analysis.phonon.ir import ir_intensity from jarvis.io.vasp.outputs import Outcar, Vasprun out = Outcar('OUTCAR') vrun = Vasprun('vasprun.xml') phonon_eigenvalues = out.phonon_eigenvalues data = vrun.dfpt_data phonon_eigenvectors = data["phonon_eigenvectors"] masses = data["masses"] born_charges = data["born_charges"] x, y = ir_intensity( phonon_eigenvectors=phonon_eigenvectors, phonon_eigenvalues=phonon_eigenvalues, masses=masses, born_charges=born_charges, )
We use finite difference method on conventional cells of systems for ET calculations. For bulk material, the compliance tensor can be obtained as the inverse.
Now, several other elastic properties calculated from Cij and sij. Some of the important properties are given below:
KV = ((C11+C22+C33) + 2(C12+C23+C31))/9
GV = ((C11+C22+C33) − (C12+C23 + C31) +3 (C44+C55+C66))/15
KR = ((s11+s22+s33) + 2(s12+s23+s31))-1
GR = 15(4(s11+s22+s33) - 4(s12+s23+s31) + 3(s44+s55+s66))-1
ν = (3KVRH − 2GVRH)/(6KVRH+2GVRH))
Here KV and GV are Voigt bulk and shear modulus, and KR and GR Reuss-bulk and shear modulus respectively. The homogenous Poisson ratio is calculated as ν. The EC data can be also used to predict the ductile and brittle nature of materials with Pugh (Gv/Kv) and Pettifor criteria (C12-C44) . Materials with Pugh ratio value >0.571 and Pettifor criteria <0 should be brittle, while materials with Pugh ratio value <0.571 and Pettifor criteria >0 should be ductile. For monolayer material calculations, the elastic tensor obtained from DFT code such as VASP, assumes periodic-boundary-condition (PBC). Therefore, cell vectors are used to calculate the area which again is used in computing stress. When dealing with the monolayer, an arbitrary vacuum padding is added in one of the direction (say z-direction). When computing EC we need to correct the output by eliminating the arbitrariness of the vacuum padding. We do that as a post-processing step by multiplying the Cij components (i,j≠3) by the length of the vacuum padding. Therefore, the units of EC turn into Nm-1 from Nm-2.
from jarvis.io.vasp.outputs import Outcar from jarvis.analysis.elastic.tensor import ElasticTensor cij = out.elastic_props)["cij"] d = ElasticTensor(cij).to_dict()
From the associated finite-difference calculations, force constants (mainly at gamma point in our case) can be calculated. Using this information, we can predict the phonon density of states and bandstructure assuming the conventional cell used in the calculation is large enough (at least 11 Angstrom). Note that for smaller lengths the phonon bandstructure and density of states can show unreasonable frequencies at off and away from gamma points.
from jarvis.tasks.phonopy.run import run_phonopy from jarvis.io.phonopy.outputs import bandstructure_plot import yaml run_phonopy('OUTCAR') mesh_yaml = "mesh.yaml" band_yaml = "band.yaml" with open(mesh_yaml, "r") as f: doc = yaml.load(f) nmodes = doc["phonon"]["band"] ph_modes =  for p in nmodes: ph_modes.append(p["frequency"]) ph_modes = sorted(set(ph_modes)) f = open(totdos, "r") freq =  pdos =  for lines in f.readlines(): if not str(lines.split()).startswith("#"): freq.append(float(lines.split())) pdos.append(float(lines.split())) frequencies, distances, labels, label_points = bandstructure_plot(band_yaml)
Thermoelectrics are materials that can convert a temperature gradient into electric voltage, or vice-versa. Themoelectrics can be used to regenerate electricity from waste heat, refrigeration and several other space-technology applications. The search for efficient thermoelectric materials is an area of intense research due the potential of converting waste heat into electrical power, and therefore improving energy efficiency and reducing fossil fuel usage.
from jarvis.io.boltztrap.outputs import BoltzTrapOutput from jarvis.tasks.boltztrap.run import run_boltztrap path = 'xyz' run_boltztrap(path) all_data = BoltzTrapOutput(path).to_dict()
Wannier tight binding Hamiltonians
Wannier functions (WF) were first introduced in 1937, and have proven to be a powerful tool in the investigation of solid-state phenomenon such as polarization, topology, and magnetization. WTBH is not necessarily a material properties but can be useful in calculating several material properties. Mathematically, WFs are a complete orthonormalized basis set that act as a bridge between a delocalized plane wave representation commonly used in electronic structure calculations and a localized atomic orbital basis that more naturally describes chemical bonds. One of the most common ways of obtaining Wannier tight-bonding Hamiltonians (WTBH) is by using the Wannier90 software package to generate maximally localized Wannier functions, based on underlying density functional theory (DFT) calculations.
from jarvis.io.wannier.outputs import WannierHam wann_ham = WannierHam(filename='wannier90_hr.dat') vrun = "vasprun.xml" bz = wann_ham.compare_dft_wann(vasprun_path=vrun, plot=False)
Scanning tunneling microscopy images
Since the invention of the scanning tunneling microscope (STM), this technique has become an essential tool for characterizing material surfaces and adsorbates. In addition to providing atomic insights, STM has been proven useful for characterizing the electronic structure, shapes of molecular orbitals, and vibrational and magnetic excitations. It can also be used for manipulating adsorbates and adatoms, and for catalysis and quantum information processing applications. We use Tershoff-Hamman approach to predict STM images of 2D materials.
from jarvis.analysis.stm.tersoff_hamann import TersoffHamannSTM TH_STM = TersoffHamannSTM(chg_name='PARCHG') t1 = TH_STM.constant_height(filename='STM.png')
Electric field gradients
EFG is a key parameter used to define Nuclear Quadrupole Resonance (NQR) spectral lines EFG is defined as the second derivative in Cartesian coordinates of the Coulomb potential at the nucleus position. By construction, the EFG, Vii is a traceless tensor. The coordinate system, in accordance with the convention used by experimentalists is chosen so that |V_zz |≥|V_yy |≥|V_xx |, which forces 0≤η<1. Note that if the point group of the site in question is cubic, then by symmetry all components are zero.
from jarvis.io.vasp.outputs import Outcar efg = out.efg_raw_tensor max_efg = np.max(np.abs(np.array(efg)))
DFT convergence parameters
Although density functional theory is exact in theory, its implementation requires several approximations such as the choice of basis-set, exchange-correlation functional, mesh-size for Brillouin zone (BZ) integration and plane-wave cut-off for plane-wave basis. These parameters need to be converged prior to geometric optimization and property predictions. Such convergences are performed for k-point and plane wave cut-off only in JARVIS-DFT leading to high quality of the data.
Data quality assessment
|Method||#Materials||MAE (a)||MAE (b)||MAE (c)||RMSE (a)||RMSE (b)||RMSE (c)|
Table: Comparison of bandgaps obtained from OPT functional and MBJ potential schemes compared with experimental results and DFT data available in different databases. Materials, space-group (SG), Inorganic Crystal Structure Database (ICSD#) id, Materials-Project (MP#) id, JARVIS-DFT id (JV#), bandgap from MP (MP), bandgap from AFLOW, bandgap from OQMD, our OptB88vdW bandgap (OPT), Tran-Blah modified Becke-Johnson potential bandgap (MBJ), Heyd-Scuseria-Ernzerhof (HSE06) and experimental bandgaps (eV) data are shown. Experimental data were obtained from 18,21,46,47__. MAE denotes the mean absolute error, while SC is the Spearman's coefficient.
Table Bandgap and SLME properties of a selection of materials with TBmBJ and G __0__ W __0 methods in DFT to evaluate uncertainty in predictions. Here E__ g denotes the bandgap in eV and ɳ the calculated SLME in percentage.
|TlPt 2 S 3||4630||1.30||1.45||1.35||32.70||30.99||-|
Table. Comparison of static dielectric constant for DFPT, MBJ and experiment. Experimental data were obtained from. MBJ data were obtained from our optoelectronic property database.
Table Comparison of piezoelectric coefficient max(eij) data for experiments and DFT. We take average values for the cases where the experimental data are in a range.
Table Comparison of experimental and DFPT IR frequencies (cm __-1__ ).
|SnS||1109||93, 144, 178, 214||99, 145, 178, 220 5|
|SnSe||299||72.6, 98.44, 125.01, 160.3||80,96,123, 150 5|
|KMgF3||20882||160.0, 287.0, 470.8||168, 299, 4586|
|LiNbO3||1240||145.0, 216.6||160, 2207|
|GeS||2169||106.4, 196.2, 236.5, 253.0, 276.9||118, 201,238,258, 2808|
Table. Comparison of bulk modulus, K__V (GPa), from vdW-DF-optB88 (OPT) and experiments. The experimental data are however not data corrected for zero-point energy effects, which would lead to a slight increase__of the values.
Table : Chemical formula, experimental Seebeck value (_μV/K), DFT value, JARVIS-ID, doping concentration, doping type, temperature, space-group and reference data for the experimental vs DFT comparisons._
Table Comparison of current density functional (J-DFT) predictions with experimental (Exp) and previously (Prev.-DFT) reported Electric Field Gradient, V__zz (10__21 __Vm__ -2__) data. The MAD (Mean Absolute Deviation), and MAPD (Mean Absolute Percentage Difference) values are calculated for the whole data. Details of each material are provided at its corresponding webpage. Please look into the references (and references therein) for experimental and previously calculated data.
|Material||JID||Atom||V zz (Exp)||V zz (J-DFT)||V zz (Prev.-DFT)||Δ||Δ%|
Table. Mean Absolute Error (MAE) for JARVIS-DFT data with respect to available experimental data for various material properties.
|Formation energy (eV/atom)||1317||0.128||-4 to 2|
|OptB88vdW-bandgaps (eV)||54||1.33||0 to 10|
|TBmBJ-bandgaps (eV)||54||0.51||0 to 10|
|Bulk modulus (GPa)||21||5.75||0 to 250|
|Electronic (𝜀11) OPT||28||3.2||0 to 60|
|Electronic (𝜀11) MBJ||28||2.62||0 to 60|
|Solar-eff. (SLME) (%) (MBJ)||5||6.55||0 to 33.7|
|Max. piezoelectric strain coeff (Cm-2)||16||0.21||0 to 2|
|Dielectric constant (𝜀11) (DFPT)||16||2.46||0 to 60|
|Seebeck coefficient (μV/K)||14||54.7||-600 to 600|
|Electric field gradient Vzz (1021Vm-2)||37||1.17||0 to 100|
|IR mode (cm-1)||8||8.36||0 to 4000|
- JARVIS: An Integrated Infrastructure for Data-driven Materials Design, arXiv:2007.01831 (2020).
- High-throughput Identification and Characterization of Two-dimensional Materials using Density functional theory, Scientific Reports 7, 5179 (2017).
- Computational Screening of High-performance Optoelectronic Materials using OptB88vdW and TBmBJ Formalisms, Scientific Data 5, 180082 (2018).
- Elastic properties of bulk and low-dimensional materials using Van der Waals density functional, Phys. Rev. B, 98, 014107 (2018).
- High-throughput Discovery of Topologically Non-trivial Materials using Spin-orbit Spillage, Scientific Reports 9, 8534 (2019).
- Convergence and machine learning predictions of Monkhorst-Pack k-points and plane-wave cut-off in high-throughput DFT calculations, Comp. Mat. Sci. 161, 300 (2019).
- High-throughput Density Functional Perturbation Theory and Machine Learning Predictions of Infrared, Piezoelectric and Dielectric Responses,npj Computational Materials, 6, 64 (2020).
- Computational Search for Magnetic and Non-magnetic 2D Topological Materials using Unified Spin-orbit Spillage Screening, npj Computational Materials, 6, 49 (2020).
- Accelerated Discovery of Efficient Solar-cell Materials using Quantum and Machine-learning Methods, Chem. Mater., 31, 15, 5900 (2019).
- Data-driven Discovery of 3D and 2D Thermoelectric Materials, J. Phys.: Condens. Matter 32, 475501 (2020).
- Efficient Computational Design of 2D van der Waals Heterostructures: Band-Alignment, Lattice-Mismatch, Web-app Generation and Machine-learning, submitted.
- Density Functional Theory based Electric Field Gradient Database, arXiv:2005.09255.
- Database of Wannier Tight-binding Hamiltonians using High-throughput Density Functional Theory, arXiv:2007.01205.
- Density Functional Theory and Deep-learning to Accelerate Data Analytics in Scanning Tunneling Microscopy, arXiv:1912.09027.