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)[source]

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)[source]

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[source]

Bases: object

Generic class for different input types.

__init__()[source]

Initialize GenericType object and update attributes from data.

updateWithData(data)[source]

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[source]

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'
SPLINE_PS_KEY = 'spline_ps'
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[source]

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[source]

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[source]

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)[source]

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)[source]

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()[source]

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()[source]

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[source]

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__()[source]

Initialize SpinType object from string.

Parameters

data (dict) – Dictionary of settings

getNSpin()[source]

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[source]

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__()[source]

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[source]

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[source]

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[source]

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[source]

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

Class to generate QE input XML section related to pseudopotentials.

DEFAULTS = {'species': {}}
setStructureType(struct_type)[source]

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()[source]

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)[source]

Bases: object

Class to generate QE input XML section related to structure.

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

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()[source]

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

setElements()[source]

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

getAtomicStructure()[source]

Generate XML input related to atomic_structure.

Return type

str

Returns

cell xml data

getAtomicSpecies(ppfiles)[source]

Generate XML input related to atomic species.

Param

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

Return type

str

Returns

species xml data

fetchPPDB(functional)[source]

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)[source]

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)[source]

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[source]

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[source]

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[source]

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

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

DEFAULTS = {}
static saveConstraint(data, atom)[source]

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)[source]

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)[source]

Bases: object

Class to generate QE input XML section related to input.

__init__(data)[source]

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)[source]

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)[source]

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[source]

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[source]

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[source]

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[source]

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[source]

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[source]

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[source]

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[source]

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[source]

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[source]

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[source]

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[source]

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[source]

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}