vasp_step package#

Submodules#

vasp_step.energy module#

Non-graphical part of the Energy step in a VASP flowchart

class vasp_step.energy.Energy(flowchart=None, title='Energy', extension=None, logger=<Logger vasp_step.energy (WARNING)>)[source]#

Bases: Node

The non-graphical part of a Energy step in a flowchart.

parser#

The parser object.

Type:

configargparse.ArgParser

options#

It contains a two item tuple containing the populated namespace and the list of remaining argument strings.

Type:

tuple

subflowchart#

A SEAMM Flowchart object that represents a subflowchart, if needed.

Type:

seamm.Flowchart

parameters#

The control parameters for Energy.

Type:

EnergyParameters

See also

TkEnergy, Energy, EnergyParameters

analyze(P=None, configuration=None, starting_configuration=None, indent='', text='', table=None, results={}, **kwargs)[source]#

Do any analysis of the output from this step.

Also print important results to the local step.out file using “printer”.

Parameters:

indent (str) – An extra indentation for the output

atom_order()[source]#

Get the coordinate information for VASP (POSCAR file).

calculate_enthalpy_of_formation(P, data)[source]#

Calculate the enthalpy of formation from the results of a calculation.

This uses tabulated values of the enthalpy of formation of the atoms for the elements and tabulated energies calculated for atoms with the current method.

Parameters:

data (dict) – The results of the calculation.

description_text(P=None)[source]#

Create the text description of what this step will do. The dictionary of control values is passed in as P so that the code can test values, etc.

Parameters:

P (dict) – An optional dictionary of the current values of the control parameters.

Returns:

A description of the current step.

Return type:

str

property element_count#

Numbers of atoms of each element.

get_INCAR(P=None)[source]#

Get the control input (INCAR) for this calculation.

get_KPOINTS(P=None)[source]#

Get the k-point grid, KPOINTS file.

get_POSCAR(P=None)[source]#

Get the coordinate information for VASP (POSCAR file).

get_POTCAR(P=None)[source]#

Get the potential input (POTCAR) for this calculation.

The elements are ordered by descending atomic number.

get_input(P=None)[source]#

Get all the input for VASP

get_keywords(P=None)[source]#

Get the keywords and values for the calculation.

property git_revision#

The git version of this module.

property header#

A printable header for this section of output

parse_hdf5(data_file)[source]#

Get the data from the vaspout.h5 file.

parse_xml(data_file)[source]#

Get the data from the vasprun.xml file.

plot(E_units='', F_units='')[source]#

Generate a plot of the convergence of the geometry optimization.

run()[source]#

Run a Energy step.

Parameters:

None

Returns:

The next node object in the flowchart.

Return type:

seamm.Node

property to_SEAMM_order#

Translation of atoms from VASP to SEAMM order.

property to_VASP_order#

Translation of atoms from SEAMM to VASP order.

property version#

The semantic version of this module.

vasp_step.energy.dehumanize(memory, suffix='B')[source]#

Unscale memory from its human readable form e.g:

‘1.20 MB’ => 1200000 ‘1.17 GB’ => 1170000000

vasp_step.energy.humanize(memory, suffix='B', kilo=1024)[source]#

Scale memory to its proper format e.g:

1253656 => ‘1.20 MiB’ 1253656678 => ‘1.17 GiB’

vasp_step.energy.subscript(n)[source]#

Return the number using Unicode subscript characters.

vasp_step.energy_parameters module#

Control parameters for the Energy substep in a VASP step

class vasp_step.energy_parameters.EnergyParameters(defaults={}, data=None)[source]#

Bases: Parameters

The control parameters for Energy.

You need to replace the “time” entry in dictionary below these comments with the definitions of parameters to control this step. The keys are parameters for the current plugin,the values are dictionaries as outlined below.

Examples

parameters = {
    "time": {
        "default": 100.0,
        "kind": "float",
        "default_units": "ps",
        "enumeration": tuple(),
        "format_string": ".1f",
        "description": "Simulation time:",
        "help_text": ("The time to simulate in the dynamics run.")
    },
}
parameters{str: {str: str}}

A dictionary containing the parameters for the current step. Each key of the dictionary is a dictionary that contains the the following keys:

parameters[“default”] :

The default value of the parameter, used to reset it.

parameters[“kind”]enum()

Specifies the kind of a variable. One of “integer”, “float”, “string”, “boolean”, or “enum”

While the “kind” of a variable might be a numeric value, it may still have enumerated custom values meaningful to the user. For instance, if the parameter is a convergence criterion for an optimizer, custom values like “normal”, “precise”, etc, might be adequate. In addition, any parameter can be set to a variable of expression, indicated by having “$” as the first character in the field. For example, $OPTIMIZER_CONV.

parameters[“default_units”]str

The default units, used for resetting the value.

parameters[“enumeration”]: tuple

A tuple of enumerated values.

parameters[“format_string”]: str

A format string for “pretty” output.

parameters[“description”]: str

A short string used as a prompt in the GUI.

parameters[“help_text”]: str

A longer string to display as help for the user.

See also

Energy, TkEnergy, Energy, EnergyStep

