psi4_step package#

Submodules#

psi4_step.accelerated_optimization module#

Acclerated optimization using MOPAC for Hessians.

class psi4_step.accelerated_optimization.AcceleratedOptimization(flowchart=None, title='Accelerated Optimization', extension=None)[source]#

Bases: Energy

description_text(P=None)[source]#

Prepare information about what this node will do

input_text(node0, memory, restart=None)[source]#

Create the first and last parts of the Psi4 input.

Parameters:
  • node0 (seamm.Node) – The first node in the Psi4 subflowchart

  • memory (str) – Amount of memory to allocate Psi4

  • n_threads (int) – Number of threads to use in Psi4

  • restart (str = None) – A wavefunction file to restart from

run(node0, memory, n_threads)[source]#

Run the accelerated optimization.

Parameters:
  • node0 (seamm.Node) – The first node in the Psi4 subflowchart

  • memory (str) – Amount of memory to allocate Psi4

  • n_threads (int) – Number of threads to use in Psi4

runMOPAC(x, needed=('E', 'dE'))[source]#

Run the MOPAC flowchart in the given directory.

runPsi4(x, needed=('E', 'dE'))[source]#
run_old(node0, memory, n_threads)[source]#

Run the accelerated optimization.

Parameters:
  • node0 (seamm.Node) – The first node in the Psi4 subflowchart

  • memory (str) – Amount of memory to allocate Psi4

  • n_threads (int) – Number of threads to use in Psi4

psi4_step.accelerated_optimization.abs_max(V)[source]#
psi4_step.accelerated_optimization.abs_min(V)[source]#
psi4_step.accelerated_optimization.norm(V)[source]#
psi4_step.accelerated_optimization.rms(V)[source]#

psi4_step.accelerated_optimization_parameters module#

Global control parameters for Psi4

class psi4_step.accelerated_optimization_parameters.AcceleratedOptimizationParameters(defaults={}, data=None)[source]#

Bases: EnergyParameters

The control parameters for the MOPAC accelerated optimization.

parameters = {'coordinates': {'default': 'Internal', 'default_units': '', 'description': 'Type of coordinates:', 'enumeration': ('Internal', 'Delocalized', 'Natural', 'Cartesian', 'Both'), 'format_string': 's', 'help_text': 'The type of coordinates to use in the minimization.', 'kind': 'enumeration'}, 'geometry convergence': {'default': 'QCHEM', 'default_units': '', 'description': 'Convergence criteria:', 'enumeration': ('QCHEM', 'MOLPRO', 'GAU', 'GAU_LOOSE', 'GAU_TIGHT', 'GAU_VERYTIGHT', 'TURBOMOLE', 'CFOUR', 'NWCHEM_LOOSE'), 'format_string': '', 'help_text': 'The criteria to use for convergence.', 'kind': 'float'}, 'hessian update': {'default': 'bfgs', 'default_units': '', 'description': 'Hessian update:', 'enumeration': ('bfgs', 'ms', 'powell', 'none'), 'format_string': 's', 'help_text': 'The algorithm for updating the Hessian.', 'kind': 'enumeration'}, 'max geometry steps': {'default': 'default', 'default_units': '', 'description': 'Maximum steps:', 'enumeration': ('default',), 'format_string': '', 'help_text': "The maximum number of steps to take in the optimization. 'default' is based on the system size, giving a reasonable limit in most cases.", 'kind': 'integer'}, 'optimization method': {'default': 'RFO', 'default_units': '', 'description': 'Method:', 'enumeration': ('RFO', 'P_RFO', 'NR', 'SD', 'LINESEARCH'), 'format_string': 's', 'help_text': 'The optimization method to use.', 'kind': 'enumeration'}, 'recalc hessian': {'default': 'every step', 'default_units': '', 'description': 'Recalculate Hessian:', 'enumeration': ('every step', 'at beginning', 'never'), 'format_string': '', 'help_text': 'How often to recalculate the Hessian (in steps). Smaller values help convergence but are expensive.', 'kind': 'integer'}}#

psi4_step.accelerated_optimization_step module#

Main module.

class psi4_step.accelerated_optimization_step.AcceleratedOptimizationStep(flowchart=None, gui=None)[source]#

Bases: object

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

Return the new node object

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

Return the graphical Tk node object

description()[source]#

Return a description of what this extension does

my_description = {'description': 'Optimization of the structure using Psi4 accelerated by MOPAC', 'group': 'Calculation', 'name': 'Accelerated Optimization'}#

psi4_step.energy module#

Setup and run Psi4

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

Bases: Node

analyze(indent='', data={}, out=[])[source]#

Parse the output and generating the text output and store the data in variables for other stages to access

description_text(P=None, calculation_type='Single-point energy', configuration=None)[source]#

Prepare information about what this node will do

get_input(calculation_type='energy', restart=None)[source]#

Get the input for an energy calculation for Psi4

property git_revision#

The git version of this module.

property header#

A printable header for this section of output

plot_input()[source]#

Generate the input for plotting to cube files.

property version#

The semantic version of this module.

psi4_step.energy_parameters module#

Global control parameters for Psi4

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

Bases: Parameters

The control parameters for the energy.

