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__

Return key in self.

__init__

Initialize self. See help(type(self)) for accurate signature.

__len__

Return len(self).

count(value) → integer -- return number of occurrences of value
engine

Alias for field number 0

index(value[, start[, stop]]) → integer -- 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': ''}
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}}
vdw
hybrid

Get hybrid attribute (self._hybrid).

Returns:Hybrid attribute
Return type:HybridType
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'}
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}
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'
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, '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, '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.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}