kspace_parameters = {'Methfessel-Paxton order': {'default': 2, 'default_units': '', 'description': 'Order:', 'enumeration': None, 'format_string': '', 'help_text': 'The order of the expansion in the Methfessel-Paxton method.', 'kind': 'integer'}, 'centering': {'default': 'Monkhorst-Pack', 'default_units': '', 'description': 'Centering of grid:', 'enumeration': ('𝚪-centered', 'Monkhorst-Pack'), 'format_string': '', 'help_text': 'How to center the grid in reciprocal space.', 'kind': 'enumeration'}, 'k-grid method': {'default': 'grid spacing', 'default_units': '', 'description': 'Specify k-space grid using:', 'enumeration': ('𝚪-point', 'grid spacing', 'explicit grid dimensions'), 'format_string': '', 'help_text': 'How to specify the k-space integration grid.', 'kind': 'string'}, 'k-spacing': {'default': 0.5, 'default_units': '1/Å', 'description': 'K-spacing:', 'enumeration': None, 'format_string': '', 'help_text': 'The spacing of the grid in reciprocal space.', 'kind': 'float'}, 'na': {'default': 4, 'default_units': '', 'description': 'NPoints in a:', 'enumeration': None, 'format_string': '', 'help_text': 'Number of points in the first direction of the Brillouin zone.', 'kind': 'integer'}, 'nb': {'default': 4, 'default_units': '', 'description': 'b:', 'enumeration': None, 'format_string': '', 'help_text': 'Number of points in the second direction of the Brillouin zone.', 'kind': 'integer'}, 'nc': {'default': 4, 'default_units': '', 'description': 'c:', 'enumeration': None, 'format_string': '', 'help_text': 'Number of points in the third direction of the Brillouin zone.', 'kind': 'integer'}, 'occupation type': {'default': 'Gaussian smearing', 'default_units': '', 'description': 'Smearing:', 'enumeration': ('Gaussian smearing', 'the Methfessel-Paxton method', 'Fermi-Dirac smearing', 'the tetrahedron method without smearing', 'the tetrahedron method with Blöchl corrections without smearing', 'the tetrahedron method with Fermi-Dirac smearing', 'the tetrahedron method with Blöchl corrections with Fermi-Dirac smearing'), 'format_string': '', 'help_text': 'How occupy the orbitals, typically smearing the electrons as they would be at finite temperature.', 'kind': 'enumeration'}, 'odd grid': {'default': 'yes', 'default_units': '', 'description': 'Force to odd numbers:', 'enumeration': ('yes', 'no'), 'format_string': '', 'help_text': 'Whether to force the grid sizes to odd numbers.', 'kind': 'boolean'}, 'smearing width': {'default': 0.05, 'default_units': 'eV', 'description': 'Width:', 'enumeration': None, 'format_string': '.3f', 'help_text': 'The smearing or broadening width.', 'kind': 'float'}}#
model_parameters = {'enmax': {'default': 0, 'default_units': 'eV', 'description': 'Maximum cutoff in potentials:', 'enumeration': None, 'format_string': '', 'help_text': 'The maximum energy cutoff in the specified potentials.', 'kind': 'float'}, 'magnetic moments': {'default': 'default', 'default_units': '', 'description': 'Magnetic moments:', 'enumeration': 'default', 'format_string': '', 'help_text': 'The initial magnetic moments on the atoms', 'kind': 'string'}, 'model': {'default': 'Generalized-gradient approximations (GGA)', 'default_units': '', 'description': 'Computational model:', 'enumeration': ('Local-density approximation (LDA)', 'Generalized-gradient approximations (GGA)', 'Meta-generalized gradient approximations (meta-GGA)', 'Hartree-Fock and hybrid functionals', 'Hybrid meta generalized gradient approximation (Hybrid meta-GGA)'), 'format_string': '', 'help_text': 'The high-level computational model employed.', 'kind': 'enumeration'}, 'nonspherical PAW': {'default': 'yes', 'default_units': '', 'description': 'Include non-spherical terms in PAW:', 'enumeration': ('yes', 'no'), 'format_string': '', 'help_text': 'Include non-spherical contributions from the gradient corrections inside the PAW spheres', 'kind': 'boolean'}, 'plane-wave cutoff': {'default': 500, 'default_units': 'eV', 'description': 'Plane-wave cutoff:', 'enumeration': None, 'format_string': '', 'help_text': 'The energy cutoff for the plane-wave basis.', 'kind': 'float'}, 'potentials': {'default': {}, 'default_units': '', 'description': 'PAW potentials', 'enumeration': (), 'format_string': '', 'help_text': 'The PAW potentials to use for all systems', 'kind': 'dictionary'}, 'set of potentials': {'default': 'potpaw_PBE.64', 'default_units': '', 'description': 'Set of potentials:', 'enumeration': (), 'format_string': '', 'help_text': 'The set of PAW potentials to use.', 'kind': 'enumeration'}, 'spin polarization': {'default': 'none', 'default_units': '', 'description': 'Spin polarization:', 'enumeration': ('none', 'collinear', 'noncollinear'), 'format_string': '', 'help_text': 'Whether and what type of spin-polarization to use', 'kind': 'string'}, 'submodel': {'default': 'PBE : Perdew, Burke and Ernzerhof', 'default_units': '', 'description': 'Model version:', 'enumeration': (), 'format_string': '', 'help_text': 'The version of the model employed.', 'kind': 'enumeration'}, 'subset': {'default': 'Show all potentials', 'default_units': '', 'description': 'Subset of potentials:', 'enumeration': ('Show all potentials', 'Show standard potentials', 'Show GW potentials'), 'format_string': '', 'help_text': 'The subset of PAW potentials to use.', 'kind': 'enumeration'}}#
parameters = {'calculate stress': {'default': 'yes', 'default_units': '', 'description': 'Calculate stress tensor:', 'enumeration': ('no', 'only pressure', 'yes'), 'format_string': '', 'help_text': 'Whether to calculate the stress tensor, the pressure, or neither.', 'kind': 'enumeration'}, 'ediff': {'default': 1e-05, 'default_units': '', 'description': 'Electronic convergence threshold', 'enumeration': None, 'format_string': '.2E', 'help_text': 'Threshold for the electronic convergence.', 'kind': 'float'}, 'efermi': {'default': 'middle of the gap', 'default_units': 'eV', 'description': 'Fermi level:', 'enumeration': ('middle of the gap', 'legacy'), 'format_string': '.3f', 'help_text': 'The position of the Fermi level: either the middle of the gap, the previous legacy value, or a numerical value in eV', 'kind': 'float'}, 'electronic method': {'default': 'fast', 'default_units': '', 'description': 'Electronic minimization method:', 'enumeration': ('normal', 'fast', 'very fast', 'all', 'conjugate', 'damped', 'exact'), 'format_string': '', 'help_text': 'The algorithm used tp minimize the electronic energy.', 'kind': 'enumeration'}, 'extra keywords': {'default': [], 'default_units': '', 'description': 'Extra keywords', 'enumeration': (), 'format_string': '', 'help_text': 'Extra keywords to add/overwrite those from the GUI. ', 'kind': 'list'}, 'initial wavefunction': {'default': 'default', 'default_units': '', 'description': 'Initial wavefunction:', 'enumeration': ('default', 'random guess'), 'format_string': 's', 'help_text': 'The initial wavefunction to start with.', 'kind': 'string'}, 'input only': {'default': 'no', 'default_units': '', 'description': 'Write the input files and stop:', 'enumeration': ('yes', 'no'), 'format_string': 's', 'help_text': "Don't run VASP. Just write the input files.", 'kind': 'boolean'}, 'kpar': {'default': 2, 'default_units': '', 'description': 'Cores per k-point (KPAR):', 'enumeration': None, 'format_string': '', 'help_text': 'Number of cores working on each k-point (KPAR).', 'kind': 'integer'}, 'lorbit': {'default': 'yes', 'default_units': '', 'description': 'Calculate atomic densities and spins:', 'enumeration': ('yes', 'no'), 'format_string': '', 'help_text': 'Whether to calculate the angular momemntum resolved densities and spins on the atoms.', 'kind': 'boolean'}, 'lplane': {'default': 'yes', 'default_units': '', 'description': 'Plane-wise data distribution (LPLANE):', 'enumeration': ('yes', 'no'), 'format_string': '', 'help_text': 'Whether to use the plane-wise data distribution, which reduces memory bandwidth but worsens load balancing.', 'kind': 'boolean'}, 'lreal': {'default': 'no', 'default_units': '', 'description': 'Use real space projection (LREAL):', 'enumeration': ('yes', 'no'), 'format_string': '', 'help_text': 'Whether to use projection operators in real space (True) or reciprocal (False).', 'kind': 'boolean'}, 'lscalapack': {'default': 'yes', 'default_units': '', 'description': 'Use ScaLAPACK (LSCALAPACK):', 'enumeration': ('yes', 'no'), 'format_string': '', 'help_text': 'Whether to use ScaLAPACK for the orthonormalization of the orbitals and, optionally, subspace rotations.', 'kind': 'boolean'}, 'lscalu': {'default': 'no', 'default_units': '', 'description': 'Use ScaLAPACK for subspace rotations (LSCALU):', 'enumeration': ('yes', 'no'), 'format_string': '', 'help_text': 'Whether to use ScaLAPACK for the subspace rotations.', 'kind': 'boolean'}, 'ncore': {'default': 2, 'default_units': '', 'description': 'Cores per orbital (NCORE):', 'enumeration': None, 'format_string': '', 'help_text': 'Number of cores working on each orbital (NCORE).', 'kind': 'integer'}, 'nelm': {'default': 60, 'default_units': '', 'description': 'Maximum electronic iterations:', 'enumeration': None, 'format_string': '', 'help_text': 'Maximum number of steps for the selfconsistent electronic minimization.', 'kind': 'integer'}, 'nelmin': {'default': 'default', 'default_units': '', 'description': 'Minimum electronic iterations:', 'enumeration': ('default',), 'format_string': '', 'help_text': 'Minimum number of steps for the selfconsistent electronic minimization. The default is 6 for minimization and MD, 2 otherwise.', 'kind': 'integer'}, 'np': {'default': 'available', 'default_units': '', 'description': 'Total number of cores to use:', 'enumeration': ('available',), 'format_string': '', 'help_text': 'The total number of cores to use.', 'kind': 'integer'}, 'nsim': {'default': 4, 'default_units': '', 'description': 'Number of bands treated simultaneously (NSIM):', 'enumeration': None, 'format_string': '', 'help_text': 'Number of bands treated simultaneously in RMM-DIIS or blocked Davidsonmethods for optimizing the wavefunction (NSIM).', 'kind': 'integer'}, 'precision': {'default': 'normal', 'default_units': '', 'description': 'Precision of FFT grids and projections:', 'enumeration': ('single', 'normal', 'accurate'), 'format_string': '', 'help_text': 'The precision of the FFT grids the real-space projections.', 'kind': 'enumeration'}, 'results': {'default': {}, 'default_units': '', 'description': 'results', 'enumeration': (), 'format_string': '', 'help_text': 'The results to save to variables or in tables.', 'kind': 'dictionary'}, 'save gradients': {'default': 'no', 'default_units': '', 'description': 'Save the gradients:', 'enumeration': ('yes', 'no'), 'format_string': '', 'help_text': 'Whether to save the gradients.', 'kind': 'boolean'}, 'use hdf5 files': {'default': 'no', 'default_units': '', 'description': 'Output to  hdf5 files:', 'enumeration': ('yes', 'no'), 'format_string': 's', 'help_text': 'Use hdf5 files for the wavefunction and charge density output.', 'kind': 'boolean'}}#