output = {'density': {'default': 'no', 'default_units': '', 'description': 'Plot total density:', 'enumeration': ('yes', 'no'), 'format_string': '', 'help_text': 'Whether to plot the total charge density.', 'kind': 'boolean'}, 'orbitals': {'default': 'no', 'default_units': '', 'description': 'Plot orbitals:', 'enumeration': ('yes', 'no'), 'format_string': '', 'help_text': 'Whether to plot orbitals.', 'kind': 'boolean'}, 'selected orbitals': {'default': '-1, HOMO, LUMO, +1', 'default_units': '', 'description': 'Selected orbitals:', 'enumeration': ('all', '-1, HOMO, LUMO, +1'), 'format_string': '', 'help_text': 'Which orbitals to plot.', 'kind': 'string'}}#
parameters = {'advanced_functional': {'default': 'B3LYP Hyb-GGA Exchange-Correlation Functional', 'default_units': '', 'description': 'DFT Functional:', 'enumeration': ['B1LYP Hyb-GGA Exchange-Correlation Functional', 'B1PW91 Hyb-GGA Exchange-Correlation Functional', 'B1WC Hyb-GGA Exchange-Correlation Functional', 'B2GPPLYP Double Hybrid Exchange-Correlation Functional', 'B2PLYP Double Hybrid Exchange-Correlation Functional', 'B3LYP Hyb-GGA Exchange-Correlation Functional', 'B3LYP5 Hyb-GGA Exchange-Correlation Functional', 'B3LYPs Hyb-GGA Exchange-Correlation Functional', 'B3P86 Hyb-GGA Exchange-Correlation Functional', 'B3PW91 Hyb-GGA Exchange-Correlation Functional', 'B5050LYP Hyb-GGA Exchange-Correlation Functional', 'B86B95 Hyb-GGA Exchange-Correlation Functional', 'B86BPBE GGA Exchange-Correlation Functional', 'B88B95 Hyb-GGA Exchange-Correlation Functional', 'B97-0 Hyb-GGA Exchange-Correlation Functional', 'B97-1 Hyb-GGA Exchange-Correlation Functional', 'B97-1p Hyb-GGA Exchange-Correlation Functional', 'B97-2 Hyb-GGA Exchange-Correlation Functional', 'B97-3 Hyb-GGA Exchange-Correlation Functional', 'b97-d', 'B97-GGA1 GGA Exchange-Correlation Functional', 'B97-K Hyb-GGA Exchange-Correlation Functional', 'b97m-d3bj', 'B97M-V GGA Exchange-Correlation Functional', 'BB1K Hyb-GGA Exchange-Correlation Functional', 'BHandH Hyb-GGA Exchange-Correlation Functional', 'BHandHLYP Hyb-GGA Exchange-Correlation Functional', 'BLYP GGA Exchange-Correlation Functional', 'BOP GGA Exchange-Correlation Functional', 'BP86 GGA Exchange-Correlation Functional', 'CAM-B3LYP Hyb-GGA Exchange-Correlation Functional', 'CAP0 Hyb-GGA Exchange-Correlation Functional', 'core-dsd-blyp', 'Dispersionless Hybrid Meta-GGA XC Functional', 'Dispersionless Hybrid Meta-GGA XC Functional + d09', 'Dispersionless Hybrid Meta-GGA XC Functional + d10', 'DSD-BLYP SCS Double Hybrid XC Functional', 'DSD-PBEB95 SCS Double Hybrid Meta-GGA XC Functional', 'DSD-PBEP86 SCS Double Hybrid XC Functional', 'DSD-PBEPBE SCS Double Hybrid XC Functional', 'EDF1 GGA Exchange-Correlation Functional', 'EDF2 Hyb-GGA Exchange-Correlation Functional', 'FT97 GGA Exchange-Correlation Functional', 'GAM GGA Minnesota Exchange-Correlation Functional', 'HCTH120 GGA Exchange-Correlation Functional', 'HCTH147 GGA Exchange-Correlation Functional', 'HCTH407 GGA Exchange-Correlation Functional', 'HCTH407P GGA Exchange-Correlation Functional', 'HCTH93 GGA Exchange-Correlation Functional', 'HCTHP14 GGA Exchange-Correlation Functional', 'HCTHP76 GGA Exchange-Correlation Functional', 'hf', 'hf+d', 'Hartree Fock based 3C composite method with minimal basis set, gCP and D3(BJ)', 'HJS-B88 Hyb-GGA Exchange-Correlation Functional', 'HJS-B97X Hyb-GGA Exchange-Correlation Functional', 'HJS-PBE Hyb-GGA Exchange-Correlation Functional', 'HJS-PBE-SOL Hyb-GGA Exchange-Correlation Functional', 'HPBEINT Hyb-GGA Exchange-Correlation Functional', 'HSE03 Hyb-GGA Exchange-Correlation Functional', 'HSE06 Hyb-GGA Exchange-Correlation Functional', 'KSDT Exchange-Correlation Functional', 'KT2 GGA Exchange-Correlation Functional', 'LC-VV10 GGA Exchange-Correlation Functional', 'LRC-WPBE GGA Exchange-Correlation Functional', 'LRC-wPBEh Hyb-GGA Exchange-Correlation Functional', 'M05 Meta-GGA XC Functional', 'Heavily Parameterized Hybrid M05-2X Meta-GGA XC Functional', 'M06 Meta-GGA XC Functional', 'Hybrid M06-2X Meta-GGA XC Functional', 'Minnesota M06-HF Hybrid XC Functional', 'M06-L Meta-GGA XC Functional', 'Minnesota M08-HX Hybrid XC Functional', 'Minnesota M08-SO Hybrid XC Functional', 'M11 Meta-GGA XC Functional', 'M11-L Meta-GGA XC Functional', 'MB3LYP-RC04 Hyb-GGA Exchange-Correlation Functional', 'MGGA_MS0 Meta-GGA XC Functional', 'MGGA_MS1 Meta-GGA XC Functional', 'MGGA_MS2 Meta-GGA XC Functional', 'MGGA_MS2h Hybrid Meta-GGA XC Functional', 'MGGA_MVS Meta-GGA XC Functional', 'MGGA_MV2h Hybrid Meta-GGA XC Functional', 'MN12-L Meta-GGA XC Functional', 'MN12-SX Meta-GGA Hybrid Screened Exchange-Correlation Functional', 'MN15 Hybrid Meta-GGA Exchange-Correlation Functional', 'MN15-L Meta-GGA XC Functional', 'MOHLYP GGA Exchange-Correlation Functional', 'MOHLYP2 GGA Exchange-Correlation Functional', 'mPW1B95 Hyb-GGA Exchange-Correlation Functional', 'mPW1K Hyb-GGA Exchange-Correlation Functional', 'mPW1LYP Hybrid GGA Exchange-Correlation Functional', 'mPW1PBE Hybrid GGA Exchange-Correlation Functional', 'mPW1PW Hyb-GGA Exchange-Correlation Functional', 'mPW3LYP Hyb-GGA Exchange-Correlation Functional', 'mPW3PW Hyb-GGA Exchange-Correlation Functional', 'mPWB1K Hyb-GGA Exchange-Correlation Functional', 'mPWLYP1M Hyb-GGA Exchange-Correlation Functional', 'mPWLYP1W GGA Exchange-Correlation Functional', 'mPWPW GGA Exchange-Correlation Functional', 'N12 nonseparable GGA Exchange-Correlation Functional', 'N12-SX Hybrid nonseparable GGA Exchange-Correlation Functional', 'O3LYP Hyb-GGA Exchange-Correlation Functional', 'oblyp-e', 'PBE GGA Exchange, One-parameter Progressive correlation Functional', 'opbe-d', 'opwlyp-d', 'otpss-d', 'PBE GGA Exchange-Correlation Functional', 'PBE0 Hyb-GGA Exchange-Correlation Functional', 'PBE0-13 Hyb-GGA Exchange-Correlation Functional', 'PBE0-2 Double Hybrid Exchange-Correlation Functional', 'pbe0-dh', 'PBE1W GGA Exchange-Correlation Functional', 'PBE50 Hybrid GGA Exchange-Correlation Functional', 'PBE Hybrid based 3C composite method with a small basis set, gCP and D3(BJ)', 'PBELYP1W GGA Exchange-Correlation Functional', 'PKZB Meta-GGA XC Functional', 'PTPSS SOS Double Hybrid XC Functional', 'PW6B95 Hybrid Meta-GGA XC Functional', 'PW86B95 Hyb-GGA Exchange-Correlation Functional', 'PW86PBE GGA Exchange-Correlation Functional', 'PW91 GGA Exchange-Correlation Functional', 'PWB6K Hyb-GGA Exchange-Correlation Functional', 'PWPB95 SOS Double Hybrid XC Functional', 'revB3LYP Hyb-GGA Exchange-Correlation Functional', 'revPBE GGA Exchange-Correlation Functional', 'revPBE0 Hybrid GGA Exchange-Correlation Functional', 'revised TPSS Meta-GGA XC Functional', 'revTPSSh Hyb-GGA Exchange-Correlation Functional', 'RPBE GGA Exchange-Correlation Functional', 'SB98-1a Hyb-GGA Exchange-Correlation Functional', 'SB98-1b Hyb-GGA Exchange-Correlation Functional', 'SB98-1c Hyb-GGA Exchange-Correlation Functional', 'SB98-2a Hyb-GGA Exchange-Correlation Functional', 'SB98-2b Hyb-GGA Exchange-Correlation Functional', 'SB98-2c Hyb-GGA Exchange-Correlation Functional', 'SOGGA Exchange + PBE Correlation Functional', 'SOGGA11 Exchange-Correlation Functional', 'SOGGA11-X Hybrid Exchange-Correlation Functional', 'SVWN3 (RPA) LSDA Functional', 'TETER93 Exchange-Correlation Functional', 'TH-FC GGA Exchange-Correlation Functional', 'TH-FCFO GGA Exchange-Correlation Functional', 'TH-FCO GGA Exchange-Correlation Functional', 'TH-FL GGA Exchange-Correlation Functional', 'TH1 GGA Exchange-Correlation Functional', 'TH2 GGA Exchange-Correlation Functional', 'TH3 GGA Exchange-Correlation Functional', 'TH4 GGA Exchange-Correlation Functional', 'TPSS Meta-GGA XC Functional', 'TPSSh Hyb-GGA Exchange-Correlation Functional', 'TPSSLYP1W GGA Exchange-Correlation Functional', 'TUNED-CAM-B3LYP Hyb-GGA Exchange-Correlation Functional', 'VSXC Meta-GGA XC Functional', 'VV10 GGA Exchange-Correlation Functional', 'wB97 GGA Exchange-Correlation Functional', 'wB97M-V Hyb-GGA Exchange-Correlation Functional', 'wB97X Hyb-GGA Exchange-Correlation Functional', 'wB97X-V Hyb-GGA Exchange-Correlation Functional', 'PBE SR-XC Functional (HJS Model)', 'PBE0 SR-XC Functional (HJS Model)', 'X1B95 Hyb-GGA Exchange-Correlation Functional', 'X3LYP Hyb-GGA Exchange-Correlation Functional', 'XB1K Hyb-GGA Exchange-Correlation Functional', 'XLYP GGA Exchange-Correlation Functional', 'ZLP GGA Exchange-Correlation Functional'], 'format_string': 's', 'help_text': 'The exchange-correlation functional to use.', 'kind': 'enumeration'}, 'advanced_method': {'default': 'Kohn-Sham (KS) density functional theory (DFT)', 'default_units': '', 'description': 'Method:', 'enumeration': ['effective fragment potential (EFP)', 'Kohn-Sham (KS) density functional theory (DFT)', 'Hartree-Fock (HF) self consistent field (SCF)', 'HF with dispersion, BSSE, and basis set corrections', 'PBEh with dispersion, BSSE, and basis set corrections', 'density cumulant functional theory', '2nd-order Møller–Plesset perturbation theory (MP2)', '3rd-order Møller–Plesset perturbation theory (MP3)', 'MP3 with frozen natural orbitals', 'average of MP2 and MP3', '4th-order MP perturbation theory (MP4) less triples', 'MP4 (less triples) with frozen natural orbitals', 'full MP4', 'full MP4 with frozen natural orbitals', 'nth-order Møller–Plesset (MP) perturbation theory', 'nth-order z-averaged perturbation theory (ZAPT)', 'orbital-optimized second-order MP perturbation theory', 'spin-component scaled OMP2', 'a special version of SCS-OMP2 for nucleobase interactions', 'a special version of SCS-OMP2 (from ethene dimers)', 'spin-opposite scaled OMP2', 'A special version of SOS-OMP2 for pi systems', 'orbital-optimized third-order MP perturbation theory', 'spin-component scaled OMP3', 'a special version of SCS-OMP3 for nucleobase interactions', 'a special version of SCS-OMP3 (from ethene dimers)', 'spin-opposite scaled OMP3', 'A special version of SOS-OMP3 for pi systems', 'orbital-optimized MP2.5', 'coupled electron pair approximation variant 0', 'CEPA(0) with frozen natural orbitals', 'coupled electron pair approximation variant 1', 'CEPA(1) with frozen natural orbitals', 'coupled electron pair approximation variant 3', 'CEPA(3) with frozen natural orbitals', 'averaged coupled-pair functional', 'ACPF with frozen natural orbitals', 'averaged quadratic coupled cluster', 'AQCC with frozen natural orbitals', 'quadratic CI singles doubles (QCISD)', 'QCISD with frozen natural orbitals', 'Linear CCD', 'LCCD with frozen natural orbitals', 'orbital optimized LCCD', 'approximate coupled cluster singles and doubles (CC2)', 'coupled cluster doubles (CCD)', 'coupled cluster singles and doubles (CCSD)', 'Brueckner coupled cluster doubles (BCCD)', 'CCSD with frozen natural orbitals', 'QCISD with perturbative triples', 'QCISD(T) with frozen natural orbitals', 'CCSD with perturbative triples (CCSD(T))', 'CCSD with asymmetric perturbative triples (CCSD(AT))', 'BCCD with perturbative triples', 'CCSD(T) with frozen natural orbitals', 'approximate CC singles, doubles, and triples (CC3)', 'expert full control over ccenergy module', 'expert full control over dfocc module', 'configuration interaction (CI) singles and doubles (CISD)', 'CISD with frozen natural orbitals', 'CI singles, doubles, and triples (CISDT)', 'CI singles, doubles, triples, and quadruples (CISDTQ)', 'nth-order CI', 'full configuration interaction (FCI)', 'expert full control over detci module', 'complete active space self consistent field (CASSCF)', 'restricted active space self consistent field (RASSCF)', 'multiconfigurational self consistent field (SCF)', 'Mukherjee multireference coupled cluster (Mk-MRCC)', 'density matrix renormalization group SCF', 'density matrix renormalization group CASPT2', 'density matrix renormalization group CI', '0th-order symmetry adapted perturbation theory (SAPT)', '0th-order SAPT with special exchange scaling', '0th-order functional and/or intramolecular SAPT', '2nd-order SAPT, traditional definition', 'SAPT including all 2nd-order terms', 'SAPT including perturbative triples', 'SAPT including all 3rd-order terms', 'SAPT2+ with CC-based dispersion', 'SAPT2+(3) with CC-based dispersion', 'SAPT2+3 with CC-based dispersion', 'SAPT including all 2nd-order terms and MP2 correction', 'SAPT including perturbative triples and MP2 correction', 'SAPT including all 3rd-order terms and MP2 correction', 'SAPT2+ with CC-based dispersion and MP2 correction', 'SAPT2+(3) with CC-based dispersion and MP2 correction', 'SAPT2+3 with CC-based dispersion and MP2 correction', '0th-order SAPT plus charge transfer (CT) calculation', 'SAPT2 plus CT', 'SAPT2+ plus CT', 'SAPT2+(3) plus CT', 'SAPT2+3 plus CT', 'SAPT2+(CCD) plus CT', 'SAPT2+(3)(CCD) plus CT', 'SAPT2+3(CCD) plus CT', '2nd-order algebraic diagrammatic construction (ADC)', 'EOM-CC2', 'equation of motion (EOM) CCSD', 'EOM-CC3'], 'format_string': 's', 'help_text': 'The computational method to use.', 'kind': 'enumeration'}, 'convergence error': {'default': 'yes', 'default_units': '', 'description': 'Error if not converged:', 'enumeration': ('yes', 'no'), 'format_string': 's', 'help_text': 'Whether to throw an error if not converged.', 'kind': 'boolean'}, 'create tables': {'default': 'yes', 'default_units': '', 'description': 'Create tables as needed:', 'enumeration': ('yes', 'no'), 'format_string': '', 'help_text': 'Whether to create tables as needed for results being saved into tables.', 'kind': 'boolean'}, 'damping convergence': {'default': 0.0, 'default_units': '', 'description': 'Damp to convergence:', 'enumeration': (), 'format_string': 's', 'help_text': 'Convergence level to stop damping. 0 = always damp.', 'kind': 'float'}, 'damping percentage': {'default': 20.0, 'default_units': '', 'description': 'Percent damping:', 'enumeration': (), 'format_string': 's', 'help_text': 'Percent of previous density to use to damp oscillations.', 'kind': 'float'}, 'density convergence': {'default': 'default', 'default_units': '', 'description': 'Density convergence criterion:', 'enumeration': ('default',), 'format_string': 's', 'help_text': 'Criterion for convergence of the density, default 10^-6 for SCF, 10^-8 optimization.', 'kind': 'float'}, 'dispersion': {'default': 'd3bj', 'default_units': '', 'description': 'Dispersion correction:', 'enumeration': ['none', 'd3bj', 'd3mbj', 'nl'], 'format_string': 's', 'help_text': 'The dispersion correction to use.', 'kind': 'enumeration'}, 'energy convergence': {'default': 'default', 'default_units': '', 'description': 'Energy convergence criterion:', 'enumeration': ('default',), 'format_string': 's', 'help_text': 'Criterion for convergence of the energy, default 10^-6 for SCF, 10^-8 optimization.', 'kind': 'float'}, 'freeze-cores': {'default': 'yes', 'default_units': '', 'description': 'Freeze core orbitals:', 'enumeration': ('yes', 'no'), 'format_string': 's', 'help_text': 'Whether to freeze the core orbitals in correlated methods', 'kind': 'enumeration'}, 'functional': {'default': 'B3LYP Hyb-GGA Exchange-Correlation Functional', 'default_units': '', 'description': 'DFT Functional:', 'enumeration': ['B3LYP Hyb-GGA Exchange-Correlation Functional', 'PBE GGA Exchange-Correlation Functional', 'PBE0 Hyb-GGA Exchange-Correlation Functional'], 'format_string': 's', 'help_text': 'The exchange-correlation functional to use.', 'kind': 'enumeration'}, 'level': {'default': 'recommended', 'description': 'The level of disclosure in the interface', 'enumeration': ('recommended', 'advanced'), 'format_string': 's', 'help_text': "How much detail to show in the GUI. Currently 'recommended' or 'advanced', which shows everything.", 'kind': 'string'}, 'level shift': {'default': 5.0, 'default_units': 'E_h', 'description': 'Level shift:', 'enumeration': (), 'format_string': 's', 'help_text': 'The amount to shift the occupied orbitals down.', 'kind': 'float'}, 'level shift convergence': {'default': 0.01, 'default_units': '', 'description': 'Stop when converged to:', 'enumeration': (), 'format_string': 's', 'help_text': 'Convergence level to stop level shifting.', 'kind': 'float'}, 'maximum iterations': {'default': 100, 'default_units': '', 'description': 'Maximum iterations:', 'enumeration': (), 'format_string': 's', 'help_text': 'Maximum number of SCF iterations.', 'kind': 'integer'}, 'method': {'default': 'Kohn-Sham (KS) density functional theory (DFT)', 'default_units': '', 'description': 'Method:', 'enumeration': ['Kohn-Sham (KS) density functional theory (DFT)', 'Hartree-Fock (HF) self consistent field (SCF)', '2nd-order Møller–Plesset perturbation theory (MP2)', '3rd-order Møller–Plesset perturbation theory (MP3)', 'Linear CCD', 'coupled cluster singles and doubles (CCSD)', 'CCSD with perturbative triples (CCSD(T))'], 'format_string': 's', 'help_text': 'The computational method to use.', 'kind': 'enumeration'}, 'results': {'default': {}, 'default_units': '', 'description': 'results', 'enumeration': (), 'format_string': '', 'help_text': 'The results to save to variables or in tables. ', 'kind': 'dictionary'}, 'soscf convergence': {'default': 0.001, 'default_units': '', 'description': 'Microiteration convergence:', 'enumeration': (), 'format_string': 's', 'help_text': 'Convergence level for SOSCF microiterations.', 'kind': 'float'}, 'soscf max iterations': {'default': 5, 'default_units': '', 'description': 'Maximum microiterations:', 'enumeration': (), 'format_string': 's', 'help_text': 'Maximum number of SOSCF microiterations.', 'kind': 'integer'}, 'soscf print iterations': {'default': 'no', 'default_units': '', 'description': 'Print microiterations:', 'enumeration': ('yes', 'no'), 'format_string': 's', 'help_text': 'Print information about the SOSCF microiterations.', 'kind': 'boolean'}, 'soscf starting convergence': {'default': 0.01, 'default_units': '', 'description': 'Start when converged to:', 'enumeration': (), 'format_string': 's', 'help_text': 'Convergence level to start second order SCF.', 'kind': 'float'}, 'spin-restricted': {'default': 'default', 'default_units': '', 'description': 'Spin-restricted:', 'enumeration': ('default', 'yes', 'no'), 'format_string': 's', 'help_text': 'Whether to restrict the spin (RHF, ROHF, RKS) or not (UHF, UKS). Default is restricted for singlets, unrestricted otherwise.', 'kind': 'enumeration'}, 'stability analysis': {'default': 'no', 'default_units': '', 'description': 'Do stability analysis:', 'enumeration': ('yes', 'no'), 'format_string': 's', 'help_text': 'Analyze the stability of the SCF/DFT wavefunction.', 'kind': 'boolean'}, 'use damping': {'default': 'no', 'default_units': '', 'description': 'Damp the iterations:', 'enumeration': ('yes', 'no'), 'format_string': 's', 'help_text': 'Whether to damp the iterations using a fraction of the previous density to damp oscillations.', 'kind': 'boolean'}, 'use level shift': {'default': 'no', 'default_units': '', 'description': 'Use a level shift:', 'enumeration': ('yes', 'no'), 'format_string': 's', 'help_text': 'Whether to use a level shift to help convergence.', 'kind': 'boolean'}, 'use soscf': {'default': 'no', 'default_units': '', 'description': 'Use second order SCF:', 'enumeration': ('yes', 'no'), 'format_string': 's', 'help_text': 'Whether to use the second order SCF to help convergence.', 'kind': 'boolean'}}#

