thermochemistry_step package#
Submodules#
thermochemistry_step.cbh_approach module#
The isodesmic (CBH) approach with ATcT references.
The enthalpy of formation of the target molecule is obtained from an error-cancelling reaction of the connectivity-based hierarchy (CBH), whose other species have reference enthalpies of formation in the Active Thermochemical Tables (ATcT):
ΔfH(target, T) = Σ_j ν_j ΔfH_j(ATcT, T) - Δ_rH(T)
with Δ_rH(T) = Σ_i ν_i H_i(T) computed with the subflowchart’s engine for
every species (the target has ν = -1). The reaction, the ATcT lookups, the
covariance-propagated 95 % uncertainty and the combination are done here; the
science lives in seamm_thermochemistry (atct and cbh).
The energies H_i(T) come from one of three places:
“finite-difference harmonic”: the subflowchart is run on each species, first to optimize it (ASE BFGS) and then for the finite-difference Hessian; the rigid-rotor harmonic-oscillator thermochemistry of the Harmonic approach gives H(0 K) = E + ZPE and H(298.15 K);
“finite-difference harmonic” with “thermal corrections” = none: the subflowchart’s energy already is the enthalpy of formation at 298.15 K, as for MOPAC’s NDDO methods, so only Δ_rH(298.15 K) is formed;
“existing results (run nothing)”: the species’ energies are read from properties already stored on the systems named
CBH:<SMILES>(and the target), e.g. by an earlier parallel Loop, so the expensive part can be run in parallel and at two levels of theory.
Results are reported at 0 K and 298.15 K and paired with the ATcT values at the same temperature, never converted between them. ATcT’s plain gas-phase entries are the lowest conformer at 0 K and a conformer average at 298.15 K, so the 0 K comparison is the cleaner one for a single-conformer calculation.
- thermochemistry_step.cbh_approach.CANONICAL_MAX_BF_DEFAULT = 546#
The default largest canonical CCSD(T)-F12 of the ‘high’ preset (96 GB nodes)
- class thermochemistry_step.cbh_approach.CBHApproach[source]#
Bases:
objectMixin for Thermochemistry: the CBH approach.
- apply_preset(_P)[source]#
The parameters with the preset’s settings in place: the rungs, harmonic thermal corrections, computed species and the energy level. ‘custom’ changes nothing. The geometry level is the preset’s model chemistry (see
preset_model_chemistry()).
- composite_model_chemistry()[source]#
For a composite recipe as the flowchart’s model chemistry, the wrapper of its geometry level (kept in
self._composite); else None.
- preset_levels(preset)[source]#
The geometry and energy levels of a preset: its recipe’s, when the Composite step is installed, else the spellings in
PRESETS.
- preset_model_chemistry(_P)[source]#
The
_model_chemistrywrapper of the preset’s geometry level, or None for ‘custom’. A preset’s recipe (or a composite recipe as the flowchart’s model chemistry) is kept inself._composite: its geometry level is the step’s model, its energy level and ZPE factor follow.
- thermochemistry_step.cbh_approach.COMPOSITE_PREFIX = 'SEAMM:CMP@'#
The owner and type of SEAMM’s composite recipes as model chemistries.
- thermochemistry_step.cbh_approach.HIGH_ENERGY = 'CCSD(T)-F12/cc-pVTZ-F12 (canonical, or DLPNO for a large saturated closed-shell target)'#
The ‘high’ preset’s energy level, chosen when the target is known
- thermochemistry_step.cbh_approach.PRESETS = {'default': {'energy': 'ORCA:DFT@REVDSD-PBEP86-D4_2021/def2-TZVPP', 'geometry': 'ORCA:CMP@R2SCAN-3C', 'recipe': 'SEAMM:CMP@revDSD-r2SCAN-3c-HO'}, 'high': {'energy': 'CCSD(T)-F12/cc-pVTZ-F12 (canonical, or DLPNO for a large saturated closed-shell target)', 'geometry': 'ORCA:CMP@R2SCAN-3C', 'recipe': None}, 'quick': {'energy': None, 'geometry': 'ORCA:CMP@R2SCAN-3C', 'recipe': 'SEAMM:CMP@r2SCAN-3c-HO'}}#
the composite recipe (composite_step), and its geometry/frequency level and energy level (None: the geometry level). With composite_step installed the levels come from the recipe; these spellings are the fallback without it, and a test keeps them equal to the recipes’.
- Type:
The presets of the CBH approach (thermo’s defaults, adopted 2026-11-08)
- thermochemistry_step.cbh_approach.TARGET_MATCH_RMSD = 0.3#
The largest heavy-atom RMSD (Å) between a target’s starting structure and a stored geometry for the stored one to be taken as this target’s (the same conformer optimized: typically 0.01-0.1 Å from another level’s structure)
- thermochemistry_step.cbh_approach.cbh_multiplicity(smiles)[source]#
The spin multiplicity of a CBH species: its ground state, from the tables of singlets and triplets that a SMILES does not show (SiCl2 and BH are singlets, O2 and OCCO triplets), else its unpaired electrons + 1.
- thermochemistry_step.cbh_approach.is_composite(level)[source]#
Whether a model chemistry is one of SEAMM’s composite recipes.
- thermochemistry_step.cbh_approach.kabsch_rmsd(a, b)[source]#
The RMSD of two sets of points after the best proper rotation and translation (no reflection).
- thermochemistry_step.cbh_approach.match_structure(symbols, start, stored_symbols, stored, max_rmsd=0.3)[source]#
Whether a stored geometry is the given structure optimized: (ok, heavy-atom RMSD in Å, reason when not).
Strict on purpose: the same atoms in the same order, the same bonds (perceived from each geometry, atom by atom), and the heavy atoms within max_rmsd of each other after the best rotation and translation, with no reflection, so a different conformer, diastereomer or arrangement of the enantiomer is never taken.
- thermochemistry_step.cbh_approach.recipe_levels(level, data_path=None)[source]#
The levels of a composite recipe
SEAMM:CMP@<recipe>(composite_step).- Returns:
recipe(the level spec),name,version,fingerprint,geometry(the geometry/frequency level),energy(the energy level: None when E0 is the geometry level’s energy, the component’s level when it is one other energy, or the composite itself,recipe, when it combines several),components({name: level}),zpe((factor, source)) andobject(the composite_step Recipe). The step runs ordinary levels, so the species’ cached properties, the fragment store’s rows and the ZPE table are those of the component levels; the recipe’s name never keys anything.- Return type:
dict
thermochemistry_step.hessian module#
The energy and Hessian of a structure from the flowchart’s Model Chemistry.
A thin mixin over seamm_exec.hessian.HessianDriver, which holds the
route choice (warm MDI engine or tasks; analytic or finite differences), the
engine’s environment and cores, and the optimization over the engine. The
driver moved to seamm_exec on 2026-11-05 so that the Thermochemistry, Normal
Mode Sampling and Vibrational Analysis steps share one copy.
- class thermochemistry_step.hessian.ModelChemistryHessian[source]#
Bases:
objectMixin: the energy and Cartesian Hessian from the Model Chemistry.
The route is the step’s
_hessian_route(“automatic”, “warm engine over MDI” or “separate tasks”); the engine’s settings fingerprints from the last calculation are in_fingerprints.- energy_and_hessian(configuration, delta_bohr=0.01)[source]#
The energy (kJ/mol), the Cartesian Hessian (hartree/bohr², (3N, 3N)) and how it was obtained: “analytic”, “finite differences over MDI” or “finite differences as tasks”.
- model_chemistry()[source]#
The
_model_chemistrywrapper: a preset’s own (see the CBH approach’s presets), else the one published upstream, or None.
- model_chemistry_energy(configuration)[source]#
The energy (kJ/mol) of the configuration with the Model Chemistry.
thermochemistry_step.high_level module#
The energy level of the ‘high’ preset: canonical CCSD(T)-F12 or DLPNO-CCSD(T)-F12, chosen per target by thermo’s rules (science, 2026-10-30, reaffirmed 2026-11-08 and 2026-11-11):
Canonical CCSD(T)-F12D/RI cc-pVTZ-F12 up to 546 basis functions (fits in 96 GB); above that it needs 200-330 GB.
Above 546: DLPNO-CCSD(T)-F12D with TightPNO and TCutPNO 1e-8, only for closed-shell, saturated C/H/O(/N) molecules, where CH2F/CHF2/CF3 on a non-fluorinated carbon is fine but two bonded fluorinated carbons are not (every DLPNO-F12 validation, jobs 5516, 5536, 5560, was closed-shell).
pi systems (alkenes, dienes, aromatics, carbonyl/ester/carbonate) and perfluoro segments stay canonical at any size: above 546 they get no ‘high’ result.
DLPNO and canonical never mix within one reaction: the fragments follow the target’s level (the step uses one energy level for the whole reaction).
Anything else above 546 basis functions gets no ‘high’ result, with the reason.
- thermochemistry_step.high_level.CANONICAL = 'ORCA:QC@CCSD(T)-F12D_RI/cc-pVTZ-F12'#
The levels (orca_step’s F12 model chemistries)
- thermochemistry_step.high_level.CANONICAL_MAX_BF = 546#
The largest canonical CCSD(T)-F12 calculation (basis functions), rule 1
- thermochemistry_step.high_level.DLPNO_ELEMENTS = {1, 6, 7, 8, 9}#
The elements DLPNO-F12 was validated for (rule 2)
- thermochemistry_step.high_level.NBF_CC_PVTZ_F12 = {1: 18, 2: 19, 3: 60, 4: 60, 5: 60, 6: 60, 7: 60, 8: 60, 9: 60, 10: 60, 11: 96, 12: 93, 13: 90, 14: 90, 15: 90, 16: 90, 17: 90, 18: 90}#
ORCA 6.1.1’s own cc-pVTZ-F12 basis functions per element (spherical), measured from ORCA’s output (“Number of basis functions”) for each atom, 2026-11-11: heptane is 7 x 60 + 16 x 18 = 708, as in job 5474. The Basis Set Exchange’s version is smaller (53 for C), so ORCA’s counts are used. ORCA has cc-pVTZ-F12 for H-Ar only; other elements give no ‘high’ result.
- thermochemistry_step.high_level.basis_functions(atomic_numbers)[source]#
ORCA’s cc-pVTZ-F12 basis functions for the atoms, or (None, element) when an element’s count is not known.
- thermochemistry_step.high_level.dlpno_problem(smiles, multiplicity)[source]#
Why DLPNO-F12 is not validated for this molecule, or ‘’ if it is.
- thermochemistry_step.high_level.high_level(smiles, multiplicity, atomic_numbers, max_bf=546)[source]#
The ‘high’ energy level for a target, by the rules above.
- Parameters:
smiles (str) – The target.
multiplicity (int)
atomic_numbers ([int]) – All the atoms, hydrogens included.
max_bf (int) – The largest canonical CCSD(T)-F12 calculation, basis functions (546 for 96 GB nodes; more with more memory).
- Returns:
The level (model chemistry), or None when there is no ‘high’ result for this target; and the reason, for the output.
- Return type:
(str or None, str)
thermochemistry_step.metadata module#
This file contains metadata describing the results from Thermochemistry
- thermochemistry_step.metadata.metadata = {'results': {'ATcT DfH 0K': {'description': "ATcT's own enthalpy of formation of the target at 0 K", 'dimensionality': 'scalar', 'format': '.2f', 'type': 'float', 'units': 'kJ/mol'}, 'ATcT DfH 298K': {'description': "ATcT's own enthalpy of formation of the target at 298.15 K", 'dimensionality': 'scalar', 'format': '.2f', 'type': 'float', 'units': 'kJ/mol'}, 'ATcT DfH uncertainty': {'description': "ATcT's 95 % uncertainty for the target at 298.15 K", 'dimensionality': 'scalar', 'format': '.2f', 'type': 'float', 'units': 'kJ/mol'}, 'ATcT version': {'description': 'The ATcT Thermochemical Network version used', 'dimensionality': 'scalar', 'format': '', 'type': 'string'}, 'CBH - library': {'description': "The CBH enthalpy of formation (highest rung, 298.15 K, else 0 K) minus the target's library value", 'dimensionality': 'scalar', 'format': '.2f', 'property': 'CBH - library#Thermochemistry#{model}', 'type': 'float', 'units': 'kJ/mol'}, 'CBH changed fragments': {'description': 'The fragments whose structure (bonds) changed while they were optimized; empty if none', 'dimensionality': 'scalar', 'format': '', 'type': 'string'}, 'CBH composite recipe': {'description': 'The composite method (SEAMM:CMP@<recipe>) whose geometry and energy levels were used, if any', 'dimensionality': 'scalar', 'format': '', 'type': 'string'}, 'CBH composite recipe fingerprint': {'description': 'The fingerprint of the composite recipe (sha256)', 'dimensionality': 'scalar', 'format': '', 'type': 'string'}, 'CBH composite recipe version': {'description': 'The version of the composite recipe', 'dimensionality': 'scalar', 'format': '', 'type': 'integer'}, 'CBH energy level': {'description': "The model chemistry of the species' energies", 'dimensionality': 'scalar', 'format': '', 'type': 'string'}, 'CBH geometry level': {'description': 'The model chemistry of the geometries, frequencies, ZPE and thermal corrections', 'dimensionality': 'scalar', 'format': '', 'type': 'string'}, 'CBH geometry level preset': {'description': "The preset whose result the geometry-level one is (e.g. 'quick'), or empty", 'dimensionality': 'scalar', 'format': '', 'type': 'string'}, 'CBH high canonical limit': {'description': "The largest canonical CCSD(T)-F12 the 'high' preset allowed (cc-pVTZ-F12 basis functions)", 'dimensionality': 'scalar', 'format': '', 'type': 'integer'}, 'CBH high level': {'description': "How the 'high' preset chose the energy level for this target (canonical or DLPNO CCSD(T)-F12, or why there is no 'high' result)", 'dimensionality': 'scalar', 'format': '', 'type': 'string'}, 'CBH reaction': {'description': 'The CBH reaction used', 'dimensionality': 'scalar', 'format': '', 'property': 'CBH reaction#Thermochemistry#{model}', 'type': 'string'}, 'CBH references': {'description': 'Where the reference values of the reaction used came from: ATcT-only, laddered, mixed (the reference library too), mixed: several sources (for one element), computed references or user references', 'dimensionality': 'scalar', 'format': '', 'property': 'CBH references#Thermochemistry#{model}', 'type': 'string'}, 'CBH results': {'description': 'The results for every usable rung', 'dimensionality': 'dictionary', 'format': '', 'type': 'json'}, 'CBH rung': {'description': 'The CBH rung the enthalpy of formation comes from', 'dimensionality': 'scalar', 'format': '', 'property': 'CBH rung#Thermochemistry#{model}', 'type': 'integer'}, 'CBH rung spread': {'description': 'The range of the enthalpy of formation at 298.15 K over the CBH rungs from CBH-1 up, an indicator of its uncertainty', 'dimensionality': 'scalar', 'format': '.2f', 'property': 'CBH rung spread#Thermochemistry#{model}', 'type': 'float', 'units': 'kJ/mol'}, 'CBH rung spread (geometry level)': {'description': 'The range of the geometry-level enthalpy of formation at 298.15 K over the CBH rungs from CBH-1 up', 'dimensionality': 'scalar', 'format': '.2f', 'type': 'float', 'units': 'kJ/mol'}, 'CBH unconverged species': {'description': 'The species (target or fragments) whose optimization did not converge, even after continuing it; empty if none', 'dimensionality': 'scalar', 'format': '', 'type': 'string'}, 'DfH 0K': {'description': 'The enthalpy of formation at 0 K (CBH with ATcT references)', 'dimensionality': 'scalar', 'format': '.2f', 'property': 'DfH(0 K)#Thermochemistry#{model}', 'type': 'float', 'units': 'kJ/mol'}, 'DfH 0K (geometry level)': {'description': "The enthalpy of formation at 0 K from the same reactions with the energies at the geometry level (e.g. the 'quick' result of a default run); only when the energies are at another level", 'dimensionality': 'scalar', 'format': '.2f', 'type': 'float', 'units': 'kJ/mol'}, 'DfH 298K': {'description': 'The enthalpy of formation at 298.15 K (CBH with ATcT references)', 'dimensionality': 'scalar', 'format': '.2f', 'property': 'DfH(298.15 K)#Thermochemistry#{model}', 'type': 'float', 'units': 'kJ/mol'}, 'DfH 298K (geometry level)': {'description': "The enthalpy of formation at 298.15 K from the same reactions with the energies at the geometry level (e.g. the 'quick' result of a default run); only when the energies are at another level", 'dimensionality': 'scalar', 'format': '.2f', 'type': 'float', 'units': 'kJ/mol'}, 'DfH uncertainty': {'description': 'The 95 % uncertainty of the ATcT reference part of the enthalpy of formation', 'dimensionality': 'scalar', 'format': '.2f', 'property': 'DfH uncertainty (95%)#Thermochemistry#{model}', 'type': 'float', 'units': 'kJ/mol'}, 'DfH uncertainty (geometry level)': {'description': 'The 95 % uncertainty of the reference part of the geometry-level enthalpy of formation (the same references as the main result)', 'dimensionality': 'scalar', 'format': '.2f', 'type': 'float', 'units': 'kJ/mol'}, 'DfH uncertainty method': {'description': 'How the uncertainty was obtained: from the ATcT covariances, or in quadrature without them, plus any ladder method term', 'dimensionality': 'scalar', 'format': '', 'property': 'DfH uncertainty method#Thermochemistry#{model}', 'type': 'string'}, 'E thermal': {'description': 'U(T) - E, the thermal correction to the electronic energy, including the ZPE', 'dimensionality': '[nPs*[nTs]]', 'format': '.6f', 'type': 'float', 'units': 'kJ/mol'}, 'G': {'description': 'The free energy of the system', 'dimensionality': '[nPs*[nTs]]', 'format': '.6f', 'property': 'G#Thermochemistry#{model}', 'type': 'float', 'units': 'kJ/mol'}, 'G thermal': {'description': 'G(T) - E, the free energy correction to the electronic energy, including the ZPE', 'dimensionality': '[nPs*[nTs]]', 'format': '.6f', 'type': 'float', 'units': 'kJ/mol'}, 'H': {'description': 'The enthalpy of the system', 'dimensionality': '[nPs*[nTs]]', 'format': '.6f', 'property': 'H#Thermochemistry#{model}', 'type': 'float', 'units': 'kJ/mol'}, 'H 0': {'description': 'the electronic energy plus ZPE', 'dimensionality': 'scalar', 'format': '.6f', 'property': 'H(0 K)#Thermochemistry#{model}', 'type': 'float', 'units': 'kJ/mol'}, 'H thermal': {'description': 'H(T) - E, the enthalpy correction to the electronic energy, including the ZPE', 'dimensionality': '[nPs*[nTs]]', 'format': '.6f', 'type': 'float', 'units': 'kJ/mol'}, 'N saddle modes': {'description': 'Number of saddle point modes', 'dimensionality': 'scalar', 'format': '', 'property': 'number of saddle modes#Thermochemistry#{model}', 'type': 'integer'}, 'P': {'description': 'Pressure', 'dimensionality': '[nPs]', 'format': '.2f', 'property': 'P#Thermochemistry#{model}', 'type': 'float', 'units': 'atm'}, 'S': {'description': 'The entropy of the system', 'dimensionality': '[nPs*[nTs]]', 'format': '.6f', 'property': 'S#Thermochemistry#{model}', 'type': 'float', 'units': 'J/mol/K'}, 'T': {'description': 'Temperature', 'dimensionality': '[nTs]', 'format': '.2f', 'property': 'T#Thermochemistry#{model}', 'type': 'float', 'units': 'K'}, 'U': {'description': 'the internal energy', 'dimensionality': '[nPs*[nTs]]', 'format': '.6f', 'property': 'U#Thermochemistry#{model}', 'type': 'float', 'units': 'kJ/mol'}, 'ZPE': {'description': 'the zero point energy', 'dimensionality': 'scalar', 'format': '.6f', 'property': 'ZPE#Thermochemistry#{model}', 'type': 'float', 'units': 'kJ/mol'}, 'ZPE scale factor': {'description': 'The factor the harmonic ZPEs were scaled by', 'dimensionality': 'scalar', 'format': '.4f', 'type': 'float'}, 'ZPE scale factor source': {'description': 'Where the ZPE scale factor comes from, and any caution', 'dimensionality': 'scalar', 'format': '', 'type': 'string'}, 'ZPE uncorrected': {'description': 'the zero point energy from the uncorrected frequencies', 'dimensionality': 'scalar', 'format': '.6f', 'property': 'ZPE uncorrected#Thermochemistry#{model}', 'type': 'float', 'units': 'kJ/mol'}, 'corrected vibrational frequencies': {'description': 'Vibrational frequencies after the frequency correction', 'dimensionality': '[nvibs]', 'format': '.1f', 'property': 'corrected vibrational frequencies#Thermochemistry#{model}', 'type': 'float', 'units': 'cm^-1'}, 'frequency correction': {'description': 'the correction of the frequencies (id, version and range)', 'dimensionality': 'scalar', 'format': 's', 'property': 'frequency correction#Thermochemistry#{model}', 'type': 'string', 'units': ''}, 'frequency correction status': {'description': 'whether the frequency correction applied to every mode', 'dimensionality': 'scalar', 'format': 's', 'property': 'frequency correction status#Thermochemistry#{model}', 'type': 'string', 'units': ''}, 'library DfH 0K': {'description': "The target's own value at 0 K in the reference library", 'dimensionality': 'scalar', 'format': '.2f', 'property': 'library DfH 0K#Thermochemistry#{model}', 'type': 'float', 'units': 'kJ/mol'}, 'library DfH 298K': {'description': "The target's own value at 298.15 K in the reference library", 'dimensionality': 'scalar', 'format': '.2f', 'property': 'library DfH 298K#Thermochemistry#{model}', 'type': 'float', 'units': 'kJ/mol'}, 'library DfH uncertainty': {'description': "The 95 % uncertainty of the target's library value, with its source's offset", 'dimensionality': 'scalar', 'format': '.2f', 'property': 'library DfH uncertainty#Thermochemistry#{model}', 'type': 'float', 'units': 'kJ/mol'}, 'library check': {'description': "Whether the CBH value agrees with the target's library value within twice the library's uncertainty", 'dimensionality': 'scalar', 'format': '', 'property': 'library check#Thermochemistry#{model}', 'type': 'string'}, 'library source': {'description': "The source of the target's library value", 'dimensionality': 'scalar', 'format': '', 'property': 'library source#Thermochemistry#{model}', 'type': 'string'}, 'references': {'description': 'The versions of ATcT and the reference libraries, and the library values used (id, source, citation, conversion), for reproducing and auditing the result', 'dimensionality': 'dictionary', 'format': '', 'type': 'json'}, 'symmetry number': {'description': 'Symmetry number', 'dimensionality': 'scalar', 'format': '', 'type': 'integer'}, 'total_energy': {'description': 'The total energy', 'dimensionality': 'scalar', 'property': 'total energy#Thermochemistry#{model}', 'type': 'float', 'units': 'E_h'}, 'transition state frequency': {'description': 'Transition state curvature', 'dimensionality': 'scalar', 'format': '.1f', 'property': 'transition state frequency#Thermochemistry#{model}', 'type': 'float', 'units': 'cm^-1'}, 'vibrational frequencies': {'description': 'Vibrational frequencies', 'dimensionality': '[nvibs]', 'format': '.1f', 'property': 'vibrational frequencies#Thermochemistry#{model}', 'type': 'float', 'units': 'cm^-1'}}}#
Description of the computational models for Thermochemistry.
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", }, }, }, }, }, }
thermochemistry_step.resonance module#
Matching a target to ATcT across resonance forms.
ATcT and the structure’s SMILES may write one species as different resonance
forms: SiO is [Si]=O in ATcT but [O+]#[Si-] from a structure, and OBrO is
[O]Br[O] against [O][Br+][O-]. The canonical SMILES differ, so the
ordinary lookup misses. The key here ignores what differs between resonance
forms – bond orders, formal charges and radical centres – and keeps the atoms,
their connections (hydrogens included) and the total charge, so isomers such as
HCN and HNC still differ. A match is used only when exactly one ATcT species has
the key.
- thermochemistry_step.resonance.lookup_target(tables, smiles, charge, multiplicity)[source]#
The ATcT entry of the target, also when ATcT writes another resonance form.
- Returns:
The entry, and the ATcT SMILES it was matched through when that is not the target’s own (None for a direct match or no match).
- Return type:
(ATcTEntry or None, str or None)
thermochemistry_step.symmetry module#
The rotational symmetry number of a molecule, perceived from its geometry.
The symmetry number σ is the number of proper rotations (including the identity) in the molecule’s point group: the number of indistinguishable orientations reached by rotation alone. It enters the rotational partition function as 1/σ, i.e. the entropy as -R ln σ. This module finds σ by testing candidate rotation axes directly against the structure, which needs no point-group assignment and no external library.
Candidate axes are the principal axes of inertia, the vectors from the centre of mass to each atom, the midpoints and cross products of pairs of like atoms, and the normals of planes through triples of like atoms. For every candidate axis and every order n from 2 up to the largest number of atoms of one element, the rotation by 2π/n is applied and accepted if it maps every atom onto an atom of the same element within the tolerance.
- thermochemistry_step.symmetry.rotational_symmetry_number(symbols, xyz, masses=None, tol=0.1, max_order=12)[source]#
The rotational symmetry number of a molecule.
- Parameters:
symbols ([str]) – The element symbol of each atom.
xyz (array-like, shape (n_atoms, 3)) – The Cartesian coordinates, Å.
masses (array-like, optional) – The atomic masses, for the centre of mass. Equal masses are used if omitted (the centre of mass then coincides with the centroid; for the symmetry this only matters through the candidate axes).
tol (float) – The distance, in Å, within which a rotated atom must land on a like atom.
max_order (int) – The largest rotation order tested.
- Returns:
sigma (int) – The symmetry number.
axes ({int: int}) – The number of distinct proper rotation axes of each order found, e.g.
{6: 1, 2: 7}for benzene (the C6 axis also carries C3 and C2, which are not counted separately),{3: 4, 2: 3}for methane.
thermochemistry_step.thermochemistry module#
Non-graphical part of the Thermochemistry step in a SEAMM flowchart
- class thermochemistry_step.thermochemistry.Thermochemistry(flowchart=None, title='Thermochemistry', namespace='org.molssi.seamm', extension=None, logger=<Logger thermochemistry_step.thermochemistry (WARNING)>)[source]#
Bases:
Node,ASE_mixin,ModelChemistryHessian,CBHApproachThe non-graphical part of a Thermochemistry 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 Thermochemistry.
See also
TkThermochemistry,Thermochemistry,ThermochemistryParameters- analyze(_P, 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
- ase_calculator(calculator, *args, **kwargs)[source]#
Run the subflowchart for one geometry, keeping the energy of the undisplaced structure for the absolute thermodynamic functions.
- description_text(P=None, short=False, natoms=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
- frequency_correction(_P)[source]#
The correction of the frequencies for this step’s frequency level.
- Returns:
The correction, the range to apply (“full” or “high-frequency only”), and a note to print when there is none.
- Return type:
(FrequencyCorrection or None, str, str)
- property git_revision#
The git version of this module.
- harmonic_thermochemistry(_P, Ts, Tunits, Ps, Punits, print_frequencies=True)[source]#
The harmonic thermochemistry of the working configuration from
self._vibrationsandself._E0, printed and returned as the data dictionary of results.- Parameters:
_P (dict) – The parameters.
Ts – The temperatures and pressures and their units.
Tunits – The temperatures and pressures and their units.
Ps – The temperatures and pressures and their units.
Punits – The temperatures and pressures and their units.
print_frequencies (bool) – Whether to list the frequencies.
- model_chemistry_vibrations(configuration, step_size)[source]#
The energy (eV) and an ASE VibrationsData from the Model Chemistry.
- Parameters:
configuration (molsystem._Configuration)
step_size (float) – The finite-difference step, Å, if the Hessian is not analytic.
- Return type:
(float, ase.vibrations.VibrationsData, str)
- run()[source]#
Run a Thermochemistry step.
- Parameters:
None
- Returns:
The next node object in the flowchart.
- Return type:
seamm.Node
- property version#
The semantic version of this module.
thermochemistry_step.thermochemistry_parameters module#
Control parameters for the Thermochemistry step in a SEAMM flowchart
- class thermochemistry_step.thermochemistry_parameters.ThermochemistryParameters(defaults={}, data=None)[source]#
Bases:
ParametersThe control parameters for Thermochemistry.
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
Thermochemistry,TkThermochemistry,Thermochemistry,ThermochemistryParameters,ThermochemistryStep- parameters = {'# imaginary modes': {'default': 'perceive', 'default_units': '', 'description': 'Number of imaginary modes:', 'enumeration': ('perceive', 'transition state'), 'format_string': '', 'help_text': 'The number of imaginary modes to ignore.', 'kind': 'integer'}, 'ATcT directory': {'default': 'default', 'default_units': '', 'description': 'ATcT directory:', 'enumeration': ('default',), 'format_string': '', 'help_text': "Where the ATcT versions are kept: the installation's Parameters/thermochemistry/ATcT by default.", 'kind': 'string'}, 'ATcT uncertainty threshold': {'default': 0.5, 'default_units': 'kJ/mol', 'description': 'ATcT uncertainty threshold:', 'enumeration': (), 'format_string': '.2f', 'help_text': 'Use the ATcT value when its 95 % uncertainty is at or below this.', 'kind': 'float'}, 'ATcT version': {'default': 'latest', 'default_units': '', 'description': 'ATcT version:', 'enumeration': ('latest',), 'format_string': '', 'help_text': 'The version of the Thermochemical Network to use.', 'kind': 'string'}, 'P': {'default': '1.0', 'default_units': 'bar', 'description': 'Pressures:', 'enumeration': (), 'format_string': '', 'help_text': 'The pressures for the thermodynamic functions.', 'kind': 'string'}, 'T': {'default': '200, 250, 298.15, 300:1000:50', 'default_units': 'K', 'description': 'Temperatures:', 'enumeration': (), 'format_string': '', 'help_text': 'The temperatures for the thermodynamic functions.', 'kind': 'string'}, 'ZPE property': {'default': 'ZPE#*#*', 'default_units': '', 'description': 'ZPE property:', 'enumeration': (), 'format_string': '', 'help_text': 'The stored property holding the zero-point energy.', 'kind': 'string'}, 'ZPE scale factor': {'default': 'from the table', 'default_units': '', 'description': 'ZPE scale factor:', 'enumeration': ('from the table', '1.0'), 'format_string': '', 'help_text': 'The factor the harmonic zero-point energies are scaled by: from the table of factors for the geometry level (r2SCAN-3c 0.9899, PBE0/def2-TZVP 0.975, B2PLYP-D3/cc-pVTZ 0.9863; 1 with a warning for a level not in it), or a number.', 'kind': 'string'}, 'approach': {'default': 'Harmonic approximation', 'default_units': '', 'description': 'Approach:', 'enumeration': ('Harmonic approximation', 'Isodesmic (CBH) with ATcT references'), 'format_string': '', 'help_text': 'The approach or method for determining the thermochemistry.', 'kind': 'enum'}, 'cbh calculation': {'default': 'enthalpy of formation', 'default_units': '', 'description': 'Calculate:', 'enumeration': ('enthalpy of formation', 'the species only (for the fragment store)'), 'format_string': '', 'help_text': "The enthalpy of formation of the target from the CBH reactions, or only the target itself as a CBH species: its geometry, frequencies and energies, computed and stored exactly as for a fragment, ready for the fragment store's harvest. The latter needs no ATcT entries and runs no reactions, so any species can be added to the store.", 'kind': 'enum'}, 'cbh energies': {'default': 'finite-difference harmonic', 'default_units': '', 'description': 'Species energies:', 'enumeration': ('finite-difference harmonic', 'existing results (run nothing)'), 'format_string': '', 'help_text': 'Compute every species with the engine (optimization, then the Hessian for the harmonic thermochemistry), or read energies already stored as properties on the systems named CBH:<SMILES>.', 'kind': 'enum'}, 'cbh rungs': {'default': 'all usable', 'default_units': '', 'description': 'CBH rungs:', 'enumeration': ('all usable', '0', '1', '2', '3', '4', '1, 2', '2, 3'), 'format_string': '', 'help_text': 'The rungs of the connectivity-based hierarchy to use: every rung whose reference species are all in ATcT, or a list.', 'kind': 'string'}, 'compare with ATcT': {'default': 'yes', 'default_units': '', 'description': 'Compare with ATcT:', 'enumeration': ('yes', 'no'), 'format_string': '', 'help_text': 'Report the difference if the target itself is in ATcT.', 'kind': 'boolean'}, 'conformer embeddings': {'default': 20, 'default_units': '', 'description': 'Number of embeddings:', 'enumeration': (), 'format_string': '', 'help_text': 'How many RDKit embeddings to rank by MMFF94.', 'kind': 'integer'}, 'covariances': {'default': 'fetch if needed', 'default_units': '', 'description': 'ATcT covariances:', 'enumeration': ('fetch if needed', 'cached only'), 'format_string': '', 'help_text': "Fetch the covariance blocks that are not cached from atct.anl.gov and cache them, or use only those already cached. Without a block (or when fetching fails, e.g. with no network) the reference uncertainty ignores the correlations (quadrature), and the 'uncertainty method' says so.", 'kind': 'enum'}, 'energy model chemistry': {'default': 'the geometry level', 'default_units': '', 'description': 'Energies at:', 'enumeration': ('the geometry level',), 'format_string': '', 'help_text': "The level of theory of the species' energies: the geometry level (the Model Chemistry, which also gives the geometries, frequencies, ZPE and thermal corrections), or another model chemistry, e.g. ORCA:DFT@REVDSD-PBEP86-D4_2021/def2-TZVPP, whose single points on those geometries replace the energies. Each species' enthalpy is then E(energy level) + [H - E](geometry level).", 'kind': 'string'}, 'energy property': {'default': 'total energy#*#*', 'default_units': '', 'description': 'Energy property:', 'enumeration': (), 'format_string': '', 'help_text': "The stored property holding each species' energy (a glob pattern matching exactly one property).", 'kind': 'string'}, 'engine': {'default': 'Model Chemistry', 'default_units': '', 'description': 'Energies and gradients from:', 'enumeration': ('Model Chemistry', 'subflowchart'), 'format_string': '', 'help_text': "The flowchart's Model Chemistry, run as a warm engine over MDI (the analytic Hessian when the program has one, else finite differences of the gradients), or this step's subflowchart, run once per displaced structure.", 'kind': 'enum'}, 'enthalpy property': {'default': 'H(298.15 K)#*#*', 'default_units': '', 'description': 'Enthalpy property:', 'enumeration': (), 'format_string': '', 'help_text': "The stored property holding the absolute enthalpy at 298.15 K (its level of theory may differ from the energy's).", 'kind': 'string'}, 'fragment convergence': {'default': 0.005, 'default_units': 'eV/Å', 'description': 'Optimization convergence:', 'enumeration': (), 'format_string': '.3f', 'help_text': 'The maximum force for a converged optimization.', 'kind': 'float'}, 'fragment max steps': {'default': 200, 'default_units': '', 'description': 'Maximum optimization steps:', 'enumeration': (), 'format_string': '', 'help_text': 'The maximum number of optimization steps per species.', 'kind': 'integer'}, 'fragment store': {'default': 'use and add what is computed', 'default_units': '', 'description': 'Fragment store:', 'enumeration': ('use and add what is computed', 'use only', 'ignore'), 'format_string': '', 'help_text': 'Use the species already in the fragment-energy store at this model chemistry instead of computing them, and add the species this step computes, so that later iterations and jobs reuse them; or only use the store; or ignore it. The species are added only when the store is on a local disk of the machine running the job; otherwise the job is harvested into the store when it returns.', 'kind': 'enum'}, 'fragment store file': {'default': 'default', 'default_units': '', 'description': 'Fragment store file:', 'enumeration': ('default',), 'format_string': '', 'help_text': 'The store: fragments.db next to the ATcT cache by default.', 'kind': 'string'}, 'frequency correction': {'default': 'from the table', 'default_units': '', 'description': 'Frequency correction:', 'enumeration': ('from the table', 'none'), 'format_string': '', 'help_text': 'A correction applied to each harmonic frequency before the ZPE and the thermal functions, from the table of corrections for the frequency level (PM7: Rozanska et al. 2014, eq 1), or none. A level with a correction gets no ZPE scale factor.', 'kind': 'enum'}, 'frequency correction range': {'default': 'full', 'default_units': '', 'description': 'Correct:', 'enumeration': ('full', 'high-frequency only'), 'format_string': '', 'help_text': 'All of the correction as published, or only the branches the source calls necessary (for PM7, the X-H stretches above 2500 cm^-1).', 'kind': 'enum'}, 'hessian route': {'default': 'automatic', 'default_units': '', 'description': 'Energies and Hessian via:', 'enumeration': ('automatic', 'warm engine over MDI', 'separate tasks'), 'format_string': '', 'help_text': 'How the Model Chemistry is driven: automatically (the engine when the program has an analytic Hessian or no task route, else finite differences as separate tasks where the job runs them); the warm MDI engine, which also allows the optimization of the structure; or separate tasks. The CBH approach uses the engine by default, since it optimizes each species.', 'kind': 'enum'}, 'include CBH-3': {'default': 'no', 'default_units': '', 'description': 'Include CBH-3:', 'enumeration': ('yes', 'no'), 'format_string': '', 'help_text': 'With a preset, also compute CBH-3 where it is available. It is no more accurate than CBH-2, but it adds to the spread between the rungs, which indicates the uncertainty.', 'kind': 'boolean'}, 'initial conformer': {'default': 'lowest of the embeddings (MMFF)', 'default_units': '', 'description': 'Fragments start from:', 'enumeration': ('lowest of the embeddings (MMFF)', 'single embedding'), 'format_string': '', 'help_text': 'The starting structure of each fragment built from its SMILES: the lowest MMFF94 conformer of several RDKit embeddings (all-anti chains, as CBH-ANL starts from the lowest rotamer), or a single embedding.', 'kind': 'enum'}, 'ladder': {'default': '', 'default_units': '', 'description': 'Ladder:', 'enumeration': (), 'format_string': '', 'help_text': 'The name of the laddered reference set.', 'kind': 'string'}, 'low-level energy property': {'default': '', 'default_units': '', 'description': "Energy at the enthalpy's level:", 'enumeration': (), 'format_string': '', 'help_text': 'If the enthalpy comes from a different level of theory than the energy, the energy at that level, so that H - E can be formed. Blank: the same as the energy property.', 'kind': 'string'}, 'maximum basis functions for canonical F12': {'default': 546, 'default_units': '', 'description': 'Largest canonical F12 (basis functions):', 'enumeration': (), 'format_string': '', 'help_text': "For the 'high' preset: the largest target, in cc-pVTZ-F12 basis functions, computed with canonical CCSD(T)-F12. 546 fits in 96 GB; with 200 GB nodes about 700 is possible. Larger closed-shell saturated targets use DLPNO-CCSD(T)-F12, and others get no 'high' result.", 'kind': 'integer'}, 'on error': {'default': 'keep all subdirectories', 'default_units': '', 'description': 'On error:', 'enumeration': ('keep last subdirectory', 'keep all subdirectories', 'delete all subdirectories'), 'format_string': '', 'help_text': 'Which subdirectories to keep if there is an error.', 'kind': 'enum'}, 'on success': {'default': 'keep last subdirectory', 'default_units': '', 'description': 'On success:', 'enumeration': ('keep last subdirectory', 'keep all subdirectories', 'delete all subdirectories'), 'format_string': '', 'help_text': 'Which subdirectories to keep.', 'kind': 'enum'}, 'optimize fragments': {'default': 'yes', 'default_units': '', 'description': 'Optimize the structures:', 'enumeration': ('yes', 'no'), 'format_string': '', 'help_text': 'Whether to optimize each species (ASE BFGS over the engine) before the Hessian.', 'kind': 'boolean'}, 'preset': {'default': 'default', 'default_units': '', 'description': 'Preset:', 'enumeration': ('quick', 'default', 'high', 'custom'), 'format_string': '', 'help_text': "The levels of theory of the isodesmic (CBH) approach. The presets optimize every species and compute its frequencies with r2SCAN-3c (ZPE x 0.9899) and use the highest CBH rung available up to CBH-2: 'quick' takes the energies from r2SCAN-3c too, 'default' from revDSD-PBEP86-D4/def2-TZVPP single points (about 2 kJ/mol RMS against ATcT at CBH-2), 'high' from CCSD(T)-F12/cc-pVTZ-F12: canonical up to 546 basis functions, DLPNO (TightPNO, TCutPNO 1e-8) for larger closed-shell saturated molecules, and otherwise no 'high' result (the default level is used, with the reason). 'custom' uses the flowchart's Model Chemistry and the settings below.", 'kind': 'enum'}, 'print frequencies': {'default': 'all', 'default_units': '', 'description': 'Maximum frequencies to print:', 'enumeration': ('all', 'none'), 'format_string': '', 'help_text': 'Whether to print the frequencies of vibration.', 'kind': 'integer'}, 'protect': {'default': 'default', 'default_units': '', 'description': 'Keep whole:', 'enumeration': ('default', 'none', 'aromatic rings', 'aromatic + small rings', 'all rings'), 'format_string': '', 'help_text': 'Groups kept as single units when building the reactions. The default keeps aromatic ring systems, 3- and 4-membered rings and charge-separated or hypervalent groups (nitro, sulfonyl, ...).', 'kind': 'string'}, 'reference values': {'default': 'ATcT', 'default_units': '', 'description': 'Reference values:', 'enumeration': ('ATcT', 'laddered', 'ATcT below the threshold, else laddered'), 'format_string': '', 'help_text': "Where the reference species' enthalpies of formation come from: ATcT for every species; a laddered reference set (CBH-ANL: ATcT only for the CBH-0 species, the rest from their own lower-rung reactions at a high level, built with seamm-thermochemistry-ladder); or ATcT where its 95 % uncertainty is below the threshold and the ladder otherwise.", 'kind': 'enum'}, 'results': {'default': {}, 'default_units': None, 'description': 'results', 'enumeration': (), 'format_string': '', 'help_text': 'The results to save to variables or in tables.', 'kind': 'dictionary'}, 'reuse stored target': {'default': 'if the structure matches', 'default_units': '', 'description': 'Reuse a stored target:', 'enumeration': ('if the structure matches', 'never'), 'format_string': '', 'help_text': "Take the target's geometry, ZPE and enthalpy from the fragment store instead of computing it, when the store has it at this geometry level and its stored structure is the one this target starts from: the same atoms in the same order, the same bonds, and the heavy atoms within 0.3 Å RMSD after superposition (no mirroring), so another conformer or stereoisomer is never taken. Or always compute the target.", 'kind': 'enum'}, 'spin multiplicity': {'default': 'from system', 'default_units': '', 'description': 'Spin multiplicity:', 'enumeration': ('from system', 'singlet', 'doublet', 'triplet', 'quartet', 'quintet', 'sextet', 'septet', 'octet'), 'format_string': '', 'help_text': 'The spin multiplicity of the system as word or integer.', 'kind': 'string'}, 'step size': {'default': 0.01, 'default_units': 'Å', 'description': 'Step size:', 'enumeration': (), 'format_string': '.g', 'help_text': 'The size of the step for finite differences (not used when the program provides the analytic Hessian).', 'kind': 'float'}, 'supplementary references': {'default': 'compilations and computed', 'default_units': '', 'description': 'Supplementary references:', 'enumeration': ('compilations and computed', 'compilations', 'none'), 'format_string': '', 'help_text': "For reference species ATcT lacks, use the reference library: evaluated compilations and measurements (JANAF, CODATA, spectroscopic D0, W4-17, the NIST WebBook), and also computed references if chosen. 'none' uses ATcT only. Used only with ATcT as the reference values.", 'kind': 'enum'}, 'symmetry number': {'default': 'from system', 'default_units': '', 'description': 'Symmetry number:', 'enumeration': ('from system',), 'format_string': '', 'help_text': 'The symmetry number of the system.', 'kind': 'integer'}, 'target conformer': {'default': 'as given', 'default_units': '', 'description': 'Target starts from:', 'enumeration': ('as given', 'lowest of the embeddings (MMFF)'), 'format_string': '', 'help_text': 'Keep the target structure as given, or rebuild it from its SMILES as the lowest MMFF94 conformer of several embeddings before the optimization (a single embedding of a long chain is often gauche).', 'kind': 'enum'}, 'thermal corrections': {'default': 'harmonic', 'default_units': '', 'description': 'Thermal corrections:', 'enumeration': ('harmonic', 'none (the energy is the enthalpy, e.g. MOPAC)'), 'format_string': '', 'help_text': "Harmonic thermal corrections, or none when the engine's energy is already an enthalpy of formation at 298.15 K (MOPAC and other NDDO methods).", 'kind': 'enum'}, 'use my own references': {'default': 'no', 'default_units': '', 'description': 'Use my own references:', 'enumeration': ('no', 'yes'), 'format_string': '', 'help_text': 'Use the references you added to your local reference library (seamm-thermochemistry-references), ahead of the compilations.', 'kind': 'boolean'}}#
thermochemistry_step.thermochemistry_step module#
- class thermochemistry_step.thermochemistry_step.ThermochemistryStep(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 Thermochemistry 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 step for predicting thermochemistry', 'group': 'Properties', 'name': 'Thermochemistry'}#
thermochemistry_step.tk_thermochemistry module#
The graphical part of a Thermochemistry step
- class thermochemistry_step.tk_thermochemistry.TkThermochemistry(tk_flowchart=None, node=None, namespace='org.molssi.seamm.tk', canvas=None, x=None, y=None, w=200, h=50)[source]#
Bases:
TkNodeThe graphical part of a Thermochemistry 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 Thermochemistry_parameters.py
- Type:
dict
See also
Thermochemistry,TkThermochemistry,ThermochemistryParameters- create_dialog()[source]#
Create the dialog. A set of widgets will be chosen by default based on what is specified in the Thermochemistry_parameters module.
- Parameters:
None
- Return type:
None
See also
- reset_dialog(widget=None)[source]#
Layout the widgets in the dialog.
The widgets are chosen by default from the information in Thermochemistry parameters.
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_thermochemistry_frame(widget=None)[source]#
Layout the widgets in the thermochemistry frame as needed for the current state
Module contents#
thermochemistry_step A SEAMM plug-in for Thermochemistry