vasp_step.energy_step module#

class vasp_step.energy_step.EnergyStep(flowchart=None, gui=None)[source]#

Bases: object

Helper class needed for the stevedore integration.

This must provide a description() method that returns a dict containing a description of this node, and create_node() and create_tk_node() methods for creating the graphical and non-graphical nodes.

The dictionary for the description is the class variable just below these comments. The felds are as follows:

my_description{str, str}

A human-readable description of this step. It can be several lines long, and needs to be clear to non-expert users. It contains the following keys: description, group, name.

my_description[“description”]tuple

A description of the Energy step. It must be clear to non-experts.

my_description[“group”]str

Which group in the menus to put this step. If the group does not exist it will be created. Common groups are “Building”, “Control”, “Custom”, “Data”, and “Simulations”.

my_description[“name”]str

The name of this step, to be displayed in the menus.

create_node(flowchart=None, **kwargs)[source]#

Create and return the new node object.

Parameters:
  • flowchart (seamm.Node) – A non-graphical SEAMM node

  • **kwargs (keyword arguments) – Various keyword arguments such as title, namespace or extension representing the title displayed in the flowchart, the namespace for the plugins of a subflowchart and the extension, respectively.

Return type:

Energy

create_tk_node(canvas=None, **kwargs)[source]#

Create and return the graphical Tk node object.

Parameters:
  • canvas (tk.Canvas) – The Tk Canvas widget

  • **kwargs (keyword arguments) – Various keyword arguments such as tk_flowchart, node, x, y, w, h representing a graphical flowchart object, a non-graphical node for a step, and dimensions of the graphical node.

Return type:

TkEnergy

description()[source]#

Return a description of what this step does.

Returns:

description

Return type:

dict(str, str)

my_description = {'description': 'An interface for Energy', 'group': 'Calculations', 'name': 'Energy'}#

vasp_step.metadata module#

This file contains metadata describing the results from VASP