psi4_step.energy_step module#

Main module.

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

Bases: object

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

Return the new node object

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

Return the graphical Tk node object

description()[source]#

Return a description of what this extension does

my_description = {'description': 'Energy calculation using Psi4', 'group': 'Calculation', 'name': 'Energy'}#

psi4_step.initialization module#

Setup and run Psi4

class psi4_step.initialization.Initialization(flowchart=None, title='Initialization', extension=None)[source]#

Bases: Node

analyze(indent='', data={}, out=[])[source]#

Parse the output and generating the text output and store the data in variables for other stages to access

description_text(P=None)[source]#

Prepare information about what this node will do

get_input()[source]#

Get the input for an initialization calculation for Psi4

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.

psi4_step.initialization_parameters module#

Global control parameters for Psi4

class psi4_step.initialization_parameters.InitializationParameters(defaults={}, data=None)[source]#

Bases: Parameters

The control parameters for initializing Psi4

parameters = {'basis': {'default': '6-31G**', 'default_units': '', 'description': 'Basis:', 'enumeration': ('6-31G', '6-31G(d)', '6-31G(d,p)', '6-31+G', '6-31+G(d)', '6-31+G(d,p)', '6-311G', '6-311G(d)', '6-311G(d,p)', '6-311+G', '6-311+G(d)', '6-311+G(d,p)', 'cc-pVDZ', 'cc-pVTZ', 'cc-pVQZ', 'def2-SV(P)', 'def2-SVP', 'def2-TZVP', 'def2-TZVPP', 'def2-QZVP', 'def2-QZVPP'), 'format_string': 's', 'help_text': 'The basis set to use.', 'kind': 'enumeration'}, 'symmetry_tolerance': {'default': '0.00001', 'default_units': None, 'description': 'Symmetry tolerance:', 'enumeration': (), 'format_string': '.1e', 'help_text': 'The tolerance used when determining the symmetry.', 'kind': 'float'}}#

