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:
NodeThe 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:
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
- 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_POTCAR(P=None)[source]#
Get the potential input (POTCAR) for this calculation.
The elements are ordered by descending atomic number.
- property git_revision#
The git version of this module.
- property header#
A printable header for this section of output
- 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_parameters module#
Control parameters for the Energy substep in a VASP step
- class vasp_step.energy_parameters.EnergyParameters(defaults={}, data=None)[source]#
Bases:
ParametersThe 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:
objectHelper 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:
- 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:
- 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:
EnergyThe 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:
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
- 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:
EnergyParametersThe 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:
objectHelper 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:
- 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:
- 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:
TkNodeThe 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
See also
- 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
See also
- 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
See also
- 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
See also
- reset_performance_frame(widget=None)[source]#
Layout the widgets in the performance frame.
- Parameters:
widget (Tk Widget = None)
- Return type:
None
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:
TkEnergyThe 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
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:
TkNodeThe 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
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:
NodeThe 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
- 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
- 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:
objectHelper 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:
- 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:
- 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