schrodinger.application.matsci.espresso.qeinput module

Classes and functions to deal with XML input generation for Quantum Espresso.

Copyright Schrodinger, LLC. All rights reserved.

class schrodinger.application.matsci.espresso.qeinput.DataType(engine, path)

Bases: tuple

__contains__(key, /)

Return key in self.

__len__()

Return len(self).

count(value, /)

Return number of occurrences of value.

engine

Alias for field number 0

index(value, start=0, stop=9223372036854775807, /)

Return first index of value.

Raises ValueError if the value is not present.

path

Alias for field number 1

schrodinger.application.matsci.espresso.qeinput.deep_update(source, overrides)

Override/append source dict values using overrides dict, return a new dict. Everything is deepcopied to prevent unexpected changes.

Parameters
  • source (dict) – Source dictionary

  • overrides (dict) – Dictionary to override with

Return type

dict

Returns

Updated dictionary

schrodinger.application.matsci.espresso.qeinput.validate_value(name, value, allowed_values)

Check that value is in list of allowed values.

Parameters
  • name (str) – Name of the variable

  • value (str or int or float) – Value of the variable

  • allowed_values (list) – List of values

Raises

ValueError – If value is not in list

class schrodinger.application.matsci.espresso.qeinput.GenericType

Bases: object

Generic class for different input types.

__init__()

Initialize GenericType object and update attributes from data.

updateWithData(data)

Update attributes from data. Set object attribute from data. Example: self.attribute = self.data.get(attribute)

Parameters

data (dict) – Dictionary of settings

class schrodinger.application.matsci.espresso.qeinput.BandsType

Bases: schrodinger.application.matsci.espresso.qeinput.GenericType

Class to generate QE input XML section related to bands.

TOT_CHARGE_KEY = 'total_charge'
TOT_MAG_KEY = 'total_magnetization'
MIN_EMPTY_BANDS = 10
DEFAULTS = {'nbnd': 0, 'nbnd_empty_percent': 20.0, 'occupations': 'smearing', 'smearing_degauss': 0.01, 'smearing_type': 'gaussian', 'spline_ps': False, 'total_charge': 0.0, 'total_magnetization': -1.0}
__init__()

Initialize GenericType object and update attributes from data.

updateWithData(data)

Update attributes from data. Set object attribute from data. Example: self.attribute = self.data.get(attribute)

Parameters

data (dict) – Dictionary of settings

class schrodinger.application.matsci.espresso.qeinput.BasisType

Bases: schrodinger.application.matsci.espresso.qeinput.GenericType

Class to generate QE input XML section related to basis.

GAMMA_ONLY_KEY = 'gamma_only'
DEFAULTS = {'ecutrho': 0.0, 'ecutwfc': 0.0, 'fft_grid': [], 'fft_smooth_grid': [], 'gamma_only': False}
__init__()

Initialize GenericType object and update attributes from data.

updateWithData(data)

Update attributes from data. Set object attribute from data. Example: self.attribute = self.data.get(attribute)

Parameters

data (dict) – Dictionary of settings

class schrodinger.application.matsci.espresso.qeinput.ElectronControlType

Bases: schrodinger.application.matsci.espresso.qeinput.GenericType

Class to generate QE input XML section related to electron control.

DEFAULTS = {'conv_thr': 1e-06, 'diago_cg_maxiter': 20, 'diago_full_acc': False, 'diago_thr_init': 0.0, 'diagonalization': 'davidson', 'max_steps': 100, 'mixing_beta': 0.7, 'mixing_mode': 'plain', 'mixing_ndim': 8, 'real_space_q': False}
__init__()

Initialize GenericType object and update attributes from data.

updateWithData(data)

Update attributes from data. Set object attribute from data. Example: self.attribute = self.data.get(attribute)

Parameters

data (dict) – Dictionary of settings

class schrodinger.application.matsci.espresso.qeinput.KpointsType

Bases: schrodinger.application.matsci.espresso.qeinput.GenericType

Class to generate QE input XML section related to k-points.