psi4_step.initialization_step module#

Main module.

class psi4_step.initialization_step.InitializationStep(flowchart=None, gui=None)[source]#

Bases: object

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

Return the new node object

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

Return the graphical Tk node object

description()[source]#

Return a description of what this extension does

my_description = {'description': 'Initialization of Psi4', 'group': 'Setup', 'name': 'Initialization'}#

psi4_step.installer module#

psi4_step.optimization module#

Setup and run Psi4

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

Bases: Energy

description_text(P=None, calculation_type='Geometry optimization', configuration=None)[source]#

Prepare information about what this node will do

get_input(calculation_type='optimize')[source]#

Get the input for an optimization calculation for Psi4

psi4_step.optimization_parameters module#

Global control parameters for Psi4

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

Bases: EnergyParameters

The control parameters for the energy.

parameters = {'coordinates': {'default': 'Internal', 'default_units': '', 'description': 'Type of coordinates:', 'enumeration': ('Internal', 'Cartesian', 'Both'), 'format_string': 's', 'help_text': 'The typ of coordinates to use in the minimization.', 'kind': 'enumeration'}, 'geometry convergence': {'default': 'QChem', 'default_units': '', 'description': 'Convergence criteria:', 'enumeration': ['CFOUR', 'Gaussian loose', 'Gaussian', 'Gaussian tight', 'Gaussian very tight', 'MOLPRO', 'NWChem loose', 'NWChem', 'NWChem tight', 'QChem', 'TURBOMOLE', 'Interfragment tight', 'Custom'], 'format_string': '', 'help_text': 'The criteria to use for convergence.', 'kind': 'string'}, 'hessian update': {'default': 'bfgs', 'default_units': '', 'description': 'Hessian update:', 'enumeration': ('bfgs', 'ms', 'powell', 'none'), 'format_string': 's', 'help_text': 'The algorithm for updating the Hessian.', 'kind': 'enumeration'}, 'max geometry steps': {'default': '6*nAtoms', 'default_units': '', 'description': 'Maximum steps:', 'enumeration': ('6*nAtoms',), 'format_string': '', 'help_text': "The maximum number of steps to take in the optimization. 'default' is based on the system size, giving a reasonable limit in most cases.", 'kind': 'integer'}, 'optimization method': {'default': 'Rational Function Optimization', 'default_units': '', 'description': 'Method:', 'enumeration': ['Rational Function Optimization', 'Newton-Raphson', 'Steepest Descents', 'Static Linesearch'], 'format_string': 's', 'help_text': 'The optimization method to use.', 'kind': 'enumeration'}, 'recalc hessian': {'default': 'never', 'default_units': '', 'description': 'Recalculate Hessian:', 'enumeration': ('every step', 'at beginning', 'never'), 'format_string': '', 'help_text': 'How often to recalculate the Hessian (in steps). Smaller values help convergence but are expensive.', 'kind': 'integer'}}#