vasp_step.metadata.metadata = {'computational models': {'Density Functional Theory (DFT)': {'models': {'Generalized-gradient approximations (GGA)': {'parameterizations': {'AM05 : Armiento and Mattsson': {'description': 'GGA functional designed to include surface effects in self-consistent density functional theory, according to Armiento and Mattsson [9]', 'keywords': {'GGA': 'AM'}}, 'PBE : Perdew, Burke and Ernzerhof': {'description': 'GGA of Perdew, Burke and Ernzerhof 1997.', 'keywords': {'GGA': 'PE'}}, 'PBE-D3BJ : PBE with D3(BJ) dispersion': {'description': 'GGA of Perdew, Burke and Ernzerhof 1997.', 'keywords': {'GGA': 'PE', 'IVDW': '12'}}, 'PBEsol : modified PBE GGA': {'description': 'Modified PBE GGA according to Ref. [187].', 'keywords': {'GGA': 'PS'}}, 'PBEsol-D3BJ : PBEsol with D3(BJ) dispersion': {'description': 'Modified PBE GGA according to Ref. [187].', 'keywords': {'GGA': 'PS', 'IVDW': '12'}}, 'PW91 : Perdew-Wang 1991 GGA': {'description': "GGA according to Perdew and Wang, usually referred to as 'Perdew-Wang 1991 GGA'. This GGA is most accessibly described in Reference 26 and 27 of Ref. [182]. Note that the often mis-quoted reference [183] does not(!) describe the Perdew-Wang GGA but instead only the correlation part of the local-density approximation described above.", 'keywords': {'GGA': '91'}}, 'RPBE : the revised PBE functional of Hammer et al.': {'description': 'The RPBE modified PBE functional according to Ref. [93].', 'keywords': {'GGA': 'RP'}}, 'RPBE-D3BJ : RPBE with D3(BJ) dispersion': {'description': 'The RPBE modified PBE functional according to Ref. [93].', 'keywords': {'GGA': 'RP', 'IVDW': '12'}}, 'revPBE : the revised PBE functional of Zhang and Yang': {'description': 'The revPBE modified PBE GGA suggested in Ref. [247].', 'keywords': {'GGA': 'RE', 'IVDW': '12'}}, 'revPBE-D3BJ : revPBE with D3(BJ) dispersion': {'description': 'The revPBE modified PBE GGA suggested in Ref. [247].', 'keywords': {'GGA': 'RE', 'IVDW': '12'}}}}, 'Hybrid functionals and Hartree-Fock': {'parameterizations': {'B3LYP': {'description': "'B3LYP' hybrid functional as allegedly implemented in the VASP code (i.e., using the RPA version of the Vosko-Wilk-Nusair local-density approximation, see Refs. [233, 210] for details). Note that this is therefore not exactly the same B3LYP as originally described by Becke in 1993.", 'keywords': {'AEXX': '0.2', 'AGGAC': '0.81', 'AGGAX': '0.72', 'ALDAC': '0.19', 'GGA': 'B3', 'LHFCALC': '.TRUE.'}}, 'HF : Hartree-Fock': {'description': 'Hartree-Fock exchange, only', 'keywords': {'AEXX': '1.0', 'LHFCALC': '.TRUE.'}}, 'HSE03 : Heyd, Scuseria and Ernzerhof': {'description': 'Hybrid functional as used in Heyd, Scuseria and Ernzerhof [105, 106]. In this functional, 25 % of the exchange energy is split into a short-ranged, screened Hartree-Fock part, and a PBE GGA-like functional for the longrange part of exchange. The remaining 75 % exchange and full correlation energy are treated as in PBE. As clarified in Refs. [141, 106], two different screening parameters were used in the short-range exchange part and longrange exchange part of the original HSE functional, respectively. The ’hse03’ functional in FHI-aims reproduces these original values exactly.', 'keywords': {'AEXX': '0.25', 'AGGAC': '1.0', 'AGGAX': '0.75', 'ALDAC': '1.0', 'GGA': 'PE', 'HFSCREEN': '0.3', 'LHFCALC': '.TRUE.'}}, 'HSE06 : Heyd, Scuseria and Ernzerhof': {'description': 'Hybrid functional according to Heyd, Scuseria and Ernzerhof [105], following the naming convention suggested in Ref. [141]. In this case, the additional option value is needed, representing the single real, positive screening parameter omega as clarified in Ref. [141]. In this functional, 25 % of the exchange energy is split into a short-ranged, screened Hartree-Fock part, and a PBE GGA-like functional for the long-range part of exchange. The remaining 75 % exchange and full correlation energy are treated as in PBE.', 'keywords': {'AEXX': '0.25', 'AGGAC': '1.0', 'AGGAX': '0.75', 'ALDAC': '1.0', 'GGA': 'PE', 'HFSCREEN': '0.2', 'LHFCALC': '.TRUE.'}}, 'HSE06sol : Heyd, Scuseria and Ernzerhof': {'description': 'Hybrid functional according to Heyd, Scuseria and Ernzerhof [105], using PBEsol ', 'keywords': {'AEXX': '0.25', 'AGGAC': '1.0', 'AGGAX': '0.75', 'ALDAC': '1.0', 'GGA': 'PS', 'HFSCREEN': '0.2', 'LHFCALC': '.TRUE.'}}, 'PBE0': {'description': 'PBE0 hybrid functional [1], mixing 75 % GGA exchange with 25 % Hartree-Fock exchange', 'keywords': {'AEXX': '0.25', 'AGGAC': '1.0', 'AGGAX': '0.75', 'ALDAC': '1.0', 'GGA': 'PE', 'LHFCALC': '.TRUE.'}}, 'PBEsol0': {'description': 'Hybrid functional in analogy to PBE0 [1], except that the PBEsol [187] GGA functionals are used, mixing 75 % GGA exchange with 25 % Hartree-Fock exchange.', 'gui': 'recommended', 'keywords': {'AEXX': '0.25', 'AGGAC': '1.0', 'AGGAX': '0.75', 'ALDAC': '1.0', 'GGA': 'PS', 'LHFCALC': '.TRUE.'}}, 'RSHXLDA': {'description': 'Hybrid functional of Gerber, Ángyán, Marsman, and Kresse, Range separated hybrid density functional with long-range Hartree-Fock exchange applied to solids (2007)', 'keywords': {'AEXX': '1.0', 'AGGAC': '1.0', 'AGGAX': '0.0', 'ALDAC': '1.0', 'GGA': 'PZ', 'HFSCREEN': '0.75', 'LHFCALC': '.TRUE.', 'LRHFCALC': '.TRUE.'}}, 'RSHXPBE': {'description': 'Hybrid functional of Gerber and Ángyán, Hybrid Functional with Separated Range (2005)', 'keywords': {'AEXX': '1.0', 'AGGAC': '1.0', 'AGGAX': '0.0', 'ALDAC': '1.0', 'GGA': 'PE', 'HFSCREEN': '0.91', 'LHFCALC': '.TRUE.', 'LRHFCALC': '.TRUE.'}}}}, 'Hybrid meta generalized gradient approximation (Hybrid meta-GGA)': {'parameterizations': {'SCAN0': {'description': 'SCAN hybrid meta-GGA', 'keywords': {'AEXX': '0.25', 'AGGAC': '1.0', 'AGGAX': '0.75', 'ALDAC': '1.0', 'LHFCALC': '.TRUE.', 'METAGGA': 'SCAN'}}}}, 'Local-density approximation (LDA)': {'parameterizations': {'PW92 : Perdew-Wang': {'description': 'Homogeneous electron gas based on Ceperley and Alder as parameterized by Perdew and Wang 1992. Recommended LDA parameterization.', 'keywords': {'GGA': 'PW92'}}, 'PZ-LDA : Perdew-Zunger': {'description': 'Homogeneous electron gas based on Ceperley and Alder [42], as parameterized by Perdew and Zunger 1981 [184]', 'keywords': {'GGA': 'PZ'}}, 'VWN5 : Vosko-Wilk-Nusair': {'description': ('Slater exchange + LDA of Vosko, Wilk, and Nusair 1980. (VWN5)',), 'keywords': {'GGA': 'VW'}}}}, 'Meta-generalized gradient approximations (meta-GGA)': {'parameterizations': {'M06-l : Truhlar’s optimized meta-GGA': {'description': "Truhlar’s optimized meta-GGA of the 'M06' suite of functionals. [250]", 'keywords': {'METAGGA': 'M06L'}}, 'M06-l-D3BJ : M06-l with D3(BJ) dispersion': {'description': "Truhlar’s optimized meta-GGA of the 'M06' suite of functionals. [250]", 'keywords': {'IVDW': '12', 'METAGGA': 'M06L'}}, 'SCAN': {'description': "'Strongly Constrained and Appropriately Normed Semilocal Density Functional,' i.e., the SCAN meta-GGA functional by Sun, Ruzsinszky, and Perdew.[219] May possibly lead to numerical instabilities. rSCAN or rSCAN are more stable and should give similar results.", 'keywords': {'METAGGA': 'SCAN'}}, 'SCAN-D3BJ': {'description': 'SCAN with D3(BJ) dispersion', 'keywords': {'IVDW': '12', 'METAGGA': 'SCAN'}}, 'TPSS': {'description': 'Meta-GGA TPSS functional of Ref. [223]', 'keywords': {'METAGGA': 'TPSS'}}, 'TPSS-D3BJ': {'description': 'TPSS with D3(BJ) dispersion', 'keywords': {'IVDW': '12', 'METAGGA': 'TPSS'}}, 'r2SCAN': {'description': 'r2SCAN is a regularized version of SCAN that is  numerically more stable.', 'keywords': {'METAGGA': 'R2SCAN'}}, 'r2SCAN-D3BJ : r2SCAN with D3(BJ) dispersion': {'description': 'r2SCAN is a regularized version of SCAN that is numerically more stable, with D3(BJ) long-range dispersion correction parameters from ORCA.', 'keywords': {'IVDW': '12', 'METAGGA': 'R2SCAN', 'VDW_A1': '0.4948', 'VDW_A2': '5.7308', 'VDW_S8': '0.7898'}}, 'r2SCAN-D4BJ : r2SCAN plus D4(BJ) dispersion corrections': {'description': 'r2SCAN is a regularized version of SCAN that is  numerically more stable, with D4(BJ) long-range dispersion correction parameters from ORCA.', 'keywords': {'IVDW': '13', 'METAGGA': 'R2SCAN', 'VDW_A1': '0.51559235', 'VDW_A2': '5.77342911', 'VDW_S6': '1.0000', 'VDW_S8': '0.60187490'}}, 'rSCAN': {'description': 'rSCAN is a regularized version of SCAN that is numerically more stable.', 'keywords': {'METAGGA': 'RSCAN'}}, 'revTPSS': {'description': ('Meta-GGA revTPSS functional of Ref. [185, 186]',), 'keywords': {'METAGGA': 'RTPSS'}}}}}}}, 'keywords': {'ALGO': {'default': 'Fast', 'description': 'The electronic minimization algorithm and/or type of GW calculation'}, 'EDIFF': {'default': '1.0E-6', 'description': 'Convergence criterion for electronic self-consistency'}, 'EDIFFG': {'default': '-1.0E-06', 'description': 'Convergence criterion for optimizations: positive for energy (eV) or negative for forces [(eV/Å)^2]'}, 'EFERMI': {'default': 'MIDGAP', 'description': 'Defines how the Fermi energy is calculated, or gives the value'}, 'ENCUT': {'default': 500, 'description': 'The energy cutoff of the plane-wave basis (eV)'}, 'IBRION': {'default': '1', 'description': 'How to change the structure during the calculation'}, 'ISEARCH': {'default': 1, 'description': '0: use legacy linesearch; 1 for new.'}, 'ISIF': {'default': 3, 'description': 'Determines whether the stress is calculated, and degrees of freedom.'}, 'ISMEAR': {'default': 0, 'description': 'How to set the occupancy of each orbital'}, 'ISPIN': {'default': 1, 'description': 'Controls whether the calculation is spin-polarized (2) or not (1)'}, 'ISTART': {'default': 0, 'description': 'Whether to read WAVECAR: 0: from scratch; 1: constant E basis; 2: constant basis.'}, 'IVDW': {'default': 12, 'description': 'Specifies a vdW dispersion term of the atom-pairwise or many-body type.'}, 'KPAR': {'default': 1, 'description': 'Number of compute cores that work on each k-point'}, 'LASPH': {'default': '.True.', 'description': 'Include non-spherical contributions from the gradient corrections inside the PAW spheres'}, 'LCHARG': {'default': '.False.', 'description': 'Write the charge density to the CHGCAR and CHG text files'}, 'LCHARGH5': {'default': '.True.', 'description': 'Write the charge density to the vaspwave.h5 HDF5 file'}, 'LH5': {'default': '.True.', 'description': 'Use HDF5 files instead of text files'}, 'LNONCOLLINEAR': {'default': '.False.', 'description': 'Allow noncollinear magnetism'}, 'LORBIT': {'default': 11, 'description': 'Project the Kohn-Sham orbitals onto local quantum number (lm) to get on-site charge and magnetic moments'}, 'LPLANE': {'default': '.True.', 'description': 'Use plane-wise data distribution in real space'}, 'LREAL': {'default': 'Auto', 'description': 'Evaluate the projection operators in real space (Auto) or reciprocal (.False.)'}, 'LSCALAPACK': {'default': '.True.', 'description': 'Use ScaLAPACK for orthonormalization and subspace rotations.'}, 'LSCALU': {'default': '.False.', 'description': 'Use ScaLAPACK for the subspace rotations.'}, 'LWAVE': {'default': '.False.', 'description': 'Write the wavefunction to the WAVECAR text file'}, 'LWAVEH5': {'default': '.True.', 'description': 'Write the wavefunction to the vaspwave.h5 HDF5 file'}, 'MAGMOM': {'default': '1', 'description': 'The initial magnetic moments on the atoms'}, 'NCORE': {'default': 2, 'description': 'Number of compute cores that work on each orbital'}, 'NELM': {'default': 60, 'description': 'The maximum number of electronic self-consistency steps'}, 'NELMDL': {'default': -5, 'description': 'The number of non-consistent electronic steps at beginning. negative for first ionic step, positive for all steps.'}, 'NELMIN': {'default': '2', 'description': 'The minimum number of electronic self-consistency steps. 2 is the default, 4-8 recommended for minimization and MD'}, 'NFREE': {'default': 7, 'description': 'Number of remembered steps for RMM-DIIS, or displacements in frozen phonon calculations.'}, 'NSIM': {'default': 4, 'description': 'Number of bands to optimize simultaneously when using RMM-DIIS orthe blocked Davidson algorithm (NSIM)'}, 'NSW': {'default': 100, 'description': 'The maximum number of ionic steps'}, 'POTIM': {'default': 0, 'description': 'Scaling factor for the step in optimization; timestep for MD'}, 'PREC': {'default': 'normal', 'description': 'The precision of the FFT grids the real-space projections.'}, 'SIGMA': {'default': 0.1, 'description': 'The width of the electron smearing (eV)'}, 'SMASS': {'description': 'Damping or quenching factor in damped MD; ensemble in normal MD (-3=NVE, -1=T annealing, >=0 Nosé mass)'}, 'VDW_A1': {'default': '', 'description': 'VDW_A1 sets the damping function parameter a1 for the DFT-D3 (BJ damping function) and DFT-D4 methods.'}, 'VDW_A2': {'default': '', 'description': 'VDW_A2 defines the damping function parameter a2 for the DFT-D3 (BJ damping function) and DFT-D4 methods.'}, 'VDW_S6': {'default': '', 'description': 'VDW_S6 sets the global scaling factor S6 for the DFT-D2, DFT-D4, DFT-ulg, and Tkatchenko-Scheffler methods.'}, 'VDW_S8': {'default': 1.0, 'description': 'VDW_S8 sets the damping function parameter S8 in the DFT-D3 and DFT-D4 methods.'}}, 'results': {'DfE0': {'description': 'energy of formation', 'dimensionality': 'scalar', 'format': '.2f', 'property': 'DfE0#VASP#{model}', 'type': 'float', 'units': 'kJ/mol'}, 'Ecoh': {'description': 'cohesive energy', 'dimensionality': 'scalar', 'format': '.2f', 'property': 'Ecoh#VASP#{model}', 'type': 'float', 'units': 'eV'}, 'Ecoh/atom': {'description': 'cohesive energy per atom', 'dimensionality': 'scalar', 'format': '.2f', 'type': 'float', 'units': 'eV'}, 'Gelec': {'description': 'The electronic free energy of the system', 'dimensionality': 'scalar', 'format': '.3f', 'property': 'Gelec#VASP#{model}', 'type': 'float', 'units': 'eV'}, 'P': {'description': 'pressure', 'dimensionality': 'scalar', 'format': '.3f', 'property': 'pressure#VASP#{model}', 'type': 'float', 'units': 'GPa'}, 'RMS atom displacement': {'calculation': ['optimization'], 'description': 'the RMS displacement of the atoms', 'dimensionality': 'scalar', 'format': '.3f', 'type': 'float', 'units': 'Å'}, 'RMS atom force': {'description': 'the RMS force on the atoms', 'dimensionality': 'scalar', 'format': '.3f', 'property': 'RMS atom force#VASP#{model}', 'type': 'float', 'units': 'eV/Å'}, 'SEAMM elapsed time': {'description': 'total elapsed time for VASP', 'dimensionality': 'scalar', 'format': '.1f', 'type': 'float', 'units': 's'}, 'SEAMM np': {'description': 'number of processors for VASP', 'dimensionality': 'scalar', 'format': 'd', 'type': 'integer'}, 'V': {'description': 'volume', 'dimensionality': 'scalar', 'format': '.1f', 'property': 'volume#VASP#{model}', 'type': 'float', 'units': 'Å^3'}, 'a': {'description': "cell parameter 'a'", 'dimensionality': 'scalar', 'format': '.3f', 'property': 'cell_a#VASP#{model}', 'type': 'float', 'units': 'Å'}, 'alpha': {'description': "cell parameter 'alpha'", 'dimensionality': 'scalar', 'format': '.1f', 'property': 'cell_alpha#VASP#{model}', 'type': 'float', 'units': 'degree'}, 'b': {'description': "cell parameter 'b'", 'dimensionality': 'scalar', 'format': '.3f', 'property': 'cell_b#VASP#{model}', 'type': 'float', 'units': 'Å'}, 'beta': {'description': "cell parameter 'beta'", 'dimensionality': 'scalar', 'format': '.1f', 'property': 'cell_beta#VASP#{model}', 'type': 'float', 'units': 'degree'}, 'c': {'description': "cell parameter 'c'", 'dimensionality': 'scalar', 'format': '.3f', 'property': 'cell_c#VASP#{model}', 'type': 'float', 'units': 'Å'}, 'code name': {'description': 'The name of the code (VASP)', 'dimensionality': 'scalar', 'format': '', 'type': 'string', 'units': ''}, 'code version': {'description': 'The version of the VASP code', 'dimensionality': 'scalar', 'format': '', 'type': 'string', 'units': ''}, 'delta V': {'description': 'change in volume', 'dimensionality': 'scalar', 'format': '.1f', 'type': 'float', 'units': 'Å^3'}, 'delta a': {'description': "change in 'a'", 'dimensionality': 'scalar', 'type': 'float', 'units': 'Å'}, 'delta alpha': {'description': "change in 'alpha'", 'dimensionality': 'scalar', 'type': 'float', 'units': 'degree'}, 'delta b': {'description': "change in 'b'", 'dimensionality': 'scalar', 'type': 'float', 'units': 'Å'}, 'delta beta': {'description': "change in 'beta'", 'dimensionality': 'scalar', 'type': 'float', 'units': 'degree'}, 'delta c': {'description': "change in 'c'", 'dimensionality': 'scalar', 'type': 'float', 'units': 'Å'}, 'delta density': {'description': 'change in density', 'dimensionality': 'scalar', 'format': '.4f', 'type': 'float', 'units': 'g/mL'}, 'delta density %': {'description': '% change in density', 'dimensionality': 'scalar', 'format': '.2f', 'type': 'float', 'units': ''}, 'delta gamma': {'description': "change in 'gamma'", 'dimensionality': 'scalar', 'type': 'float', 'units': 'degree'}, 'density': {'description': 'density', 'dimensionality': 'scalar', 'format': '.4f', 'property': 'density#VASP#{model}', 'type': 'float', 'units': 'g/mL'}, 'energy': {'description': 'total energy including all terms', 'dimensionality': 'scalar', 'format': '.3f', 'property': 'E#VASP#{model}', 'type': 'float', 'units': 'eV'}, 'energy/atom': {'description': 'total energy per atom', 'dimensionality': 'scalar', 'format': '.3f', 'type': 'float', 'units': 'eV'}, 'gamma': {'description': "cell parameter 'gamma'", 'dimensionality': 'scalar', 'format': '.1f', 'property': 'cell_gamma#VASP#{model}', 'type': 'float', 'units': 'degree'}, 'gradients': {'description': 'the Cartesian gradients', 'dimensionality': ['natoms', 3], 'format': '.3f', 'property': 'gradients#VASP#{model}', 'type': 'float', 'units': 'eV/Å'}, 'maximum atom displacement': {'calculation': ['optimization'], 'description': 'the maximum displacement of an atom', 'dimensionality': 'scalar', 'format': '.3f', 'type': 'float', 'units': 'Å'}, 'maximum atom force': {'description': 'the maximum force on an atom', 'dimensionality': 'scalar', 'format': '.3f', 'property': 'maximum atom force#VASP#{model}', 'type': 'float', 'units': 'eV/Å'}, 'maximum atom force threshold': {'calculation': ['optimization'], 'description': 'the maximum force threshold for an atom', 'dimensionality': 'scalar', 'format': '.3f', 'type': 'float', 'units': 'eV/Å'}, 'model': {'description': 'The model string', 'dimensionality': 'scalar', 'format': 's', 'type': 'string', 'units': ''}, 'stress': {'description': 'stress', 'dimensionality': '[6]', 'format': '.3f', 'property': 'stress#VASP#{model}', 'type': 'float', 'units': 'GPa'}}}#