KPTS_MESH_KEY = 'kpts_mesh'
AUTOMATIC_BAND = 'automatic'
DEFAULTS = {'kpts_band': False, 'kpts_band_line_density': 20, 'kpts_dens': 0, 'kpts_dens_force_gamma': False, 'kpts_list': [], 'kpts_mesh': [6, 6, 6, 1, 1, 1], 'kpts_spacing': 0, 'kpts_spacing_force_gamma': False}
KPTS_TYPES = {'kpts_band', 'kpts_dens', 'kpts_list', 'kpts_mesh', 'kpts_spacing'}
setStructure(struct)

Set structure in self.struct and several other attributes: self.vecs and self.alat.

Parameters

struct (structure.Structure) – Structure used for k-point generation (‘kpts_dens’ case)

static getFromSpacing(spacing, rvecs, force_gamma=False)

Get MP mesh from K-point spacing.

Parameters
  • rvecs (numpy.array) – Reciprocal lattice vectors

  • spacing (float) – K-point spacing in 1/A

  • force_gamma (bool) – Enforce Gamma-centered mesh

Return type

list of 6 floats

Returns

First 3 floats represent the number of kpoints in grid directions, next 3 floats, offsets in the corresponding direction

getNKpts()

Get total number of k-points based on k-points definition. If k-points type is defined, throw a ValueError.

Return type

int

Returns

Number of k-points

Raises

ValueError – If k-points type is not defined

matdynStr()

Get kpoint list suitable for matdyn input.

Return type

str

Returns

Kpoint list

__init__()

Initialize GenericType object and update attributes from data.

updateWithData(data)

Update attributes from data. Set object attribute from data. Example: self.attribute = self.data.get(attribute)

Parameters

data (dict) – Dictionary of settings

class schrodinger.application.matsci.espresso.qeinput.SpinType

Bases: schrodinger.application.matsci.espresso.qeinput.GenericType

Class to generate QE input XML section related to spin.

DEFAULTS = {'spin_type': 'cs'}
SPIN_NON_LSDA_ID = 1
SPIN_LSDA_ID = 2
__init__()

Initialize SpinType object from string.

Parameters

data (dict) – Dictionary of settings

getNSpin()

Get nspin based on the spin settings.

Returns

Spin type in the PW integer representation

Return type

int

updateWithData(data)

Update attributes from data. Set object attribute from data. Example: self.attribute = self.data.get(attribute)

Parameters

data (dict) – Dictionary of settings

class schrodinger.application.matsci.espresso.qeinput.VdwType

Bases: schrodinger.application.matsci.espresso.qeinput.GenericType

Class to generate QE input XML section related to vdw type.

DEFAULTS = {'correction': '', 'london_rcut': 200, 'london_s6': 0.75, 'xdm_a1': 0.6836, 'xdm_a2': 1.5045}
__init__()

Initialize VdwType object from dictionary.

Parameters

data (dict) – Dictionary of settings

updateWithData(data)

Update attributes from data. Set object attribute from data. Example: self.attribute = self.data.get(attribute)

Parameters

data (dict) – Dictionary of settings

class schrodinger.application.matsci.espresso.qeinput.HybridType

Bases: schrodinger.application.matsci.espresso.qeinput.GenericType

Class to generate QE input XML section related to hybrid functional type.

SCREEN_PARAM_KEY = 'screening_parameter'
DEFAULTS = {'ecutfock': None, 'ecutvcut': 0.7, 'exxdiv_treatment': 'gygi-baldereschi', 'qpts_mesh': [1, 1, 1], 'screening_parameter': 0.106, 'x_gamma_extrapolation': True}
__init__()

Initialize GenericType object and update attributes from data.

updateWithData(data)

Update attributes from data. Set object attribute from data. Example: self.attribute = self.data.get(attribute)

Parameters

data (dict) – Dictionary of settings

class schrodinger.application.matsci.espresso.qeinput.DftUType

Bases: schrodinger.application.matsci.espresso.qeinput.GenericType

Class to generate QE input XML section related to Dft U.

DEFAULTS = {'dftu_type': '', 'structure_type': None}
__init__()

Initialize GenericType object and update attributes from data.

updateWithData(data)

Update attributes from data. Set object attribute from data. Example: self.attribute = self.data.get(attribute)

Parameters

data (dict) – Dictionary of settings

class schrodinger.application.matsci.espresso.qeinput.DftType

