jarvis.io.vasp.outputs

Modulet for analzing VASP outputs.

Module Contents

Classes

Chgcar

Class handling VASP CHGCAR file data.

Locpot

Read LOCPOT files.

Oszicar

Construct Oszicar object.

Outcar

Construct OUTCAR object.

Waveder

Class for reading a WAVEDER file.

Wavecar

Class for VASP Pseudowavefunction stored in WAVECAR.

Vasprun

Construct vasprun.xml handling object.

Functions

parse_raman_dat([vasp_raman_path])

Parse vasp_raman.dat .

Attributes

RYTOEV

AUTOA

TPI

HSQDTM

jarvis.io.vasp.outputs.RYTOEV = 13.605826
jarvis.io.vasp.outputs.AUTOA = 0.529177249
jarvis.io.vasp.outputs.TPI
jarvis.io.vasp.outputs.HSQDTM
class jarvis.io.vasp.outputs.Chgcar(filename='', atoms=None, chg=[], chgdif=None, aug=None, augdiff=None, dim=None, nsets=1, lines='')[source]

Bases: object

Class handling VASP CHGCAR file data.

to_dict()[source]

Convert to a dictionary.

classmethod from_dict(d={})[source]

Construct class from a dictionary.

is_spin_polarized()[source]

Check if the calculations is spin-polarized, ISPIN=2.

is_spin_orbit()[source]

Check if the calculations is spin-orbit, LSORBIT=T.

modify_grid(chg_set=0, multiply_volume=True, final_grid=[50, 50, 50], write_file=True, filename='New_CHGCAR')[source]

Modify grid and Write a charge set to a file for visualization.

read_file(lines='')[source]

Read CHGCAR.

chg_set(text, start, end, volume, ng)[source]

Return CHGCAR sets.

class jarvis.io.vasp.outputs.Locpot(filename='', atoms=None, chg=[], chgdif=None, aug=None, augdiff=None, dim=None, nsets=1, lines='')[source]

Bases: Chgcar

Read LOCPOT files.

vac_potential(direction='X', Ef=0, filename='Avg.png', plot=True)[source]

Calculate vacuum potential used in work-function calculation.

class jarvis.io.vasp.outputs.Oszicar(filename, data={})[source]

Bases: object

Construct Oszicar object.

property magnetic_moment

Get magnetic moment.

property ionic_steps

Get all ionic steps realted data.

property electronic_steps

Get all electronic steps realted data.

classmethod from_dict(d={})[source]

Construct class from a dictionary.

to_dict()[source]

Convert class to a dictionary.

class jarvis.io.vasp.outputs.Outcar(filename, data={})[source]

Bases: object

Construct OUTCAR object.

property nions

Get number of ions.

property nbands

Get number of bands.

property nedos

Get number of dos points.

property efermi

Get Fermi energy.

property all_band_energies

Get all band energies.

property bandgap

Get bandgap.

property nelect

Get number of electrons.

property phonon_eigenvalues

Get phonon eigenvalues.

property converged

Check if calculation is converged.

property efg_raw_tensor

Get raw electric field gradient tensor.

property quad_mom

Get quadrupole momemnt.

property piezoelectric_tensor

Get piezoelectric tensor.

classmethod from_dict(d={})[source]

Construct class from a dictionary.

to_dict()[source]

Convert class to a dictionary.

magnetization(dir='x', elements=[])[source]

Get magnetization in x,y,z.

total_charge(elements=[])[source]

Get total charge.

efg_tensor_diag(std_conv=True, prec=3)[source]

Get diagonalized electric field gradient tensor.

freq_dielectric_tensor()[source]

Parse dielectric function.

elastic_props(atoms=None, vacuum=False)[source]

Obtain elastic tensor and calculate related properties.

For 3D and 2D cases.

Args:

outcar: OUTCAR file path

vacuum: whether the structure has vaccum such as 2D materials for vacuum structures bulk and shear mod. Needs extra attention and elastic tensor are in Nm^-1 rather than GPa

Returns:

info: data for elastic tensor (in string and object representation), bulk, shear modulus, and phonon modes

class jarvis.io.vasp.outputs.Waveder(filename, gamma_only=False)[source]

Bases: object

Class for reading a WAVEDER file.

The LOPTICS tag produces a WAVEDER file. The WAVEDER contains the derivative of the orbitals with respect to k.

property cder_data

Return the orbital derivative between states.

property nbands

Return the number of bands in the calculation.

property nkpoints

Return the number of k-points in the calculation.

property nelect

Return the number of electrons in the calculation.

get_orbital_derivative_between_states(band_i, band_j, kpoint, spin, cart_dir)[source]

Return a valuebetween bands band_i and band_j.

For k-point index, spin-channel and cartesian direction.

Args:

band_i (Integer): Index of band i

band_j (Integer): Index of band j

kpoint (Integer): Index of k-point

spin (Integer): Index of spin-channel (0 or 1)

cart_dir (Integer): Index of cartesian direction (0,1,2)

Returns:

a float value