Description of the computational models for VASP.

Hamiltonians, approximations, and basis set or parameterizations, only if appropriate for this code. For example:

metadata["computational models"] = {
    "Hartree-Fock": {
        "models": {
            "PM7": {
                "parameterizations": {
                    "PM7": {
                        "elements": "1-60,62-83",
                        "periodic": True,
                        "reactions": True,
                        "optimization": True,
                        "code": "mopac",
                    },
                    "PM7-TS": {
                        "elements": "1-60,62-83",
                        "periodic": True,
                        "reactions": True,
                        "optimization": False,
                        "code": "mopac",
                    },
                },
            },
        },
    },
}

vasp_step.optimization module#

Non-graphical part of the Optimization step in a VASP flowchart

class vasp_step.optimization.Optimization(flowchart=None, title='Optimization', extension=None, logger=<Logger vasp_step.optimization (WARNING)>)[source]#

Bases: Energy

The non-graphical part of a Optimization step in a flowchart.

parser#

The parser object.

Type:

configargparse.ArgParser

options#

It contains a two item tuple containing the populated namespace and the list of remaining argument strings.

Type:

tuple

subflowchart#

A SEAMM Flowchart object that represents a subflowchart, if needed.

Type:

seamm.Flowchart

parameters#

The control parameters for Optimization.