Bases: schrodinger.application.matsci.espresso.qeinput.GenericType

Class to generate QE input XML section related to dft type.

DEFAULTS = {'dftu': {'dftu_type': '', 'structure_type': None}, 'functional': '', 'hybrid': {'ecutfock': None, 'ecutvcut': 0.7, 'exxdiv_treatment': 'gygi-baldereschi', 'qpts_mesh': [1, 1, 1], 'screening_parameter': 0.106, 'x_gamma_extrapolation': True}, 'vdw': {'correction': '', 'london_rcut': 200, 'london_s6': 0.75, 'xdm_a1': 0.6836, 'xdm_a2': 1.5045}}
property vdw
property hybrid

Get hybrid attribute (self._hybrid).

Returns

Hybrid attribute

Return type

HybridType

property dftu

Get DftU attribute from self._dftu.

Returns

Hybrid attribute

Return type

HybridType

__init__()

Initialize GenericType object and update attributes from data.

updateWithData(data)

Update attributes from data. Set object attribute from data. Example: self.attribute = self.data.get(attribute)

Parameters

data (dict) – Dictionary of settings

class schrodinger.application.matsci.espresso.qeinput.PseudopotentialsType

Bases: schrodinger.application.matsci.espresso.qeinput.GenericType

Class to generate QE input XML section related to pseudopotentials.

DEFAULTS = {'species': {}}
setStructureType(struct_type)

Set structure_type in self.struct_type and atom types in self.st_species.

Parameters

struct_type (StructureType) – Structure type used to calculate number of valence electrons in the cell

getData()

Get pseudopotentials file paths and other related data from the database having the same functional and family.

Return type

dict, float, float, float

Returns

Dict with paths to PPs ({‘element’: ‘path’}), number of valence electrons, max ecutwfc, max ecutrho for elements

__init__()

Initialize GenericType object and update attributes from data.

updateWithData(data)

Update attributes from data. Set object attribute from data. Example: self.attribute = self.data.get(attribute)

Parameters

data (dict) – Dictionary of settings

class schrodinger.application.matsci.espresso.qeinput.StructureType(struct, use_symmetry)

Bases: object

Class to generate QE input XML section related to structure.

X = 0
Y = 1
Z = 2
__init__(struct, use_symmetry)

Initialize StructureType object.

Parameters
  • struct (List of structure.Structure) – Structures to generate XML from

  • use_symmetry (bool) – If true, try to convert structure to primitive cell

setPrimitiveCell()

Set and use primitive cell found by spglib, if any.

setElements()

Set elements in self.elements and atomic numbers for spglib in self.anums.

getAtomicStructure()

Generate XML input related to atomic_structure.

Return type

str

Returns

cell xml data

getAtomicSpecies(ppfiles)

Generate XML input related to atomic species.

Param

Dictionary containing paths to PPs ({‘Element’: ‘Path’})

Return type

str

Returns

species xml data

fetchPPDB(functional)

Get pseudopotentials file paths and other related data from the database having the same functional and family.

Parameters

functional (str) – DFT Functional (one of the DFT_FUNCTIONALS)

Return type

dict, float, float, float

Returns

Dict with paths to PPs ({‘element’: ‘path’}), number of valence electrons, max ecutwfc, max ecutrho for elements

alignStructWithPlane(vector_index)

Slide structure (self.struct) along the axis such that all atoms are on top of the plane perpendicular to the axis defined by vector_index.

Parameters

vector_index (int) – Vector index (X or Y or Z) to align structure to the perpendicular plane

validateStruct(struct)

Validate provided structure against self.struct.

Parameters

struct (schrodinger.structure.Structure) – Structure to validate

Raises

ValueError – If number of atoms or atomic types differ compared to the initial structure (self.structure)

class schrodinger.application.matsci.espresso.qeinput.ControlType

Bases: schrodinger.application.matsci.espresso.qeinput.GenericType

Class to generate QE input XML section related to control.

DEFAULTS = {'calculation_type': '', 'etot_conv_thr': 1e-05, 'forc_conv_thr': 0.001, 'forces': False, 'prefix': '', 'press_conv_thr': 0.5, 'relax_steps': 50, 'stress': False, 'title': 'Default Title', 'wf_collect': False, 'wf_keep': False}
__init__()