class jarvis.io.vasp.outputs.Wavecar(filename='WAVECAR', lsorbit=False, lgamma=False, recl=None, nspin=None, rtag=None, nkpts=None, nbands=None, encut=None, lattice_mat=None, nplws=None, wfc=None, efermi=None, kvecs=None, energies=None, occs=None, gvec=None)[source]

Bases: object

Class for VASP Pseudowavefunction stored in WAVECAR.

The format of VASP WAVECAR, as shown in

http://www.andrew.cmu.edu/user/feenstra/wavetrans/

is:

Record-length #spin components RTAG(a value specifying the precision) #k-points #bands ENCUT(maximum energy for plane waves) LatVec-A LatVec-B LatVec-C Loop over spin

Loop over k-points

#plane waves, k vector Loop over bands

band energy, band occupation

End loop over bands Loop over bands

Loop over plane waves

Plane-wave coefficient

End loop over plane waves

End loop over bands

End loop over k-points

End loop over spin

isSocWfc()[source]

Check if the WAVECAR is from an SOC calculation.

readWFHeader()[source]

Read the system information from WAVECAR.

It is written in the first two record.

rec1: recl, nspin, rtag rec2: nkpts, nbands, encut, ((cell(i,j) i=1, 3), j=1, 3)

setWFPrec()[source]

Set wavefunction coefficients precision.

TAG = 45200: single precision complex, np.complex64, or complex(qs) TAG = 45210: double precision complex, np.complex128, or complex(q)

readWFBand(ispin=1, ikpt=1, iband=1)[source]

Extract KS energies and Fermi occupations from WAVECAR.

gvectors(ikpt=1)[source]

Generate the G-vectors.

satisfies the following relation

(G + k)**2 / 2 < ENCUT

readBandCoeff(ispin=1, ikpt=1, iband=1, norm=False)[source]

Read the planewave coefficients of specified KS states.

whereRec(ispin=1, ikpt=1, iband=1)[source]

Return the rec position for specified KS state.

checkIndex(ispin, ikpt, iband)[source]

Check if the index is valid.

class jarvis.io.vasp.outputs.Vasprun(filename='vasprun.xml', data={})[source]

Bases: object

Construct vasprun.xml handling object.

property final_energy

Get final energy.

property nbands

Get number of electronic bands.

property nkpoints

Get number of kpoints.

property nspins

Get total numnber of spins.

property efermi

Get Fermi-energy.

property num_atoms

Get number of simulation atoms.

property num_types

Get number of atom types.

property dielectric_loptics

Get real and imag. dielectric function data.

property avg_absorption_coefficient

Get average absoprtion coefficient. Used in solar-cell module.

property converged_electronic

Check whether electronically converged.

property converged_ionic

Check whether ionically converged.

property converged

Check whether both electronically and ionically converged.

property dfpt_data

Get DFPT IBRION=8 LEPSILON lated data.

property get_dir_gap

Get direct bandgap.

property get_indir_gap

Get indirect bandgap.

property fermi_velocities

Get fermi velocities in m/s.

property elements

Get atom elements.

property all_energies

Get all total energies.

property is_spin_polarized

Check if the calculation is spin polarized.

property is_spin_orbit

Check if the calculation is spin orbit.

property all_structures

Get all structures.

property eigenvalues

Get all eigenvalues.

property all_forces

Get all forces.

property all_stresses

Get all stresses.

property all_input_parameters

Get all explicit input parameters. Need to add a few more.

property kpoints

Get Kpoints.

property total_dos

Get total density of states.

property partial_dos_spdf

Get partial density of states.

property projected_spins_kpoints_bands

Use for spin, kpoint and band projected bandstructure plots.

property projected_atoms_spins_kpoints_bands

Use for atom,spin,kpoint and band projected bandstructures.

classmethod from_dict(d={})[source]

Construct class from a dictionary.

to_dict()[source]

Convert class to a dictionary.

xml_to_dict()[source]

Convert XML to dictionary.

phonon_data(fc_mass=True)[source]

Get phonon data.

bandgap_occupation_tol(occu_tol=0.1)[source]

Get bandgap based on occupation tolerance.

vrun_structure_to_atoms(s={})[source]

Convert structure to Atoms object.

get_bandstructure(E_low=-4, E_high=4, spin=0, zero_efermi=True, kpoints_file_path='KPOINTS', plot=False, filename=None)[source]

Get electronic bandstructure plot.

get_spdf_dos(plot=False)[source]

Get spdf resolved partial density of states.

get_atom_resolved_dos(plot=False)[source]

Get atom resolved density of states.

jarvis.io.vasp.outputs.parse_raman_dat(vasp_raman_path='RAMANDIR-bulk@JVASP-1002_mp-149/vasp_raman.dat')[source]

Parse vasp_raman.dat .

generated by https://github.com/raman-sc/VASP

Activities to Intensities: J. At. Mol. Sci. 3 (2012) 1-22 Intensity = const0 * (nu0-nu)**4/nu * 1/(1-exp(-h*c*nu/(kB*T))) * activity Data for computing intensities, as in Materials Project’s paper:

T=300K, nu0=18796.9925 cm-1