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
-
engine
¶ Alias for field number 0
-
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.
-
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', 'total_charge': 0.0, 'total_magnetization': -1.0}¶
-
-
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}¶
-
-
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}¶
-
-
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_TYPES
= {'kpts_mesh', 'kpts_dens', 'kpts_band', 'kpts_list'}¶
-
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)
-
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
-
-
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¶
-
getNSpin
()¶ Get nspin based on the spin settings.
Returns: Spin type in the PW integer representation Return type: int
-
-
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}¶
-
-
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
= {'ecutvcut': 0.7, 'exxdiv_treatment': 'gygi-baldereschi', 'qpts_mesh': [1, 1, 1], 'screening_parameter': 0.106, 'x_gamma_extrapolation': True}¶
-
-
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
= {'structure_type': None}¶
-
-
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': {'structure_type': None}, 'functional': '', 'hybrid': {'qpts_mesh': [1, 1, 1], 'ecutvcut': 0.7, 'x_gamma_extrapolation': True, 'exxdiv_treatment': 'gygi-baldereschi', 'screening_parameter': 0.106}, 'vdw': {'correction': '', 'london_s6': 0.75, 'london_rcut': 200, '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
-
-
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
-
-
class
schrodinger.application.matsci.espresso.qeinput.
MagSpecies
¶ Bases:
object
Class that defines species with starting magnetization.
-
createUniqueElement
(element, mag, hubb_u)¶ Fill self.data dict. Keys of the self.data are elements. Values are dicts with magnetization as key and unique element as value. Unique element is just the atomic symbol plus (if element has more than one magnetization value) a unique integer. Example: {‘C’: {0.0: ‘C’}, ‘H’: {0.0: ‘H’, 0.1: ‘H1’}}
self.species is a dict where unique elements are keys and elements are values. Example (based on the example above): {‘C’: ‘C’, ‘H’: ‘H’, ‘H1’: ‘H’}
Parameters: - element (str) – Element
- mag (float) – Starting magnetization
- hubb_u (float) – Hubbard U parameter
Return type: str
Returns: Unique element
-
getMag
(element, unique_element)¶ Get magnetization given element and unique element values.
Parameters: - element (str) – Element
- unique_element (str) – Unique element
Return type: tuple
Returns: Starting magnetization and Hubbard U
Raises: ValueError – If element, unique_element combination is not found
-
-
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¶
-
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 validateRaises: 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}¶
-
-
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'¶
-
DEFAULTS
= {'get_std_cell': False, 'use_all_frac': False, 'use_primitive': False, 'use_symmetry': False}¶
-
-
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
-
-
class
schrodinger.application.matsci.espresso.qeinput.
InputType
(data)¶ Bases:
object
Class to generate QE input XML section related to 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.
-
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.
-
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}¶
-
-
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': {'ion_temperature': 'rescale-v', 'timestep': 2.0, 'tempw': 300.0, 'deltat': 1.0, 'nraise': 1}, 'ion_dynamics': 'bfgs'}¶
-
-
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'}¶
-
-
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}¶
-
-
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', 'offset': 0.0, 'efield': 0.0}, 'relative_pot': None}¶
-
-
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.
-
DEFAULTS
= {'climbing_image': 'no-CI', 'esm': False, 'esm_efermi': 0.0, 'esm_first_image_charge': 0.0, 'esm_last_image_charge': 0.0, 'nimages': 4, 'nsteps': 50, 'optimization_scheme': 'broyden', 'optimize_first_last': False, 'string_method': 'neb', 'use_masses': False}¶
-
-
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.
-
DEFAULTS
= {'epsil': False, 'prefix': '', 'qpts_mesh': [1, 1, 1]}¶
-