Initialize GenericType object and update attributes from data.

updateWithData(data)

Update attributes from data. Set object attribute from data. Example: self.attribute = self.data.get(attribute)

Parameters

data (dict) – Dictionary of settings

class schrodinger.application.matsci.espresso.qeinput.SymmetryType

Bases: schrodinger.application.matsci.espresso.qeinput.GenericType

Class to generate QE input XML section related to symmetry.

USE_SYMM_KEY = 'use_symmetry'
USE_PRIM_KEY = 'use_primitive'
GET_STD_CELL = 'get_std_cell'
USE_ALL_FRAC_KEY = 'use_all_frac'
NO_INV_KEY = 'noinv'
DEFAULTS = {'get_std_cell': False, 'noinv': False, 'use_all_frac': False, 'use_primitive': False, 'use_symmetry': False}
__init__()

Initialize GenericType object and update attributes from data.

updateWithData(data)

Update attributes from data. Set object attribute from data. Example: self.attribute = self.data.get(attribute)

Parameters

data (dict) – Dictionary of settings

class schrodinger.application.matsci.espresso.qeinput.FreePositionsType

Bases: schrodinger.application.matsci.espresso.qeinput.GenericType

Class to generate QE input XML section related to Cartesian atomic constraints.

DEFAULTS = {}
static saveConstraint(data, atom)

Static method to save Cartesian atomic constraint.

Parameters
  • data (list of 3 integers) – Cartesian constraints for each coordinate: 1 - not constrained, 0 - constrained (QE convention)

  • atom (structure._StructureAtom) – Atom to add/modify constraint to

Raises

ValueError – If data is not a list of 3 elements

static saveTorsionConstraint(struct, indices)

Static method to save torsion angle constraint.

Parameters
  • struct (structure.Structure) – Structure to add constraint to as a property

  • indices (list) – Atomic indices that describe a torsion angle

Raises

ValueError – If data is not a list of 3 elements

__init__()

Initialize GenericType object and update attributes from data.

updateWithData(data)

Update attributes from data. Set object attribute from data. Example: self.attribute = self.data.get(attribute)

Parameters

data (dict) – Dictionary of settings

class schrodinger.application.matsci.espresso.qeinput.InputType(data)

Bases: object

Class to generate QE input XML section related to input.

__init__(data)

Initialize InputType object from the string.

Param

Tuple that contains XML for different part of the input

class schrodinger.application.matsci.espresso.qeinput.NEBInputType(data)

Bases: schrodinger.application.matsci.espresso.qeinput.InputType

Class to generate QE input XML section related to NEB input.

__init__(data)

Initialize InputType object from the string.

Param

Tuple that contains XML for different part of the input

class schrodinger.application.matsci.espresso.qeinput.PHInputType(data)

Bases: schrodinger.application.matsci.espresso.qeinput.InputType

Class to generate QE input XML section related to PHonon input.

__init__(data)

Initialize InputType object from the string.

Param

Tuple that contains XML for different part of the input

class schrodinger.application.matsci.espresso.qeinput.MdType

Bases: schrodinger.application.matsci.espresso.qeinput.GenericType

Class to generate XML section related to MD control.

DEFAULTS = {'deltat': 1.0, 'ion_temperature': 'rescale-v', 'nraise': 1, 'tempw': 300.0, 'timestep': 2.0}
__init__()

Initialize GenericType object and update attributes from data.

updateWithData(data)

Update attributes from data. Set object attribute from data. Example: self.attribute = self.data.get(attribute)

Parameters

data (dict) – Dictionary of settings

class schrodinger.application.matsci.espresso.qeinput.IonControlType

Bases: schrodinger.application.matsci.espresso.qeinput.GenericType

Class to generate QE ionic control XML section related to control.

ION_DYNAMICS_KEY = 'ion_dynamics'
DEFAULTS = {'dynamics': {'deltat': 1.0, 'ion_temperature': 'rescale-v', 'nraise': 1, 'tempw': 300.0, 'timestep': 2.0}, 'ion_dynamics': 'bfgs'}
property dynamics

Getter for the dynamics attribute.

Return type