Type:

OptimizationParameters

See also

TkOptimization, Optimization, OptimizationParameters

analyze(P=None, configuration=None, starting_configuration=None, indent='', text='', table=None, results={}, **kwargs)[source]#

Do any analysis of the output from this step.

Also print important results to the local step.out file using “printer”.

Parameters:

indent (str) – An extra indentation for the output

description_text(P=None)[source]#

Create the text description of what this step will do. The dictionary of control values is passed in as P so that the code can test values, etc.

Parameters:

P (dict) – An optional dictionary of the current values of the control parameters.

Returns:

A description of the current step.

Return type:

str

get_keywords(P=None)[source]#

Get the keywords and values for the calculation.

property git_revision#

The git version of this module.

property header#

A printable header for this section of output

property version#

The semantic version of this module.

vasp_step.optimization_parameters module#

Control parameters for the Optimization step in a SEAMM flowchart

class vasp_step.optimization_parameters.OptimizationParameters(defaults={}, data=None)[source]#

Bases: EnergyParameters

The control parameters for Optimization.

You need to replace the “time” entry in dictionary below these comments with the definitions of parameters to control this step. The keys are parameters for the current plugin,the values are dictionaries as outlined below.

Examples

parameters = {
    "time": {
        "default": 100.0,
        "kind": "float",
        "default_units": "ps",
        "enumeration": tuple(),
        "format_string": ".1f",
        "description": "Simulation time:",
        "help_text": ("The time to simulate in the dynamics run.")
    },
}
parameters{str: {str: str}}

A dictionary containing the parameters for the current step. Each key of the dictionary is a dictionary that contains the the following keys:

parameters[“default”] :

The default value of the parameter, used to reset it.

parameters[“kind”]enum()

Specifies the kind of a variable. One of “integer”, “float”, “string”, “boolean”, or “enum”

While the “kind” of a variable might be a numeric value, it may still have enumerated custom values meaningful to the user. For instance, if the parameter is a convergence criterion for an optimizer, custom values like “normal”, “precise”, etc, might be adequate. In addition, any parameter can be set to a variable of expression, indicated by having “$” as the first character in the field. For example, $OPTIMIZER_CONV.

parameters[“default_units”]str

The default units, used for resetting the value.

parameters[“enumeration”]: tuple

A tuple of enumerated values.

parameters[“format_string”]: str

A format string for “pretty” output.

parameters[“description”]: str

A short string used as a prompt in the GUI.

parameters[“help_text”]: str

A longer string to display as help for the user.

See also

Optimization, TkOptimization, Optimization, OptimizationStep