psi4_step.optimization_step module#

Main module.

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

Bases: object

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

Return the new node object

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

Return the graphical Tk node object

description()[source]#

Return a description of what this extension does

my_description = {'description': 'Optimization of the structure using Psi4', 'group': 'Calculation', 'name': 'Optimization'}#

psi4_step.optimizer module#

Acclerated optimization using MOPAC for Hessians.

class psi4_step.optimizer.Optimizer(is_linear=False, energy_callback=None, surrogate_callback=None)[source]#

Bases: object

property E#

The energy.

property d2E#

The second derivatives of the energy.

property dE#

The derivatives of the energy.

optimize(_x0, n_steps=None)[source]#

Do the optimization!

psi4_step.optimizer.abs_max(V)[source]#
psi4_step.optimizer.abs_min(V)[source]#
psi4_step.optimizer.norm(V)[source]#
psi4_step.optimizer.rms(V)[source]#

psi4_step.psi4 module#

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

class psi4_step.psi4.Psi4(flowchart=None, title='Psi4', namespace='org.molssi.seamm.psi4', extension=None)[source]#

Bases: Node

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

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 Psi4.

Type:

Psi4Parameters

See also

TkPsi4, Psi4, Psi4Parameters

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

create_parser()[source]#

Setup the command-line / config file parser