MdType

Returns

dynamics object

__init__()

Initialize GenericType object and update attributes from data.

updateWithData(data)

Update attributes from data. Set object attribute from data. Example: self.attribute = self.data.get(attribute)

Parameters

data (dict) – Dictionary of settings

class schrodinger.application.matsci.espresso.qeinput.CellControlType

Bases: schrodinger.application.matsci.espresso.qeinput.GenericType

Class to generate QE cell control XML section related to control.

CELL_DYNAMICS_KEY = 'cell_dynamics'
PRESSURE_KEY = 'pressure'
CELL_FACTOR_KEY = 'cell_factor'
CELL_DOFREE_KEY = 'cell_dofree'
DEFAULTS = {'cell_dofree': 'all', 'cell_dynamics': 'bfgs', 'cell_factor': 2.0, 'pressure': 0.0}
CELL_DOFREE_XML = {'2Dshape': 'fix_area', '2Dxy': 'fix_xy', 'shape': 'fix_volume'}
__init__()

Initialize GenericType object and update attributes from data.

updateWithData(data)

Update attributes from data. Set object attribute from data. Example: self.attribute = self.data.get(attribute)

Parameters

data (dict) – Dictionary of settings

class schrodinger.application.matsci.espresso.qeinput.EsmType

Bases: schrodinger.application.matsci.espresso.qeinput.GenericType

Class to generate QE input XML section related to esm type.

BC_KEY = 'bc'
BC_W_KEY = 'offset'
BC_EFIELD_KEY = 'efield'
DEFAULTS = {'bc': 'bc1', 'efield': 0.0, 'offset': 0.0}
__init__()

Initialize GenericType object and update attributes from data.

updateWithData(data)

Update attributes from data. Set object attribute from data. Example: self.attribute = self.data.get(attribute)

Parameters

data (dict) – Dictionary of settings

class schrodinger.application.matsci.espresso.qeinput.BoundaryType

Bases: schrodinger.application.matsci.espresso.qeinput.GenericType

Class to generate QE input XML section related to boundary conditions type.

ASSUME_ISOLATED_KEY = 'assume_isolated'
ESM_KEY = 'esm'
EFERMI_KEY = 'efermi'
RELATIVE_POT_KEY = 'relative_pot'
DEFAULTS = {'assume_isolated': '', 'efermi': 0.0, 'esm': {'bc': 'bc1', 'efield': 0.0, 'offset': 0.0}, 'relative_pot': None}
property esm

Getter for the esm attribute.

Return type

EsmType

Returns

esm object

__init__()

Initialize GenericType object and update attributes from data.

updateWithData(data)

Update attributes from data. Set object attribute from data. Example: self.attribute = self.data.get(attribute)

Parameters

data (dict) – Dictionary of settings

class schrodinger.application.matsci.espresso.qeinput.NEBPathType

Bases: schrodinger.application.matsci.espresso.qeinput.GenericType

Class to generate QE input XML section related to the NEB path.

MIMAGE_KEY = 'minimum_image'
NIMAGE_KEY = 'nimages'
DEFAULTS = {'climbing_image': 'no-CI', 'esm': False, 'esm_efermi': 0.0, 'esm_first_image_charge': 0.0, 'esm_last_image_charge': 0.0, 'minimum_image': True, 'nimages': 4, 'nsteps': 50, 'optimization_scheme': 'broyden', 'optimize_first_last': False, 'path_thr': 0.05, 'restart_mode': 'from_scratch', 'string_method': 'neb', 'use_masses': False}
__init__()

Initialize GenericType object and update attributes from data.

updateWithData(data)

Update attributes from data. Set object attribute from data. Example: self.attribute = self.data.get(attribute)

Parameters

data (dict) – Dictionary of settings

class schrodinger.application.matsci.espresso.qeinput.PHControlType

Bases: schrodinger.application.matsci.espresso.qeinput.GenericType

Class to generate phonon control input XML section related to control.

QPTS_MESH_KEY = 'qpts_mesh'
QPTS_SPACING_KEY = 'qpts_spacing'
DEFAULTS = {'epsil': False, 'lraman': False, 'prefix': '', 'qpts_mesh': [1, 1, 1]}
__init__()