parameters = {'convergence cutoff': {'default': 0.01, 'default_units': 'eV/Å', 'description': 'Gradient convergence:', 'enumeration': None, 'format_string': '', 'help_text': 'The convergence of the maximum gradient on an atom (eV/Å).', 'kind': 'float'}, 'damped MD approach': {'default': 'damping', 'default_units': '', 'description': 'How to damp the velocity:', 'enumeration': ('damping', 'quenching'), 'format_string': '', 'help_text': 'How the velocity is damped during damped MD', 'kind': 'enumeration'}, 'force scale factor': {'default': 1, 'default_units': '', 'description': 'Force scale factor:', 'enumeration': None, 'format_string': '.1f', 'help_text': 'The factor to scale the force in damped MD (SMASS).', 'kind': 'float'}, 'iteration history length': {'default': 'default', 'default_units': '', 'description': 'Length of iteration history used:', 'enumeration': ('default',), 'format_string': '', 'help_text': 'How many iterations are remembered when using RMM-DIIS (NFREE).', 'kind': 'integer'}, 'number of steps': {'default': 100, 'default_units': '', 'description': 'Maximum number of steps:', 'enumeration': None, 'format_string': '', 'help_text': 'The maximum number of optimization steps (NSW).', 'kind': 'integer'}, 'optimization method': {'default': 'RMM-DIIS', 'default_units': '', 'description': 'Optimization algorithm:', 'enumeration': ('RMM-DIIS', 'Conjugate Gradients', 'Damped MD'), 'format_string': '', 'help_text': 'The optimization algorithm to employ (IBRION).', 'kind': 'string'}, 'optimize atom positions': {'default': 'yes', 'default_units': '', 'description': 'Optimize the atomic positions:', 'enumeration': ('yes', 'no'), 'format_string': '', 'help_text': 'Whether to allow the atom positions (in fractional coordinates) tochange during the optimization.', 'kind': 'boolean'}, 'optimize cell shape': {'default': 'no', 'default_units': '', 'description': 'Optimize the cell shape:', 'enumeration': ('yes', 'no'), 'format_string': '', 'help_text': 'Whether to allow the shape of the cell tochange during the optimization.', 'kind': 'boolean'}, 'optimize cell volume': {'default': 'no', 'default_units': '', 'description': 'Optimize the cell volume:', 'enumeration': ('yes', 'no'), 'format_string': '', 'help_text': 'Whether to allow the volume of the cell tochange during the optimization.', 'kind': 'boolean'}, 'step scale factor': {'default': 0.5, 'default_units': '', 'description': 'Factor to scale optimization steps:', 'enumeration': None, 'format_string': '.1f', 'help_text': 'The step length predicted by the optimizer is scaled by this factor (POTIM).', 'kind': 'float'}, 'velocity quenching factor': {'default': 1.0, 'default_units': '', 'description': 'Quenching factor:', 'enumeration': None, 'format_string': '.1f', 'help_text': 'The factor to quench the velocity in damped MD (POTIM).', 'kind': 'float'}, 'velocity scale factor': {'default': 0.8, 'default_units': '', 'description': 'Damping factor:', 'enumeration': None, 'format_string': '.1f', 'help_text': 'The factor for scaling the previous velocity (0->1)', 'kind': 'float'}}#

vasp_step.optimization_step module#

class vasp_step.optimization_step.OptimizationStep(flowchart=None, gui=None)[source]#

Bases: object

Helper class needed for the stevedore integration.

This must provide a description() method that returns a dict containing a description of this node, and create_node() and create_tk_node() methods for creating the graphical and non-graphical nodes.

The dictionary for the description is the class variable just below these comments. The felds are as follows:

my_description{str, str}

A human-readable description of this step. It can be several lines long, and needs to be clear to non-expert users. It contains the following keys: description, group, name.

my_description[“description”]tuple

A description of the Optimization step. It must be clear to non-experts.

my_description[“group”]str

Which group in the menus to put this step. If the group does not exist it will be created. Common groups are “Building”, “Control”, “Custom”, “Data”, and “Simulations”.

my_description[“name”]str

The name of this step, to be displayed in the menus.

create_node(flowchart=None, **kwargs)[source]#

Create and return the new node object.

Parameters:
  • flowchart (seamm.Node) – A non-graphical SEAMM node

  • **kwargs (keyword arguments) – Various keyword arguments such as title, namespace or extension representing the title displayed in the flowchart, the namespace for the plugins of a subflowchart and the extension, respectively.

Return type:

Optimization

create_tk_node(canvas=None, **kwargs)[source]#

Create and return the graphical Tk node object.

Parameters:
  • canvas (tk.Canvas) – The Tk Canvas widget

  • **kwargs (keyword arguments) – Various keyword arguments such as tk_flowchart, node, x, y, w, h representing a graphical flowchart object, a non-graphical node for a step, and dimensions of the graphical node.

Return type:

TkOptimization

description()[source]#

Return a description of what this step does.

Returns:

description

Return type:

dict(str, str)

my_description = {'description': 'An interface for Optimization', 'group': 'Calculations', 'name': 'Optimization'}#

vasp_step.tk_energy module#

The graphical part of a Energy step

class vasp_step.tk_energy.TkEnergy(tk_flowchart=None, node=None, canvas=None, x=None, y=None, w=200, h=50)[source]#

Bases: TkNode

The graphical part of a Energy step in a flowchart.

tk_flowchart#

The flowchart that we belong to.

Type:

TkFlowchart = None

node#

The corresponding node of the non-graphical flowchart

Type:

Node = None

canvas#

The Tk Canvas to draw on

Type:

tkCanvas = None

dialog#

The Pmw dialog object

Type:

Dialog

x#

The x-coordinate of the center of the picture of the node

Type:

int = None

y#

The y-coordinate of the center of the picture of the node

Type:

int = None

w#

The width in pixels of the picture of the node

Type:

int = 200

h#

The height in pixels of the picture of the node

Type:

int = 50

self[widget]#

A dictionary of tk widgets built using the information contained in Energy_parameters.py

Type:

dict

See also

Energy, TkEnergy, EnergyParameters

create_dialog(title='Energy')[source]#

Create the dialog. A set of widgets will be chosen by default based on what is specified in the Energy_parameters module.

Parameters:

None

Return type:

None

create_potentials_tab()[source]#

Add a tab with a periodic table for setting the potentials.

find_available_potentials()[source]#
fit_dialog()[source]#

Make the dialog fill the window.

get_Emax()[source]#

Get the maximum ENMAX for the currently slsected potentials

get_current_potentials()[source]#

Get the currently selected potentials from the widgets.

handle_dialog(result)[source]#

Handle closing the dialog.

Parameters:

result (str) – The button that was pressed to close the dialog, or None if the x dialog close button was pressed.

reset_calculation_frame(widget=None)[source]#

Layout the widgets for the calculation control.

Note

The single point energy has nothing that changes, so do nothing.

reset_dialog(widget=None, row=0)[source]#

Layout the widgets in the dialog.

The widgets are chosen by default from the information in Energy_parameter.

This function simply lays them out row by row with aligned labels. You may wish a more complicated layout that is controlled by values of some of the control parameters. If so, edit or override this method

Parameters:

widget (Tk Widget = None)

Return type:

None

reset_kspace_frame(widget=None)[source]#

Layout the widgets in the dialog.

The widgets are chosen by default from the information in Energy_parameter.

This function simply lays them out row by row with aligned labels. You may wish a more complicated layout that is controlled by values of some of the control parameters. If so, edit or override this method

