# pyiron.vasp package¶

## pyiron.vasp.outcar module¶

class pyiron.vasp.outcar.Outcar[source]

Bases: object

This module is used to parse VASP OUTCAR files.

parse_dict

A dictionary with all the useful quantities parsed from an OUTCAR file after from_file() is executed

Type: dict
from_file(filename='OUTCAR')[source]

Parse and store relevant quantities from the OUTCAR file into parse_dict.

Parameters: filename (str) – Filename of the OUTCAR file to parse
from_hdf(hdf, group_name='outcar')[source]

Load output from an HDF5 file

Parameters: hdf (pyiron.base.generic.hdfio.FileHDFio) – HDF5 group or file group_name (str) – Name of the HDF5 group
static get_all_total_energies(filename='OUTCAR')[source]

Gets the energy at every electronic step

Parameters: filename (str) – Filename of the OUTCAR file to parse A list of energie for every electronic step at every ionic step list
static get_broyden_mixing_mesh(filename='OUTCAR')[source]

Gets the Broyden mixing mesh size

Parameters: filename (str) – Filename of the OUTCAR file to parse Mesh size int
static get_cells(filename='OUTCAR')[source]

Gets the cell size and shape for every ionic step from the OUTCAR file

Parameters: filename (str) – Filename of the OUTCAR file to parse A 3x3xM array of the cell shape in $AA$where M is the number of time steps numpy.ndarray
static get_dipole_moments(filename='OUTCAR')[source]

Get the electric dipole moment at every electronic step

Parameters: filename (str) – Filename of the OUTCAR file to parse A list of dipole moments in (eA) for each electronic step list
static get_energy_sigma_0(filename='OUTCAR')[source]

Gets the total energy for every ionic step from the OUTCAR file

Parameters: filename (str) – Filename of the OUTCAR file to parse A 1xM array of the total energies in $eV$where M is the number of time steps numpy.ndarray
static get_energy_without_entropy(filename='OUTCAR')[source]

Gets the total energy for every ionic step from the OUTCAR file

Parameters: filename (str) – Filename of the OUTCAR file to parse A 1xM array of the total energies in $eV$where M is the number of time steps numpy.ndarray
static get_fermi_level(filename='OUTCAR')[source]

Getting the Fermi-level (Kohn_Sham) from the OUTCAR file

Parameters: filename (str) – Filename of the OUTCAR file to parse The Kohn-Sham Fermi level in eV float
static get_forces(filename='OUTCAR')[source]

Gets the forces for every ionic step from the OUTCAR file

Parameters: filename (str) – Filename of the OUTCAR file to parse A Nx3xM array of forces in $eV / AA$where N is the number of atoms and M is the number of time steps numpy.ndarray
static get_irreducible_kpoints(filename='OUTCAR', reciprocal=True, weight=True, planewaves=True)[source]

Function to extract the irreducible kpoints from the OUTCAR file

Parameters: filename (str) – Filename of the OUTCAR file to parse reciprocal (bool) – Get either the reciprocal or the cartesian coordinates weight (bool) – Get the weight assigned to the irreducible kpoints planewaves (bool) – Get the planewaves assigned to the irreducible kpoints An array of k-points numpy.ndarray
static get_kinetic_energy_error(filename='OUTCAR', total=True)[source]

Get the kinetic energy error

Parameters: filename (str) – Filename of the OUTCAR file to parse total (bool) – Get either the total correction or the correction per atom The kinetic energy error in eV float
static get_magnetization(filename='OUTCAR')[source]

Gets the magnetization

Parameters: filename (str) – Filename of the OUTCAR file to parse A list with the mgnetization values list
static get_nelect(filename='OUTCAR')[source]

Returns the number of electrons in the simulation

Parameters: filename (str) – OUTCAR filename The number of electrons in the simulation float
static get_positions(filename='OUTCAR')[source]

Gets the positions for every ionic step from the OUTCAR file

Parameters: filename (str) – Filename of the OUTCAR file to parse A Nx3xM array of positions in $AA$where N is the number of atoms and M is the number of time steps numpy.ndarray
static get_positions_and_forces(filename='OUTCAR')[source]

Gets the forces and positions for every ionic step from the OUTCAR file

Parameters: filename (str) – Filename of the OUTCAR file to parse [positions, forces] (sequence) numpy.ndarray: A Nx3xM array of positions in $AA$ numpy.ndarray: A Nx3xM array of forces in $eV / AA$where N is the number of atoms and M is the number of time steps
static get_steps(filename='OUTCAR')[source]
Parameters: filename (str) – Filename of the OUTCAR file to parse Steps during the simulation numpy.ndarray
static get_stresses(filename='OUTCAR', si_unit=True)[source]
Parameters: filename (str) – Input filename si_unit (bool) – True SI units are used An array of stress values numpy.ndarray
static get_temperatures(filename='OUTCAR')[source]