Initialize GenericType object and update attributes from data.

updateWithData(data)

Update attributes from data. Set object attribute from data. Example: self.attribute = self.data.get(attribute)

Parameters

data (dict) – Dictionary of settings

class schrodinger.application.matsci.espresso.qeinput.PHDynmatType

Bases: schrodinger.application.matsci.espresso.qeinput.GenericType

Class to generate dynmat control input.

DEFAULTS = {'asr': 'crystal', 'axis': 3, 'loto_2d': False, 'lperm': False, 'lplasma': False, 'q_dir': [0, 0, 0]}
__init__()

Initialize GenericType object and update attributes from data.

updateWithData(data)

Update attributes from data. Set object attribute from data. Example: self.attribute = self.data.get(attribute)

Parameters

data (dict) – Dictionary of settings

class schrodinger.application.matsci.espresso.qeinput.ElasticType

Bases: schrodinger.application.matsci.espresso.qeinput.GenericType

Elastic settings class.

STRAIN_DEFO_KEY = 'deformation_matrix'
DEFAULTS = {'deformation_matrix': []}
__init__()

Initialize GenericType object and update attributes from data.

updateWithData(data)

Update attributes from data. Set object attribute from data. Example: self.attribute = self.data.get(attribute)

Parameters

data (dict) – Dictionary of settings

class schrodinger.application.matsci.espresso.qeinput.GIPAWType

Bases: schrodinger.application.matsci.espresso.qeinput.GenericType

gipaw.x input file class.

JOBTYPE = 'jobtype'
Q_GIPAW = 'q_gipaw'
SPLINE_PS = 'spline_ps'
USE_NMR_MACROSCOPIC_SHAPE = 'use_nmr_macroscopic_shape'
DEFAULTS = {'jobtype': 'nmr', 'q_gipaw': 0.01, 'spline_ps': True, 'use_nmr_macroscopic_shape': False}
__init__()

Initialize GenericType object and update attributes from data.

updateWithData(data)

Update attributes from data. Set object attribute from data. Example: self.attribute = self.data.get(attribute)

Parameters

data (dict) – Dictionary of settings

class schrodinger.application.matsci.espresso.qeinput.EpsilonType

Bases: schrodinger.application.matsci.espresso.qeinput.GenericType

Epsilon.x input file class.

SMEARTYPES = ['lorentz', 'gauss']
CALCULATIONS = ['eps', 'jdos', 'offdiag']
INTERSMEAR_KEY = 'intersmear'
INTRASMEAR_KEY = 'intrasmear'
DEFAULTS = {'calculation': 'eps', 'intersmear': 0.136, 'intrasmear': 0.0, 'nw': 60, 'prefix': '', 'shift': 0.0, 'smeartype': 'lorentz', 'wmax': 30.0, 'wmin': 0.0}
__init__()

Initialize GenericType object and update attributes from data.

updateWithData(data)

Update attributes from data. Set object attribute from data. Example: self.attribute = self.data.get(attribute)

Parameters

data (dict) – Dictionary of settings

class schrodinger.application.matsci.espresso.qeinput.PPlotType

Bases: schrodinger.application.matsci.espresso.qeinput.GenericType

pp.x input file class.

DEFAULTS = {'plot_num': 0, 'spin_component': 0}
__init__()

Initialize GenericType object and update attributes from data.

updateWithData(data)

Update attributes from data. Set object attribute from data. Example: self.attribute = self.data.get(attribute)

Parameters

data (dict) – Dictionary of settings

class schrodinger.application.matsci.espresso.qeinput.HPType

Bases: schrodinger.application.matsci.espresso.qeinput.GenericType

hp.x input file class.

__init__()

Initialize GenericType object and update attributes from data.

updateWithData(data)

Update attributes from data. Set object attribute from data. Example: self.attribute = self.data.get(attribute)

Parameters

data (dict) – Dictionary of settings

QPTS_MESH_KEY = 'qpts_mesh'
QPTS_SPACING_KEY = 'qpts_spacing'
DISABLE_TYPE_KEY = 'disable_type_analysis'
DEFAULTS = {'disable_type_analysis': True, 'qpts_mesh': [2, 2, 2], 'qpts_spacing': 0}