description_text(P=None)[source]#

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

Parameters:

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

Returns:

description – A description of the current step.

Return type:

str

property git_revision#

The git version of this module.

run()[source]#

Run a Psi4 step.

Returns:

next_node – The next node object in the flowchart.

Return type:

seamm.Node

set_id(node_id)[source]#

Set the id for node to a given tuple

property version#

The semantic version of this module.

psi4_step.psi4.dehumanize(memory, suffix='B')[source]#

Unscale memory from its human readable form e.g:

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

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

Scale memory to its proper format e.g:

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

psi4_step.psi4_metadata module#

This file contains metadata describing the results from Psi4

psi4_step.psi4_metadata.optimization_convergence = {'CFOUR': 'CFOUR', 'Custom': '', 'Gaussian': 'GAU', 'Gaussian loose': 'GAU_LOOSE', 'Gaussian tight': 'GAU_TIGHT', 'Gaussian very tight': 'GAU_VERYTIGHT', 'Interfragment tight': 'INTERFRAG_TIGHT', 'MOLPRO': 'MOLPRO', 'NWChem': 'GAU', 'NWChem loose': 'NWCHEM_LOOSE', 'NWChem tight': 'GUA_TIGHT', 'QChem': 'QCHEM', 'TURBOMOLE': 'TURBOMOLE'}#

Properties that Psi4 produces. metadata[“results”] describes the results that this step can produce. It is a dictionary where the keys are the internal names of the results within this step, and the values are a dictionary describing the result. For example:

metadata["results"] = {
    "total_energy": {
        "calculation": [
            "energy",
            "optimization",
        ],
        "description": "The total energy",
        "dimensionality": "scalar",
        "methods": [
            "ccsd",
            "ccsd(t)",
            "dft",
            "hf",
        ],
        "property": "total energy#QuickMin#{model}",
        "type": "float",
        "units": "E_h",
    },
}

Fields#

calculation[str]

Optional metadata describing what subtype of the step produces this result. The subtypes are completely arbitrary, but often they are types of calculations which is why this is name calculation. To use this, the step or a substep define self._calculation as a value. That value is used to select only the results with that value in this field.

descriptionstr

A human-readable description of the result.

dimensionalitystr

The dimensions of the data. The value can be “scalar” or an array definition of the form “[dim1, dim2,…]”. Symmetric tringular matrices are denoted “triangular[n,n]”. The dimensions can be integers, other scalar results, or standard parameters such as n_atoms. For example, ‘[3]’, [3, n_atoms], or “triangular[n_aos, n_aos]”.

methodsstr

Optional metadata like the calculation data. methods provides a second level of filtering, often used for the Hamiltionian for ab initio calculations where some properties may or may not be calculated depending on the type of theory.

propertystr

An optional definition of the property for storing this result. Must be one of the standard properties defined either in SEAMM or in this steps property metadata in data/properties.csv.

typestr

The type of the data: string, integer, or float.

unitsstr

Optional units for the result. If present, the value should be in these units.

psi4_step.psi4_parameters module#

Control parameters for the Psi4 step in a SEAMM flowchart

class psi4_step.psi4_parameters.Psi4Parameters(defaults={}, data=None)[source]#

Bases: Parameters

The control parameters for Psi4.

The developer will add a dictionary of Parameters to this class. The keys are parameters for the current plugin, which themselves might be dictionaries.

You need to replace the ‘time’ example below with one or more definitions of the control parameters for your plugin and application.