Parameters:

widget (Tk Widget = None)

Return type:

None

reset_model_frame(widget=None)[source]#

Layout the widgets in the dialog.

The widgets are chosen by default from the information in Energy_parameter.

This function simply lays them out row by row with aligned labels. You may wish a more complicated layout that is controlled by values of some of the control parameters. If so, edit or override this method

Parameters:

widget (Tk Widget = None)

Return type:

None

reset_performance_frame(widget=None)[source]#

Layout the widgets in the performance frame.

Parameters:

widget (Tk Widget = None)

Return type:

None

right_click(event)[source]#

Handles the right click event on the node.

Parameters:

event (Tk Event)

Return type:

None

See also

TkEnergy.edit

update_Emax(event=None)[source]#

Update the value of Emax in the display.

vasp_step.tk_optimization module#

The graphical part of a Optimization step

class vasp_step.tk_optimization.TkOptimization(tk_flowchart=None, node=None, canvas=None, x=None, y=None, w=200, h=50)[source]#

Bases: TkEnergy

The graphical part of a Optimization step in a flowchart.

tk_flowchart#

The flowchart that we belong to.

Type:

TkFlowchart = None

node#

The corresponding node of the non-graphical flowchart

Type:

Node = None

canvas#

The Tk Canvas to draw on

Type:

tkCanvas = None

dialog#

The Pmw dialog object

Type:

Dialog

x#

The x-coordinate of the center of the picture of the node

Type:

int = None

y#

The y-coordinate of the center of the picture of the node

Type:

int = None

w#

The width in pixels of the picture of the node

Type:

int = 200

h#

The height in pixels of the picture of the node

Type:

int = 50

self[widget]#

A dictionary of tk widgets built using the information contained in Optimization_parameters.py

Type:

dict

See also

Optimization, TkOptimization, OptimizationParameters

create_dialog(title='Optimization')[source]#

Create the dialog. A set of widgets will be chosen by default based on what is specified in the Optimization_parameters module.

Parameters:

None

Return type:

None

See also

TkOptimization.reset_dialog

reset_calculation_frame(widget=None)[source]#

Layout the widgets in the calculation frame.

Parameters:

widget (Tk Widget = None)

Return type:

None

right_click(event)[source]#

Handles the right click event on the node.

Parameters:

event (Tk Event)

Return type:

None

See also

TkOptimization.edit

vasp_step.tk_vasp module#

The graphical part of a VASP step

class vasp_step.tk_vasp.TkVASP(tk_flowchart=None, node=None, namespace='org.molssi.seamm.vasp.tk', canvas=None, x=None, y=None, w=200, h=50)[source]#

Bases: TkNode

The graphical part of a VASP step in a flowchart.

tk_flowchart#

The flowchart that we belong to.

Type:

TkFlowchart = None

node#

The corresponding node of the non-graphical flowchart

Type:

Node = None

canvas#

The Tk Canvas to draw on

Type:

tkCanvas = None

dialog#

The Pmw dialog object

Type:

Dialog

x#

The x-coordinate of the center of the picture of the node

Type:

int = None

y#

The y-coordinate of the center of the picture of the node

Type:

int = None

w#

The width in pixels of the picture of the node

Type:

int = 200

h#

The height in pixels of the picture of the node

Type:

int = 50

self[widget]#

A dictionary of tk widgets built using the information contained in VASP_parameters.py

Type:

dict

See also

VASP, TkVASP, VASPParameters

create_dialog()[source]#

Create the dialog. A set of widgets will be chosen by default based on what is specified in the VASP_parameters module.

Parameters:

None

Return type:

None

See also

TkVASP.reset_dialog

right_click(event)[source]#

Handles the right click event on the node.

Parameters:

event (Tk Event)

Return type:

None

See also

TkVASP.edit

vasp_step.vasp module#

Non-graphical part of the VASP step in a SEAMM flowchart

class vasp_step.vasp.VASP(flowchart=None, title='VASP', namespace='org.molssi.seamm.vasp', extension=None, logger=<Logger vasp_step.vasp (WARNING)>)[source]#

Bases: Node

The non-graphical part of a VASP step in a flowchart.

parser#

The parser object.

Type:

configargparse.ArgParser

options#

It contains a two item tuple containing the populated namespace and the list of remaining argument strings.

Type:

tuple

subflowchart#

A SEAMM Flowchart object that represents a subflowchart, if needed.

Type:

seamm.Flowchart

parameters#

The control parameters for VASP.

Type:

VASPParameters

See also

TkVASP, VASP, VASPParameters

analyze(indent='', **kwargs)[source]#

Do any analysis of the output from this step.

Also print important results to the local step.out file using “printer”.

Parameters:

indent (str) – An extra indentation for the output

catalog_potentials()[source]#

Create a catalog of the PAW potentials.

create_parser()[source]#

Setup the command-line / config file parser

description_text(P=None)[source]#

Create the text description of what this step will do. The dictionary of control values is passed in as P so that the code can test values, etc.

Parameters:

P (dict) – An optional dictionary of the current values of the control parameters.

Returns:

A description of the current step.

Return type:

str

property git_revision#

The git version of this module.

parse_potcar(path)[source]#

Read a POTCAR file and extract pertinent information.

Parameters:

path (pathlib.Path) – The path to the POTCAR file

Returns:

results – A dictionary of the data from the POTCAR file

Return type:

dict(str, str)

property potential_metadata#

The metadata data for the potentials.

run()[source]#

Run a VASP step.

Parameters:

None

Returns:

The next node object in the flowchart.

Return type:

seamm.Node

set_id(node_id)[source]#

Set the id for node to a given tuple

property version#

The semantic version of this module.

vasp_step.vasp_step module#

class vasp_step.vasp_step.VASPStep(flowchart=None, gui=None)[source]#

Bases: object

Helper class needed for the stevedore integration.

This must provide a description() method that returns a dict containing a description of this node, and create_node() and create_tk_node() methods for creating the graphical and non-graphical nodes.

The dictionary for the description is the class variable just below these comments. The felds are as follows:

my_description{str, str}

A human-readable description of this step. It can be several lines long, and needs to be clear to non-expert users. It contains the following keys: description, group, name.

my_description[“description”]tuple

A description of the VASP step. It must be clear to non-experts.

my_description[“group”]str

Which group in the menus to put this step. If the group does not exist it will be created. Common groups are “Building”, “Control”, “Custom”, “Data”, and “Simulations”.

my_description[“name”]str

The name of this step, to be displayed in the menus.

create_node(flowchart=None, **kwargs)[source]#

Create and return the new node object.

Parameters:
  • flowchart (seamm.Node) – A non-graphical SEAMM node

  • **kwargs (keyword arguments) – Various keyword arguments such as title, namespace or extension representing the title displayed in the flowchart, the namespace for the plugins of a subflowchart and the extension, respectively.

Return type:

VASP

create_tk_node(canvas=None, **kwargs)[source]#

Create and return the graphical Tk node object.

Parameters:
  • canvas (tk.Canvas) – The Tk Canvas widget

  • **kwargs (keyword arguments) – Various keyword arguments such as tk_flowchart, node, x, y, w, h representing a graphical flowchart object, a non-graphical node for a step, and dimensions of the graphical node.

Return type:

TkVASP

description()[source]#

Return a description of what this step does.

Returns:

description

Return type:

dict(str, str)

my_description = {'description': 'An interface for VASP', 'group': 'Simulations', 'name': 'VASP'}#

Module contents#

vasp_step A SEAMM plug-in for VASP