Gets the temperature at each ionic step (applicable for MD)

Parameters: filename (str) – Filename of the OUTCAR file to parse An array of temperatures in Kelvin numpy.ndarray
get_time(filename='OUTCAR')[source]

Time after each simulation step (for MD)

Parameters: filename (str) – Filename of the OUTCAR file to parse An array of time values in fs numpy.ndarray
static get_total_energies(filename='OUTCAR')[source]

Gets the total energy for every ionic step from the OUTCAR file

Parameters: filename (str) – Filename of the OUTCAR file to parse A 1xM array of the total energies in $eV$where M is the number of time steps numpy.ndarray
to_hdf(hdf, group_name='outcar')[source]

Store output in an HDF5 file

Parameters: hdf (pyiron.base.generic.hdfio.FileHDFio) – HDF5 group or file group_name (str) – Name of the HDF5 group
to_hdf_minimal(hdf, group_name='outcar')[source]

Store minimal output in an HDF5 file (output unique to OUTCAR)

Parameters: hdf (pyiron.base.generic.hdfio.FileHDFio) – HDF5 group or file group_name (str) – Name of the HDF5 group

## pyiron.vasp.potential module¶

class pyiron.vasp.potential.VaspPotential[source]

Bases: object

The Potential class is derived from the PotentialAbstract class, but instead of loading the potentials from a list, the potentials are loaded from a file.

Parameters: path (str) – path to the potential list
class pyiron.vasp.potential.VaspPotentialAbstract(potential_df=None, default_df=None, selected_atoms=None)[source]
Parameters: potential_df – default_df – selected_atoms –
default()[source]
find(element)[source]

Find the potentials

Parameters: element (set, str) – element or set of elements for which you want the possible LAMMPS potentials of possible potentials for the element or the combination of elements list
find_default(element)[source]
list()[source]

List the available potentials

Returns: of possible potentials for the element or the combination of elements list
class pyiron.vasp.potential.VaspPotentialFile(xc=None)[source]

The Potential class is derived from the PotentialAbstract class, but instead of loading the potentials from a list, the potentials are loaded from a file.

Parameters: xc (str) – Exchange correlation functional [‘PBE’, ‘LDA’]
add_new_element(parent_element, new_element)[source]

Adding a new user defined element with a different POTCAR file. It is assumed that the file exists