Parameters:
  • parameters ({'kind', 'default', 'default_units', 'enumeration',) –

  • 'format_string' – A dictionary containing the parameters for the current step. Each key of the dictionary is a dictionary that contains the the following keys: kind, default, default_units, enumeration, format_string, description and help text.

  • description' – A dictionary containing the parameters for the current step. Each key of the dictionary is a dictionary that contains the the following keys: kind, default, default_units, enumeration, format_string, description and help text.

  • help_text'} – A dictionary containing the parameters for the current step. Each key of the dictionary is a dictionary that contains the the following keys: kind, default, default_units, enumeration, format_string, description and help text.

  • parameters['kind'] (custom) – Specifies the kind of a variable. 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'] ('integer' or 'float' or 'string' or 'boolean' or) – ‘enum’ The default value of the parameter, used to reset it.

  • 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'] (tuple) – A longer string to display as help for the user.

See also

Psi4, TkPsi4, Psi4, Psi4Parameters, Psi4Step

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 = {'time': {'default': 100.0, 'default_units': 'ps', 'description': 'Simulation time:', 'enumeration': (), 'format_string': '.1f', 'help_text': 'The time to simulate in the dynamics run.', 'kind': 'float'}}#

psi4_step.psi4_step module#

class psi4_step.psi4_step.Psi4Step(flowchart=None, gui=None)[source]#

Bases: object

Helper class needed for the stevedore integration.

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

Parameters:
  • my_description ({description, group, name}) – 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 Psi4 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’, ‘Calculations’, ‘Control’ and ‘Data’.

  • 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 (keyworded arguments) – Various keyworded 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:

Psi4

See also

Psi4

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

Create and return the graphical Tk node object.

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

  • **kwargs (keyworded arguments) – Various keyworded 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:

TkPsi4

See also

TkPsi4

description()[source]#

Return a description of what this extension does

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

psi4_step.thermochemistry module#

Non-graphical part of the Thermochemistry step in a Psi4 flowchart

class psi4_step.thermochemistry.Thermochemistry(flowchart=None, title='Thermochemistry', extension=None, logger=<Logger psi4_step.thermochemistry (WARNING)>)[source]#

Bases: Energy

The 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.

Type:

ThermochemistryParameters

See also

TkThermochemistry, Thermochemistry, ThermochemistryParameters

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

get_input(calculation_type='frequency')[source]#

Get the input for an optimization calculation for Psi4

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.

psi4_step.thermochemistry_parameters module#

Control parameters for the Thermochemistry step in a Psi4 flowchart

class psi4_step.thermochemistry_parameters.ThermochemistryParameters(defaults={}, data=None)[source]#

Bases: EnergyParameters

The 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 = {'P': {'default': 1.0, 'default_units': 'bar', 'description': 'Pressure:', 'enumeration': (), 'format_string': '.2f', 'help_text': 'The pressure for the thermochemistry.', 'kind': 'float'}, 'T': {'default': 298.15, 'default_units': 'K', 'description': 'Temperature:', 'enumeration': (), 'format_string': '.2f', 'help_text': 'The temperature for the thermochemistry.', 'kind': 'float'}, 'use existing parameters': {'default': 'yes', 'default_units': None, 'description': 'Use existing parameters', 'enumeration': ('yes', 'no'), 'format_string': '', 'help_text': 'Whether to use existing parameters from the previous step', 'kind': 'boolean'}}#

psi4_step.thermochemistry_step module#

class psi4_step.thermochemistry_step.ThermochemistryStep(flowchart=None, gui=None)[source]#

Bases: object

Helper class needed for the stevedore integration.

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

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

my_description{str, str}

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

my_description[“description”]tuple

A description of the 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:

Thermochemistry

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:

TkThermochemistry

description()[source]#

Return a description of what this step does.

Returns:

description

Return type:

dict(str, str)

my_description = {'description': 'An interface for Thermochemistry', 'group': 'Calculation', 'name': 'Thermochemistry'}#

psi4_step.tk_accelerated_optimization module#

The graphical part of a Psi4 Accelerated Optimization node

class psi4_step.tk_accelerated_optimization.TkAcceleratedOptimization(tk_flowchart=None, node=None, canvas=None, x=120, y=20, w=200, h=50, my_logger=<Logger psi4_step.tk_accelerated_optimization (WARNING)>)[source]#

Bases: TkEnergy

create_dialog(title='Edit Psi4 Accelerated Optimization Step')[source]#

Create the edit dialog!

This is reasonably complicated, so a bit of description is in order. The superclass Energy creates the dialog along with the calculation parameters in a ‘calculation’ frame..

This method adds a second frame for controlling the optimizer.

The layout is handled in part by the Energy superclass, which handles the calculation frame. Our part is handled by two methods:

  • reset_dialog does the general layout of the main frames.

  • reset_optimization handles the layout of the optimization section.

reset_dialog(widget=None)[source]#

Layout the widgets, letting our parents go first.

reset_optimization(widget=None)[source]#
right_click(event)[source]#

Probably need to add our dialog…

psi4_step.tk_energy module#

The graphical part of a Psi4 Energy node

class psi4_step.tk_energy.TkEnergy(tk_flowchart=None, node=None, canvas=None, x=120, y=20, w=200, h=50, my_logger=<Logger psi4_step.tk_energy (WARNING)>)[source]#

Bases: TkNode

create_dialog(title='Edit Psi4 Energy Step')[source]#

Create the dialog!

reset_calculation(widget=None)[source]#
reset_convergence(widget=None)[source]#

Layout the convergence widgets as needed for the current state

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

Layout the widgets as needed for the current state

reset_plotting(widget=None)[source]#
right_click(event)[source]#

Probably need to add our dialog…

psi4_step.tk_initialization module#

The graphical part of a Psi4 Initialization node

class psi4_step.tk_initialization.TkInitialization(tk_flowchart=None, node=None, canvas=None, x=120, y=20, w=200, h=50, my_logger=<Logger psi4_step.tk_initialization (WARNING)>)[source]#

Bases: TkNode

create_dialog(title='Edit Psi4 Initialization Step')[source]#

Create the dialog!

reset_dialog(widget=None)[source]#

Reset the layout of the dialog as needed for the parameters.

In this base class this does nothing. Override as needed in the subclasses derived from this class.

right_click(event)[source]#

Probably need to add our dialog…

psi4_step.tk_optimization module#

The graphical part of a Psi4 Optimization node

class psi4_step.tk_optimization.TkOptimization(tk_flowchart=None, node=None, canvas=None, x=120, y=20, w=200, h=50, my_logger=<Logger psi4_step.tk_optimization (WARNING)>)[source]#

Bases: TkEnergy

create_dialog(title='Edit Psi4 Optimization Step')[source]#

Create the edit dialog!

This is reasonably complicated, so a bit of description is in order. The superclass Energy creates the dialog along with the calculation parameters in a ‘calculation’ frame..

This method adds a second frame for controlling the optimizer.

The layout is handled in part by the Energy superclass, which handles the calculation frame. Our part is handled by two methods:

  • reset_dialog does the general layout of the main frames.

  • reset_optimization handles the layout of the optimization section.

reset_dialog(widget=None)[source]#

Layout the widgets, letting our parents go first.

reset_optimization(widget=None)[source]#
right_click(event)[source]#

Probably need to add our dialog…

psi4_step.tk_psi4 module#

The graphical part of a Psi4 step

class psi4_step.tk_psi4.TkPsi4(tk_flowchart=None, node=None, namespace='org.molssi.seamm.psi4.tk', canvas=None, x=None, y=None, w=200, h=50)[source]#

Bases: TkNode

The graphical part of a Psi4 step in a flowchart.

namespace#

The namespace of the current step.

Type:

str

node#

The corresponding node of the non-graphical flowchart

Type:

Node

dialog#

The Pmw dialog object

Type:

Dialog

sub_tk_flowchart#

A graphical Flowchart representing a subflowchart

Type:

TkFlowchart

self[widget]#

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

Type:

dict

See also

Psi4, TkPsi4, Psi4Parameters

create_dialog()[source]#

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

See also

TkPsi4.reset_dialog

edit()[source]#

Present a dialog for editing the Psi4 input

from_flowchart(tk_flowchart=None, flowchart=None)[source]#

Recreate the graphics from the non-graphical flowchart.

This is only used in nodes that contain sub-flowcharts.

Parameters:
  • tk_flowchart (seamm.tk_Flowchart) – A graphical representation of the SEAMM Flowchart

  • flowchart (seamm.Flowchart) – A non-graphical representation of the SEAMM Flowchart

handle_dialog(result)[source]#

Handle the closing of the edit dialog

What to do depends on the button used to close the dialog. If the user closes it by clicking the ‘x’ of the dialog window, None is returned, which we take as equivalent to cancel.

Parameters:

result (None or str) – The value of this variable depends on what the button the user clicked.

handle_help()[source]#

Shows the help to the user when click on help button.

right_click(event)[source]#

Handles the right click event on the node.

See also

TkPsi4.edit

update_flowchart(tk_flowchart=None, flowchart=None)[source]#

Update the nongraphical flowchart.

This is only used in nodes that contain sub-flowcharts What to do depends on the button used to close the dialog. If the user closes it by clicking the ‘x’ of the dialog window, None is returned, which we take as equivalent to cancel.

Parameters:
  • tk_flowchart (seamm.tk_Flowchart) – A graphical representation of the SEAMM Flowchart

  • flowchart (seamm.Flowchart) – A non-graphical representation of the SEAMM Flowchart

psi4_step.tk_thermochemistry module#

The graphical part of a Thermochemistry step

class psi4_step.tk_thermochemistry.TkThermochemistry(tk_flowchart=None, node=None, canvas=None, x=None, y=None, w=200, h=50, my_logger=<Logger psi4_step.tk_thermochemistry (WARNING)>)[source]#

Bases: TkEnergy

The 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

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

Layout the widgets in the dialog.

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

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

Parameters:

widget (Tk Widget = None) –

Return type:

None

reset_thermochemistry(widget=None)[source]#

Module contents#

psi4_step A step for Psi4 in a SEAMM flowchart