Parameters: parent_element (str) – Parent element new_element (str) – Name of the new element (the name of the folder where the new POTCAR file exists

## pyiron.vasp.procar module¶

class pyiron.vasp.procar.Procar[source]

Bases: object

This module contains routines to parse VASP PROCAR files.

from_file(filename)[source]

## pyiron.vasp.structure module¶

pyiron.vasp.structure.atoms_from_string(string, read_velocities=False, species_list=None)[source]

Routine to convert a string list read from a input/output structure file and convert into Atoms instance

Parameters: string (list) – A list of strings (lines) read from the POSCAR/CONTCAR/CHGCAR/LOCPOT file read_velocities (bool) – True if the velocities from a CONTCAR file should be read (predictor corrector) species_list (list/numpy.ndarray) – A list of species of the atoms The required structure object pyiron.atomistics.structure.atoms.Atoms
pyiron.vasp.structure.get_species_list_from_potcar(filename='POTCAR')[source]

Generates the species list from a POTCAR type file

Parameters: filename (str) – Input filename A list of species symbols list
pyiron.vasp.structure.read_atoms(filename='CONTCAR', return_velocities=False, species_list=None, species_from_potcar=False)[source]

Routine to read structural static from a POSCAR type file

Parameters: filename (str) – Input filename return_velocities (bool) – True if the predictor corrector velocities are read (only from MD output) species_list (list/numpy.ndarray) – A list of the species (if not present in the POSCAR file or a POTCAR in the directory) (same) – species_from_potcar (bool) – True if the species list should be read from the POTCAR file in the same directory The generated structure object pyiron.atomistics.structure.atoms.Atoms
pyiron.vasp.structure.vasp_sorter(structure)[source]

Routine to sort the indices of a structure as it would be when written to a POSCAR file

Parameters: structure (pyiron.atomistics.structure.atoms.Atoms) – The structure whose indices need to be sorted A list of indices which is sorted by the corresponding species for writing to POSCAR list
pyiron.vasp.structure.write_poscar(structure, filename='POSCAR', write_species=True, cartesian=True)[source]

Writes a POSCAR type file from a structure object

Parameters: structure (pyiron.atomistics.structure.atoms.Atoms) – The structure instance to be written to the POSCAR format filename (str) – Output filename write_species (bool) – True if the species should be written to the file cartesian (bool) – True if the positions are written in Cartesian coordinates

## pyiron.vasp.vasp module¶

class pyiron.vasp.vasp.DFTOutput[source]

Bases: object

This class stores the DFT specific output

log_dict

A dictionary of all tags and values of DFT data

Type: dict
from_hdf(hdf)[source]

Reads the attributes and reconstructs the object from a hdf file :param hdf: The hdf5 instance

to_hdf(hdf)[source]

Save the object in a HDF5 file

Parameters: hdf (pyiron.base.generic.hdfio.ProjectHDFio) – HDF path to which the object is to be saved
class pyiron.vasp.vasp.GenericOutput[source]

Bases: object

This class stores the generic output like different structures, energies and forces from a simulation in a highly generic format. Usually the user does not have to access this class.

log_dict

A dictionary of all tags and values of generic data (positions, forces, etc)

Type: dict
bands
from_hdf(hdf)[source]

Reads the attributes and reconstructs the object from a hdf file :param hdf: The hdf5 instance

to_hdf(hdf)[source]

Save the object in a HDF5 file

Parameters: hdf (pyiron.base.generic.hdfio.ProjectHDFio) – HDF path to which the object is to be saved
class pyiron.vasp.vasp.Incar(input_file_name=None, table_name='incar')[source]

Class to control the INCAR file of a vasp simulation

load_default()[source]

class pyiron.vasp.vasp.Input[source]

Bases: object

Handles setting the input parameters for a VASP job.

incar

.vasp.vasp.Incar instance to handle the INCAR file inputs in VASP

kpoints

vasp.vasp.Kpoints instance to handle the KPOINTS file inputs in VASP

potcar

vasp.vasp.Potcar instance to set the appropriate POTCAR files for the simulation

Ideally, the user would not have to access the Input instance unless the user wants to set an extremely specific VASP tag which can’t se set using functions in Vasp().

Examples

>>> atoms =  CrystalStructure("Pt", BravaisBasis="fcc", a=3.98)
>>> ham = Vasp("trial")
>>> ham.structure = atoms
>>> ham.calc_static()
>>> assert(atoms==ham.structure)
>>> assert(ham.input.incar["ISIF"]==-1)

from_hdf(hdf)[source]

Reads the attributes and reconstructs the object from a hdf file

Parameters: hdf – The hdf5 instance
to_hdf(hdf)[source]

Save the object in a HDF5 file

Parameters: hdf (pyiron.base.generic.hdfio.ProjectHDFio) – HDF path to which the object is to be saved
write(structure, directory=None)[source]

Writes all the input files to a specified directory

Parameters: structure (atomistics.structure.atoms.Atoms instance) – Structure to be written directory (str) – The working directory for the VASP run
class pyiron.vasp.vasp.Kpoints(input_file_name=None, table_name='kpoints')[source]

Class to control the KPOINTS file of a vasp simulation

load_default()[source]

set(method=None, size_of_mesh=None, shift=None)[source]

Sets appropriate tags and values in the KPOINTS file :param method: Type of meshing scheme (Gamma Point, MP, Manual or Line) :type method: str :param size_of_mesh: List of size 1x3 specifying the required mesh size :type size_of_mesh: list/numpy.ndarray :param shift: List of size 1x3 specifying the user defined shift from the Gamma point :type shift: list

set_kmesh_by_density(structure)[source]
class pyiron.vasp.vasp.Output[source]

Bases: object

Handles the output from a VASP simulation.

electronic_structure

Gives the electronic structure of the system

electrostatic_potential

Gives the electrostatic/local potential of the system

charge_density

Gives the charge density of the system

collect(directory='/home/travis/build/pyiron/pyiron/docs')[source]

Collects output from the working directory

Parameters: directory (str) – Path to the directory
from_hdf(hdf)[source]

Reads the attributes and reconstructs the object from a hdf file :param hdf: The hdf5 instance

structure

Getter for the output structure

to_hdf(hdf)[source]

Save the object in a HDF5 file

Parameters: hdf (pyiron.base.generic.hdfio.ProjectHDFio) – HDF path to which the object is to be saved
class pyiron.vasp.vasp.Potcar(input_file_name=None, table_name='potcar')[source]
load_default()[source]

Load defaults resets the dataset in the background to be empty

modify(**modify)[source]

Modify values for existing parameters. The command is called as modify(param1=val1, param2=val2, …)

Parameters: separator (str) – needed if the parameter name contains special characters such as par: use then as input: modify(separator=”:”, par=val) - optional append_if_not_present (bool) – do not raise an exception but append the parameter in practice use set(par=val) - default=False **modify_dict (dict) – dictionary of parameter names and values
pot_path_dict = {'GGA': 'paw-gga-pbe', 'LDA': 'paw-lda', 'PBE': 'paw-gga-pbe'}
potcar_set_structure(structure)[source]
write_file(file_name, cwd=None)[source]
Parameters: file_name – cwd –

Returns:

class pyiron.vasp.vasp.Vasp(project, job_name)[source]

Class to setup and run and analyze VASP simulations which is a derivative of pyiron.objects.job.generic.GenericJob. The functions in these modules are written in such the function names and attributes are very generic (get_structure(), molecular_dynamics(), version) but the functions are written to handle VASP specific input/output.

Parameters: project (pyiron.project.Project instance) – Specifies the project path among other attributes job_name (str) – Name of the job
input

Instance which handles the input

Examples

Let’s say you need to run a vasp simulation where you would like to control the input parameters manually. To set up a static dft run with Gaussian smearing and a k-point MP mesh of [6, 6, 6]. You would have to set it up as shown below:

>>> ham = Vasp(job_name="trial_job")
>>> ham.input.incar.set(IBRION=-1)
>>> ham.input.incar.set(ISMEAR=0)
>>> ham.input.kpoints.set(size_of_mesh=[6, 6, 6])


However, the according to pyiron’s philosophy, it is recommended to avoid using code specific tags like IBRION, ISMEAR etc. Therefore the recommended way to set this calculation is as follows:

>>> ham = Vasp(job_name="trial_job")
>>> ham.calc_static()
>>> ham.set_occupancy_smearing(smearing="gaussian")
>>> ham.set_kpoints(mesh=[6, 6, 6])
The exact same tags as in the first examples are set automatically.

calc_md(temperature=None, n_ionic_steps=1000, n_print=1, dt=1.0, retain_charge_density=False, retain_electrostatic_potential=False, **kwargs)[source]

Sets appropriate tags for molecular dynamics in VASP

Parameters: temperature (int/float/list) – Temperature/ range of temperatures in Kelvin n_ionic_steps (int) – Maximum number of ionic steps n_print (int) – Prints outputs every n_print steps dt (float) – time step (fs) retain_charge_density (bool) – True id the charge density should be written retain_electrostatic_potential (bool) – True if the electrostatic potential should be written
calc_minimize(electronic_steps=400, ionic_steps=100, max_iter=None, pressure=None, algorithm=None, retain_charge_density=False, retain_electrostatic_potential=False, ionic_energy=None, ionic_forces=None, volume_only=False)[source]

Function to setup the hamiltonian to perform ionic relaxations using DFT. The ISIF tag has to be supplied separately.

Parameters: electronic_steps (int) – Maximum number of electronic steps ionic_steps (int) – Maximum number of ionic max_iter (int) – Maximum number of iterations pressure (float) – External pressure to be applied algorithm (str) – Type of VASP algorithm to be used “Fast”/”Accurate” retain_charge_density (bool) – True if the charge density should be written retain_electrostatic_potential (boolean) – True if the electrostatic potential should be written ionic_energy (float) – Ionic energy convergence criteria (eV) ionic_forces (float) – Ionic forces convergence criteria (overwrites ionic energy) (ev/A) volume_only (bool) – Option to relax only the volume (keeping the relative coordinates fixed
calc_static(electronic_steps=400, algorithm=None, retain_charge_density=False, retain_electrostatic_potential=False)[source]

Function to setup the hamiltonian to perform static SCF DFT runs.

Parameters: electronic_steps (int) – Maximum number of electronic steps algorithm (str) – Type of VASP algorithm to be used “Fast”/”Accurate” retain_charge_density (bool) – True if retain_electrostatic_potential (bool) – True/False
cleanup(files_to_remove=('WAVECAR', 'CHGCAR', 'CHG', 'vasprun.xml'))[source]

Removes excess files (by default: WAVECAR, CHGCAR, CHG)

collect_errors()[source]

Collects errors from the VASP run

collect_logfiles()[source]

Collect errors and warnings.

collect_output()[source]

Collects the outputs and stores them to the hdf file

collect_warnings()[source]

Collects warnings from the VASP run

convergence_check()[source]

Validate the convergence of the calculation.

Returns: If the calculation is converged (bool)
copy_chgcar(old_vasp_job)[source]

Copy CHGCAR from previous VASP calcualtion to the new VASP job. (Sets ICHARG = 1)

Parameters: old_vasp_job (pyiron.vasp.vasp.Vasp) – Finished Vasp job instance
copy_file(old_vasp_job, filename='CHGCAR')[source]

Copy a file from a previous vasp job

Parameters: old_vasp_job (pyiron.vasp.vasp.Vasp) – Finished Vasp job instance filename (str) – Destination to copy the file
copy_wavecar(old_vasp_job)[source]

Copy WAVECAR from previous VASP calculation to the new VASP job. (Sets ICHARG = 1)

Parameters: (pyiron.vasp.vasp.Vasp) – Finished Vasp job instance
exchange_correlation_functional

The exchange correlation functional used (LDA or GGA)

fix_spin_constraint

Tells if the type of constraints the spins have for this calculation

Type: bool
fix_symmetry
from_directory(directory)[source]

The Vasp instance is created by parsing the input and output from the specified directory

Parameters: directory (str) – Path to the directory
from_hdf(hdf=None, group_name=None)[source]

Recreates instance from the hdf5 file

Parameters: hdf (pyiron.base.generic.hdfio.ProjectHDFio) – The HDF file/path to read the data from group_name (str) – The name of the group under which the data must be stored as
get_charge_density()[source]

Gets the charge density from the hdf5 file. This value is normalized by the volume

Returns: atomistics.volumetric.generic.VolumetricData instance
get_electronic_structure()[source]

Gets the electronic structure instance from the hdf5 file

Returns: pyiron.atomistics.waves.electronic.ElectronicStructure instance
get_electrostatic_potential()[source]

Gets the electrostatic potential from the hdf5 file.

Returns: atomistics.volumetric.generic.VolumetricData instance
get_final_structure_from_file(filename='CONTCAR')[source]

Get the final structure of the simulation usually from the CONTCAR file

Parameters: filename (str) – Path to the CONTCAR file in VASP The final structure pyiron.atomistics.structure.atoms.Atoms
get_structure(iteration_step=-1)[source]

Gets the structure from a given iteration step of the simulation (MD/ionic relaxation). For static calculations there is only one ionic iteration step

Parameters: iteration_step (int) – Step for which the structure is requested The required structure pyiron.atomistics.structure.atoms.Atoms
list_potentials()[source]

Lists all the possible POTCAR files for the elements in the structure depending on the XC functional

Returns: A pandas datafrome like object pyiron.vasp.potential.VaspPotentialFile
plane_wave_cutoff

Plane wave energy cutoff in eV

potential
reset_output()[source]

Resets the output instance

restart(snapshot=-1, job_name=None, job_type=None)[source]

Restart a new job created from an existing Vasp calculation.

Parameters: snapshot (int) – Snapshot of the calculations which would be the initial structure of the new job job_name (str) – Job name job_type (str) – Job type. If not specified a Vasp job type is assumed New job new_ham (vasp.vasp.Vasp instance)
restart_from_charge_density(snapshot=-1, job_name=None, job_type=None, icharg=None, self_consistent_calc=False)[source]

Restart a new job created from an existing Vasp calculation by reading the charge density.

Parameters: snapshot (int) – Snapshot of the calculations which would be the initial structure of the new job job_name (str) – Job name job_type (str) – Job type. If not specified a Vasp job type is assumed icharg (int) – Vasp ICHARG tag self_consistent_calc (boolean) – Tells if the new calculation is self consistent New job new_ham (vasp.vasp.Vasp instance)
restart_from_wave_functions(snapshot=-1, job_name=None, job_type=None, istart=1)[source]

Restart a new job created from an existing Vasp calculation by reading the wave functions.

Parameters: snapshot (int) – Snapshot of the calculations which would be the initial structure of the new job job_name (str) – Job name job_type (str) – Job type. If not specified a Vasp job type is assumed istart (int) – Vasp ISTART tag New job new_ham (vasp.vasp.Vasp instance)
set_algorithm(algorithm='Fast', ialgo=None)[source]

Sets the type of electronic minimization algorithm

Parameters: algorithm (str) – Algorithm defined by VASP (Fast, Normal etc.) ialgo (int) – Sets the IALGO tag in VASP. If not none, this overwrites algorithm
set_convergence_precision(ionic_energy=1e-05, electronic_energy=1e-07, ionic_forces=None)[source]

Sets the electronic and ionic convergence precision. For ionic convergence either the energy or the force precision is required

Parameters: ionic_energy (float) – Ionic energy convergence precision (eV) electronic_energy (float) – Electronic energy convergence precision (eV) ionic_forces (float) – Ionic force convergence precision (eV/A)
set_coulomb_interactions(interaction_type=2, ldau_print=True)[source]

Write the on-site Coulomb interactions in the INCAR file

Parameters: interaction_type (int) – Type of Coulombic interaction 1 - Asimov method 2 - Dudarev method ldau_print (boolean) – True/False
set_dipole_correction(direction=2, dipole_center=None)[source]

Apply a dipole correction using the dipole layer method proposed by Neugebauer & Scheffler

Parameters: direction (int) – Direction along which the field has to be applied (0, 1, or 2) dipole_center (list/numpy.ndarray) – Position of the center of the dipole (not the center of the vacuum) in relative coordinates
set_electric_field(e_field=0.1, direction=2, dipole_center=None)[source]

Set an external electric field using the dipole layer method proposed by Neugebauer & Scheffler

Parameters: e_field (float) – Magnitude of the external electric field (eV/A) direction (int) – Direction along which the field has to be applied (0, 1, or 2) dipole_center (list/numpy.ndarray) – Position of the center of the dipole (not the center of the vacuum) in relative coordinates
set_fft_mesh(nx=None, ny=None, nz=None)[source]

Set the number of points in the respective directions for the 3D FFT mesh used for computing the charge density or electrostatic potentials. In VASP, using PAW potentials, this refers to the “finer fft mesh”. If no values are set, the default settings from Vasp are used to set the number of grid points.

Parameters: nx (int) – Number of points on the x-grid ny (int) – Number of points on the y-grid nz (int) – Number of points on the z-grid
set_for_band_structure_calc(num_points, structure=None, read_charge_density=True)[source]

Sets up the input for a non self-consistent bandstructure calculation

Parameters: num_points (int) – Number of k-points along the total BZ path structure (atomistics.structure.atoms.Atoms instance) – Structure for which the bandstructure is to be generated. (default is the input structure) read_charge_density (boolean) – If True, a charge density from a previous SCF run is used (recommended)
set_kpoints(mesh=None, scheme='MP', center_shift=None, symmetry_reduction=True, manual_kpoints=None, weights=None, reciprocal=True, kmesh_density=None)[source]

Function to setup the k-points for the VASP job

Parameters: mesh (list) – Size of the mesh (in the MP scheme) scheme (str) – Type of k-point generation scheme (MP/GP(gamma point)/Manual/Line) center_shift (list) – Shifts the center of the mesh from the gamma point by the given vector symmetry_reduction (boolean) – Tells if the symmetry reduction is to be applied to the k-points manual_kpoints (list/numpy.ndarray) – Manual list of k-points weights (list/numpy.ndarray) – Manually supplied weights to each k-point in case of the manual mode reciprocal (bool) – Tells if the supplied values are in reciprocal (direct) or cartesian coordinates (in space) (reciprocal) – kmesh_density (float) – Value of the required density
set_occupancy_smearing(smearing='fermi', width=0.2, ismear=None)[source]

Set how the finite temperature smearing is applied in determining partial occupancies

Parameters: smearing (str) – Type of smearing (fermi/gaussian etc.) width (float) – Smearing width (eV) ismear (int) – Directly sets the ISMEAR tag. Overwrites the smearing tag
set_spin_constraint(direction=False, norm=False)[source]

Setting thr spin constraints

Parameters: direction – norm –

Returns:

sorted_indices

How the original atom indices are ordered in the vasp format (species by species)

spin_constraints

Returns True if the calculation is spin polarized

stop_calculation(next_electronic_step=False)[source]

Call to stop the VASP calculation

Parameters: next_electronic_step (bool) – True if the next electronic step should be calculated
to_hdf(hdf=None, group_name=None)[source]

Stores the instance attributes into the hdf5 file

Parameters: hdf (pyiron.base.generic.hdfio.ProjectHDFio) – The HDF file/path to write the data to group_name (str) – The name of the group under which the data must be stored as
validate_ready_to_run()[source]

Returns:

write_charge_density

True if the charge density file CHGCAR file is/should be written

write_electrostatic_potential

True if the local potential or electrostatic potential LOCPOT file is/should be written

write_input()[source]

Call routines that generate the INCAR, POTCAR, KPOINTS and POSCAR input files

write_magmoms()[source]

Write the magnetic moments in INCAR from that assigned to the species

write_resolved_dos

True if the resolved DOS should be written (in the vasprun.xml file)

write_wave_funct

True if the wave function file WAVECAR file is/should be written

exception pyiron.vasp.vasp.VaspCollectError[source]

Bases: ValueError

pyiron.vasp.vasp.get_k_mesh_by_cell(cell, kspace_per_in_ang=0.1)[source]
Parameters: cell – kspace_per_in_ang –

Returns:

## pyiron.vasp.vaspinterface module¶

class pyiron.vasp.vaspinterface.DFTOutput[source]

This class stores the DFT specific output

log_dict

A dictionary of all tags and values of DFT data

Type: dict
to_hdf(hdf)[source]

Save the object in a HDF5 file

Parameters: hdf (pyiron.base.generic.hdfio.ProjectHDFio) – HDF path to which the object is to be saved
class pyiron.vasp.vaspinterface.GenericOutput[source]

This class stores the generic output like different structures, energies and forces from a simulation in a highly generic format. Usually the user does not have to access this class.

log_dict

A dictionary of all tags and values of generic data (positions, forces, etc)

Type: dict
to_hdf(hdf)[source]

Save the object in a HDF5 file

Parameters: hdf (pyiron.base.generic.hdfio.ProjectHDFio) – HDF path to which the object is to be saved
class pyiron.vasp.vaspinterface.Output[source]

Handles the output from a VASP simulation.

electronic_structure

Gives the electronic structure of the system

electrostatic_potential

Gives the electrostatic/local potential of the system

charge_density

Gives the charge density of the system

class pyiron.vasp.vaspinterface.VaspInt(project, job_name)[source]
calc_md(temperature=None, pressure=None, n_ionic_steps=1000, time_step=None, n_print=100, delta_temp=1.0, delta_press=None, seed=None, tloop=None, rescale_velocity=True)[source]

Sets appropriate tags for molecular dynamics in VASP

Parameters: temperature (int/float/list) – Temperature/ range of temperatures in Kelvin n_ionic_steps (int) – Maximum number of ionic steps n_print (int) – Prints outputs every n_print steps dt (float) – time step (fs) retain_charge_density (bool) – True id the charge density should be written retain_electrostatic_potential (bool) – True if the electrostatic potential should be written
calc_minimize(e_tol=1e-08, f_tol=1e-08, max_iter=1000, pressure=None, n_print=1)[source]
Parameters: e_tol – f_tol – max_iter – pressure – n_print –

Returns:

interactive_close()[source]
interactive_energy_pot_getter()[source]
interactive_energy_tot_getter()[source]
interactive_enforce_structure_reset
interactive_fetch()[source]
interactive_forces_getter()[source]
interactive_open()[source]
interactive_positions_setter(positions)[source]
run_if_interactive()[source]

For jobs which executables are available as Python library, those can also be executed with a library call instead of calling an external executable. This is usually faster than a single core python job.

run_if_interactive_non_modal()[source]

For jobs which executables are available as Python library, those can also be executed with a library call instead of calling an external executable. This is usually faster than a single core python job.

validate_ready_to_run()[source]

Returns:

class pyiron.vasp.vaspinterface.VaspInt2(project, job_name)[source]

## pyiron.vasp.vasprun module¶

class pyiron.vasp.vasprun.Vasprun[source]

Bases: object

This module is used to parse vasprun.xml files and store the data consistent with the pyiron input/output storage formats.

.. vasprun_dict
Dictionary containing all information from the calculation parsed from the vasprun.xml
file. If you consider a simulation with N atoms and M ionic steps

‘positions’ (numpy.ndarray): MxNx3 array containing all the relative positions ‘cell’ (numpy.ndarray): Mx3x3 array containing all the size and shape of cells at every iteration point ‘forces’ (numpy.ndarray): MxNx3 array containing all the forces in eV/A ‘total_energies’ (numpy.ndarray): 1xM array containing all the total energies in eV

Type: dict
from_file(filename='vasprun.xml')[source]

Parsing vasprun.xml from the working directory :param filename: Path to the vasprun file :type filename: str

get_electronic_structure()[source]

Get’s the electronic structure from the VASP calculation

Returns: atomistics.waves.electronic.ElectronicStructure instance
get_final_structure()[source]

Gets the final structure from the simulation

Returns: The final structure basis (atomistics.structure.atoms.Atoms instance)
get_initial_structure()[source]

Gets the initial structure from the simulation

Returns: The initial structure basis (atomistics.structure.atoms.Atoms instance)
parse_atom_information_to_dict(node, d)[source]

Parses atom information from a node to a dictionary

Parameters: node (lxml.etree.Element instance) – The node to parse d (dict) – The dictionary to which data is to be parsed
parse_calc_to_dict(node, d)[source]

Parses ionic step data from a node to a dictionary

Parameters: node (lxml.etree.Element instance) – The node to parse d (dict) – The dictionary to which data is to be parsed
parse_eigenvalues_to_dict(node, d)[source]

Parses eigenvalue and occupancy data from a node to a dictionary

Parameters: node (lxml.etree.Element instance) – The node to parse d (dict) – The dictionary to which data is to be parsed
parse_fermi_level_to_dict(node, d)[source]

Parses fermi level from a node to a dictionary

Parameters: node (lxml.etree.Element instance) – The node to parse d (dict) – The dictionary to which data is to be parsed
static parse_item_to_dict(node, d)[source]

Parses values from an item to a dictionary :param node: Node to be parsed :type node: etree.Element instance :param d: The dictionary to which data is to be parsed :type d: dict

Returns: d (dictionary)
parse_kpoints_to_dict(node, d)[source]

Parses kpoints data from a node to a dictionary

Parameters: node (lxml.etree.Element instance) – The node to parse d (dict) – The dictionary to which data is to be parsed
parse_parameters(node, d)[source]

Parses parameter data from a node to a dictionary

Parameters: node (lxml.etree.Element instance) – The node to parse d (dict) – The dictionary to which data is to be parsed
parse_partial_dos_to_dict(node, d)[source]

Parses partial dos data from a node to a dictionary

Parameters: node (lxml.etree.Element instance) – The node to parse d (dict) – The dictionary to which data is to be parsed
parse_projected_dos_to_dict(node, d)[source]

Parses pdos data from a node to a dictionary

Parameters: node (lxml.etree.Element instance) – The node to parse d (dict) – The dictionary to which data is to be parsed
parse_recursively(node, d, key_name=None)[source]

Parses recursively from a node to a dictionary

Parameters: node (lxml.etree.Element instance) – The node to parse d (dict) – The dictionary to which data is to be parsed key_name (str) – Forcefully assign a key name in case it is not present in the xml file
parse_root_to_dict()[source]

Parses from the main xml root.

parse_scf(node)[source]

Parses the total energy and dipolemoments for a VASP calculation

Parameters: node – (lxml.etree.Element instance): The node to parse Dictionary to containing parsed data d (dict)
parse_structure_to_dict(node, d)[source]

Parses structure from a node to a dictionary

Parameters: node (lxml.etree.Element instance) – The node to parse d (dict) – The dictionary to which data is to be parsed
parse_total_dos_to_dict(node, d)[source]

Parses total dos data from a node to a dictionary

Parameters: node (lxml.etree.Element instance) – The node to parse d (dict) – The dictionary to which data is to be parsed
exception pyiron.vasp.vasprun.VasprunError[source]

Bases: ValueError

pyiron.vasp.vasprun.clean_character(a, remove_char=' ')[source]
Parameters: a (str) – String to be cleaned remove_char (str) – Character to be replaced The clean string str
pyiron.vasp.vasprun.clean_key(a, remove_char=' ')[source]

Replaces blanck spaces from a string for a dictoionary key with “_”

Parameters: a (str) – String to be cleaned remove_char (str) – Character to be replaced The clean string str

## pyiron.vasp.volumetric_data module¶

class pyiron.vasp.volumetric_data.VaspVolumetricData[source]

General class for parsing and manipulating volumetric static within VASP. The basic idea of the Base class is adapted from the pymatgen vasp VolumtricData class

http://pymatgen.org/_modules/pymatgen/io/vasp/outputs.html#VolumetricData

diff_data

Volumtric difference data (3D)

Type: numpy.ndarray
from_file(filename, normalize=True)[source]

Convenience method to parse a generic volumetric static file in the vasp like format. Used by subclasses for parsing the file. This routine is adapted from the pymatgen vasp VolumetricData class with very minor modifications

Parameters: filename (str) – Path of file to parse normalize (boolean) – Flag to normalize by the volume of the cell
from_hdf(hdf5, group_name='volumetric_data')[source]

Recreating the VolumetricData instance by reading data from the HDF5 files

Parameters: hdf5 (pyiron.base.generic.hdfio.ProjectHDFio) – The HDF file/path to write the data to group_name (str) – The name of the group under which the data must be stored as The VolumetricData instance pyiron.atomistics.volumetric.generic.VolumetricData
to_hdf(hdf5, group_name='volumetric_data')[source]

Writes the data as a group to a HDF5 file

Parameters: hdf5 (pyiron.base.generic.hdfio.ProjectHDFio) – The HDF file/path to write the data to group_name (str) – The name of the group under which the data must be stored as