### Pysisyphus startup banner output Source: https://github.com/eljost/pysisyphus/blob/master/docs/worked_example.rst Example banner and installation information printed when pysisyphus starts. It includes the version, Python/NumPy/SciPy versions, Git commit, execution time, and citation request. ```bash d8b 888 Y8P 888 888 88888b. 888 888 .d8888b 888 .d8888b 888 888 88888b. 88888b. 888 888 .d8888b 888 "88b 888 888 88K 888 88K 888 888 888 "88b 888 "88b 888 888 88K 888 888 888 888 "Y8888b. 888 "Y8888b. 888 888 888 888 888 888 888 888 "Y8888b. 888 d88P Y88b 888 X88 888 X88 Y88b 888 888 d88P 888 888 Y88b 888 X88 88888P" "Y88888 88888P' 888 88888P' "Y88888 88888P" 888 888 "Y88888 88888P' 888 888 888 888 888 Y8b d88P Y8b d88P 888 888 "Y88P" "Y88P" 888 Version 0.5.0.post1+450.g2c1654d3 (Python 3.8.5, NumPy 1.19.2, SciPy 1.5.2) Git commit 2c1654d35d69e7b48ac4e9b00d38afd58a8bedd4 Executed at Tue Oct 6 10:08:30 2020 on 'your fancy hostname' If pysisyphus benefitted your research please cite: https://doi.org/10.1002/qua.26390 Good luck! ``` -------------------------------- ### Start interactive shell with pysisyphus Source: https://github.com/eljost/pysisyphus/blob/master/docs/nix.rst Starts an interactive shell with a pysisyphus installation. ```bash nix shell github:eljost/pysisyphus ``` -------------------------------- ### Install pysisyphus from source with git clone and pip Source: https://github.com/eljost/pysisyphus/blob/master/docs/installation.rst Clones the pysisyphus repository from GitHub into $install_dir and installs it. Use the -e flag for an editable installation to modify the code. Optional extras, such as [test], can be installed as shown in the commented line. ```bash git clone https://github.com/eljost/pysisyphus.git $install_dir cd $install_dir # Install with -e if you want an editable installation python -m pip install [-e] . # Installation of extras is also possible. 'sphinx' is only needed if you # want to build the documentation. # python -m pip install [-e] .[test] ``` -------------------------------- ### Verifying Installation with pytest Source: https://github.com/eljost/pysisyphus/blob/master/docs/installation.rst Command to run a series of quick tests to verify successful calculator setup. Requires pyscf and pytest to be installed. ```bash pytest -v --pyargs pysisyphus.tests ``` -------------------------------- ### OpenMolcas YAML configuration example Source: https://github.com/eljost/pysisyphus/blob/master/docs/calculators.rst Example YAML configuration for an OpenMolcas calculation. Requires 'inporb' pointing to a .RasOrb file and 'basis' (e.g., cc-pvdz). Simple keywords like 'cmsi', 'grad', and 'mspdft' must be given with a trailing colon. The example uses a redundant internal coordinate geometry and sets optimization threshold to 'gau'. ```yaml geom: type: redund fn: | 4 C -1.0398336639 0.0 0.0 S 0.6002429216 0.0 0.0 H -1.6321592382 -0.94139864 0.0 H -1.6321592382 0.94139864 0.0 calc: type: openmolcas basis: cc-pvdz charge: 0 mult: 1 inporb: /home/johannes/tmp/359_cmspdft/359_cmspdft.RasOrb rasscf: ciroot: 3 3 1 mdrlxroot: 2 cmsi: mcpdft: ksdft: t:pbe grad: mspdft: opt: thresh: gau ``` -------------------------------- ### Install pysisyphus from PyPI with pip Source: https://github.com/eljost/pysisyphus/blob/master/docs/installation.rst Installs the latest stable release of pysisyphus from PyPI. Optional dependencies can be installed with the [test] extra, as shown in the commented line. ```bash python -m pip install pysisyphus # Installation of additional optional dependencies is also possible # python -m pip install pysisyphus[test] ``` -------------------------------- ### Z-Matrix example Source: https://github.com/eljost/pysisyphus/blob/master/docs/coordinate_systems.rst Example of a Z-matrix coordinate file. Indexing is 1-based, so the first atom has index 1. Variable substitution is not supported in the current Z-matrix parser. ```text C N 1 1.35 H 1 1.0 2 105.0 H 2 1.4 1 105.0 3 150.0 H 2 1.4 1 110.0 3 -160.0 ``` -------------------------------- ### Legacy YAML interface example for diabatization input Source: https://github.com/eljost/pysisyphus/blob/master/docs/diabatization.rst YAML configuration defining adiabatic energies, dipole moments, quadrupole moments, and electrostatic potentials for diabatization. Includes optional fields for adiabatic labels, energy unit, and scaling factors alpha and beta. The example uses dummy values and comments explain the expected format. ```yaml # Adiabatic energies, of the states to diabatize. # # List of floats. # [V0, V1, ...] # May be absolute or relative energies. adiabatic_energies: [0.0, 0.6541, 0.7351] # Dipole moments. # # List of lists of length 5, each containing 2 integers followed by 3 floats. # [state0, state1, dpm_x, dpm_y, dpm_z] # The integers are adiabatic state indices, the 3 floats are the X, Y and Z # components of a dipole moment vector. # If both integers are the same, the 3 floats correspond to the permanent dipole moment # of a state. Otherwise, they correspond to a transition dipole moment # between two states. dipoles: [ [0, 0, -1.0, -2.0, -3.0], [1, 1, -2.0, -1.0, -3.0], [0, 1, -2.0, -1.0, -3.0], ] # # Optional input below # # Adiabatic state labels. # # List of strings. # [label1, label2, ...] # Must be of same length as adiabatic energies. adiabiatc_labels: [GS, LE, CT] # Energy unit. # # Literal["eV", "Eh"] unit: eV # Trace of primitive quadrupole moment tensor. # # List of lists of length 3, each containing 2 integers followed by 1 float. # [state0, state1, tr_qpm] = [state0, state1, (qpm_xx + qpm_yy + qpm_zz) # The same comments as for the dipole moments apply. quadrupoles: [ [0, 0, 1.0], [1, 1, -14.0], [0, 1, 33.0], ] # Quadrupole moment scaling factor alpha in 1/a₀². # # Float alpha: 10.0 # Electronic component of electrostatic potential in au epots: [ [0, 0.48], [1, 0.12], ] # Electrostatic potential scaling factor beta in a₀. # # Float beta: 1.0 ``` -------------------------------- ### EulerPC.prepare(*args, **kwargs) Source: https://github.com/eljost/pysisyphus/blob/master/docs/irc.rst Prepares the EulerPC integrator. ```APIDOC ## EulerPC.prepare(*args, **kwargs) ### Description Prepares the EulerPC integrator. ### Method Callable method ### Parameters - **args** - Required - Positional arguments. - **kwargs** - Required - Keyword arguments. ### Returns None ``` -------------------------------- ### Example .pysisyphusrc configuration for pysisyphus Source: https://github.com/eljost/pysisyphus/blob/master/docs/installation.rst Example .pysisyphusrc configuration file that registers quantum chemistry codes and utilities with pysisyphus. Each section defines the command to execute (cmd) and optional auxiliary commands (e.g., formchk_cmd, unfchk_cmd). Some programs (pyscf, turbomole, qcengine) must not have an explicit entry; they are used via their Python API or hardcoded commands. For relative commands, the binaries must be on $PATH and environment variables set by the user. ```ini # Excited state calculators [gaussian09] # Cmd to execute. Please ensure that g09 is on your $PATH. cmd=g09 formchk_cmd=formchk unfchk_cmd=unfchk [gaussian16] # Cmds to execute. Please ensure that the binaries are found in your $PATH. cmd=g16 formchk=formchk unfchk=unfchk rwfdump=rwfdump [openmolcas] # Cmd to execute. Please ensure that pymolcas is on your $PATH. cmd=pymolcas [orca] # ORCA needs the full path to its binary, so please provide the full path. cmd=/scratch/programme/orca_4_2_0_linux_x86-64_openmpi314/orca #[pyscf] # pyscf must not have an explicit entry in the .pysisyphusrc. pysisyphus uses # the python API of pyscf, so it is mandatory that is installed in the same environment # as pysisyphus. #[turbomole] # Turbomole must not have an explicit entry in the .pysisyphusrc. The user has to take # care that everything is set up correctly, e.g. TM-binaries are on the PATH etc... # The respective commands are hardcoded into pysisyphus (dscf, ridft, ricc2, ...) # Ground state calculators [mopac] # Similar to Psi4. An example is given below. cmd=/user/johannes/bin/runmopac.sh [psi4] # As the Psi4 installation without conda is, to put it slightly, tricky it was # decided to allow the installation of Psi4 into a separate conda environment. # pysisyphus then creates a Psi4 input and sends it to the (bash)-script given below # that accepts/expects one argument. It is the responsibility of the scrip to activate # the appropriate conda environment and submit the Psi4 input. An example runpsi4.sh # script is given below. cmd=/user/johannes/bin/runpsi4.sh #[qcengine] # QCEngine must not have an entry explicit entry in the .pysisyphusrc. It is used # via its python interface and can be installed as an extra with pip (see above). # The user is referenced to the QCEngine-documentation for any further questions. [xtb] # Cmd to execute. Please ensure that xtb is on your $PATH. cmd=xtb [openmolcas] # Make sure that the MOLCAS variable is set. cmd=pymolcas [cfour] # Parallelism is managed by the user by setting environment variables in the runscript, # as the name of the environment variable for MPI parallelism depends on how CFOUR_MPI_CORES # was compiled. The GENBAS file must also be symlinked by the runscript. # A sample is provided below. cmd=/home/ghjones/bin/runcfour.sh # Utilities [wfoverlap] # Cmd to execute. Please ensure that wfoverlap is on your $PATH. The binary/source # can be obtained from https://github.com/sharc-md/sharc/tree/master/bin cmd=/scratch/wfoverlap_1.0/bin/wfoverlap.x [mwfn] # Cmd to execute. Please ensure that Multiwfn is on your $PATH. Otherwise put an # absolute path here. By default pysisyphus looks up "Multiwfn", so if you would # put a relative path here you don't have to, as this is already covered by the # defaults. cmd=Multiwfn [jmol] # Cmd to execute. The same arguments apply for jmol as for Multiwfn. "jmol" is # already the default. cmd=jmol ``` -------------------------------- ### Freeze atoms with freeze_atoms Source: https://github.com/eljost/pysisyphus/blob/master/docs/coordinate_systems.rst YAML example showing how to freeze the Cartesian coordinates of specific atoms. The 'freeze_atoms_exclude' option in 'coord_kwargs' controls whether frozen atoms are excluded from the internal coordinate setup; by default they are included. ```yaml geom: type: [type] fn: [fn] freeze_atoms: [*atom indices] coord_kwargs: freeze_atoms_exclude: False # Example; fully freeze Cartesians of first and second atom. geom: type: cart fn: input.xyz freeze_atoms: [0, 1] coord_kwargs: freeze_atoms: True ``` -------------------------------- ### pysisyphus.marcus_dim.fit.setup_calc_client Source: https://github.com/eljost/pysisyphus/blob/master/docs/api/pysisyphus.marcus_dim.rst Sets up a Dask client for calculations. ```APIDOC ## Function: setup_calc_client ### Description Sets up a Dask client for calculations. ### Signature ```python setup_calc_client(geom, scheduler) ``` ### Parameters - **geom** (Geometry) - Geometry object. - **scheduler** (str) - Scheduler type. ### Returns None ``` -------------------------------- ### runcfour.sh - Load CFOUR module and run xcfour Source: https://github.com/eljost/pysisyphus/blob/master/docs/installation.rst Example script to run CFOUR. It purges modules, loads the cfour module, sets OMP_NUM_THREADS and CFOUR_MPI_CORES environment variables, creates a symbolic link to GENBAS if missing, and runs xcfour redirecting output to out.log. ```bash #!/bin/bash module purge module load cfour export OMP_NUM_THREADS=4 export CFOUR_MPI_CORES=1 # The name of this environment variable depends on how you compiled CFOUR [ ! -f GENBAS ] && ln -s /software/cfour/basis/GENBAS xcfour > out.log 2>&1 ``` -------------------------------- ### pysisyphus.intcoords.setup.setup_redundant Source: https://github.com/eljost/pysisyphus/blob/master/docs/api/pysisyphus.intcoords.rst Documentation for the setup_redundant function. ```APIDOC ## pysisyphus.intcoords.setup.setup_redundant ### Description Set up redundant internal coordinates for a molecular system. ### Signature ```python setup_redundant(atoms, coords3d, factor=1.3, define_prims=None, min_deg=15, dihed_max_deg=175, lb_min_deg=None, lb_max_bonds=4, min_weight=None, tric=False, hybrid=False, interfrag_hbonds=True, hbond_angles=False, freeze_atoms=None, define_for=None, internals_with_frozen=False, rm_for_frag: set | None = None, logger=None) ``` ### Parameters - **atoms** (list) - List of atom symbols. - **coords3d** (ndarray) - 3D coordinates of atoms. - **factor** (float, optional) - Scaling factor for bond detection. Default: 1.3. - **define_prims** (list, optional) - Additional primitives to define. - **min_deg** (float, optional) - Minimum angle in degrees. Default: 15. - **dihed_max_deg** (float, optional) - Maximum dihedral angle in degrees. Default: 175. - **lb_min_deg** (float, optional) - Minimum linear bend angle in degrees. - **lb_max_bonds** (int, optional) - Maximum number of bonds for linear bends. Default: 4. - **min_weight** (float, optional) - Minimum weight. - **tric** (bool, optional) - Use TRIC. Default: False. - **hybrid** (bool, optional) - Use hybrid. Default: False. - **interfrag_hbonds** (bool, optional) - Include interfragment hydrogen bonds. Default: True. - **hbond_angles** (bool, optional) - Include hydrogen bond angles. Default: False. - **freeze_atoms** (list, optional) - Indices of atoms to freeze. - **define_for** (list, optional) - Atoms for which to define primitives. - **internals_with_frozen** (bool, optional) - Include internals with frozen atoms. Default: False. - **rm_for_frag** (set, optional) - Set of fragments to remove. - **logger** (Logger, optional) - Logger instance. ### Returns - **coord_info** (CoordInfo) - Coordinate information. ### Example ```python from pysisyphus.intcoords.setup import setup_redundant coord_info = setup_redundant(atoms, coords3d) ``` ``` -------------------------------- ### Enter legacy dev-shell with nix-shell Source: https://github.com/eljost/pysisyphus/blob/master/docs/nix.rst Obtains a development legacy-style dev-shell. ```bash nix-shell ./nix/shell.nix ``` -------------------------------- ### pysisyphus.intcoords.setup.connect_fragments Source: https://github.com/eljost/pysisyphus/blob/master/docs/api/pysisyphus.intcoords.rst Documentation for the connect_fragments function. ```APIDOC ## pysisyphus.intcoords.setup.connect_fragments ### Description Determines the smallest interfragment bond for a list of fragments and a condensed distance matrix. This function is used to connect fragments in a molecular system. ### Signature ```python connect_fragments(cdm, fragments, max_aux=3.78, aux_factor=1.3, logger=None) ``` ### Parameters - **cdm** (ndarray) - Condensed distance matrix. - **fragments** (list) - List of fragments. - **max_aux** (float, optional) - Maximum distance for auxiliary bonds. Default: 3.78. - **aux_factor** (float, optional) - Factor for auxiliary bonds. Default: 1.3. - **logger** (Logger, optional) - Logger instance. ### Returns - **bonds** (list) - List of interfragment bonds. ### Example ```python from pysisyphus.intcoords.setup import connect_fragments bonds = connect_fragments(cdm, fragments) ``` ``` -------------------------------- ### Calculator.get_wavefunction() Source: https://github.com/eljost/pysisyphus/blob/master/docs/api/pysisyphus.rst Gets the wavefunction. ```APIDOC ## Calculator.get_wavefunction() ### Description Gets the wavefunction. ### Method get_wavefunction ### Parameters None documented. ### Returns Wavefunction. ``` -------------------------------- ### Calculator.get_energy() Source: https://github.com/eljost/pysisyphus/blob/master/docs/api/pysisyphus.rst Gets the energy. ```APIDOC ## Calculator.get_energy() ### Description Gets the energy. ### Method get_energy ### Parameters None documented. ### Returns Energy value. ``` -------------------------------- ### Inline input example Source: https://github.com/eljost/pysisyphus/blob/master/docs/coordinate_systems.rst Inline coordinates for XYZ format, expected in Å. Proper indentation is required. This example yields redundant internal coordinates (RIC) for the hydrogen molecule (1 bond). ```yaml geom: type: redund fn: | 2 H 0.0 0.0 0.0 H 0.0 0.0 0.7 ``` -------------------------------- ### pysisyphus.intcoords.setup.CoordInfo Source: https://github.com/eljost/pysisyphus/blob/master/docs/api/pysisyphus.intcoords.rst Documentation for the CoordInfo named tuple class. ```APIDOC ## pysisyphus.intcoords.setup.CoordInfo ### Description A named tuple that stores the indices and types of internal coordinates for a molecular system. It is returned by the setup functions and provides access to the various coordinate sets via field names. ### Fields - **bonds** (tuple) - Indices of bond primitives. - **hydrogen_bonds** (tuple) - Indices of hydrogen bond primitives. - **interfrag_bonds** (tuple) - Indices of interfragment bond primitives. - **aux_interfrag_bonds** (tuple) - Indices of auxiliary interfragment bond primitives. - **bends** (tuple) - Indices of bend primitives. - **linear_bends** (tuple) - Indices of linear bend primitives. - **linear_bend_complements** (tuple) - Indices of linear bend complement primitives. - **proper_dihedrals** (tuple) - Indices of proper dihedral primitives. - **improper_dihedrals** (tuple) - Indices of improper dihedral primitives. - **translation_inds** (tuple) - Indices of translation coordinates. - **rotation_inds** (tuple) - Indices of rotation coordinates. - **cartesian_inds** (tuple) - Indices of Cartesian coordinates. - **typed_prims** (tuple) - Typed primitive definitions. - **fragments** (tuple) - Fragment definitions. ### Example ```python from pysisyphus.intcoords.setup import CoordInfo info = CoordInfo(bonds, hydrogen_bonds, interfrag_bonds, aux_interfrag_bonds, bends, linear_bends, linear_bend_complements, proper_dihedrals, improper_dihedrals, translation_inds, rotation_inds, cartesian_inds, typed_prims, fragments) ``` ``` -------------------------------- ### Calculator.get_relaxed_density() Source: https://github.com/eljost/pysisyphus/blob/master/docs/api/pysisyphus.rst Gets the relaxed density. ```APIDOC ## Calculator.get_relaxed_density() ### Description Gets the relaxed density. ### Method get_relaxed_density ### Parameters None documented. ### Returns Relaxed density. ``` -------------------------------- ### runmopac.sh - Load MOPAC module and run MOPAC2016 Source: https://github.com/eljost/pysisyphus/blob/master/docs/installation.rst Example script to run MOPAC. It purges modules, loads the mopac module, and executes MOPAC2016.exe with the input file as the first argument. ```bash #!/bin/bash module purge module load mopac MOPAC2016.exe $1 ``` -------------------------------- ### RFOptimizer YAML input example Source: https://github.com/eljost/pysisyphus/blob/master/docs/min_optimization.rst Example YAML input for the RFOptimizer, showing the most important options under the opt, calc, and geom sections. The calc section uses a turbomole calculation with excited state tracking (track: True, ovlp_type: tden) and a prepared control path. The geom section specifies a redundant coordinate system with the cytosin.xyz file. ```yaml opt: type: rfo # Optimization algorithm max_cycles: 50 # Maximum number of optimization cycles overachieve_factor: 2 # Indicate convergence, regardless of the # proposed step when max(grad) and rms(grad) # are overachieved by factor [n] do_hess: True # Calculate the hessian at the final geometry # after the optimization. #hessian_recalc: None # Recalculate exact hessian every n-th cylce #hessian_recalc_adapt: None # Expects a float. Recalculate exact hessian # whenever the gradient norms drops below # 1/[n] of the gradient norm at the last hessian # recalculation. #hessian_init: fischer # Type of model hessian. Other options are: 'calc, # simple, xtb, lindh, swart, unit' #hessian_update: bfgs # Hessian-update. Other options are: 'flowchart, # damped_bfgs, bofill'. bofill is not recommended # for minimum searches. #small_eigval_thresh: 1e-8 # Neglect eigenvalues and corresponding eigenvectors # below this threshold. #max_micro_cycles: 50 # No. of micro cycles for the RS-variants. Does not apply # to TRIM. #trust_radius: 0.3 # Initial trust radius. #trust_max: 1.0 # Max. trust radius #trust_min: 0.1 # Min. trust radius #line_search: True # Do line search #gdiis_thresh: 0.0025 # May do GDIIS if rms(step) falls below this threshold #gediis_thresh: 0.01 # May do GEDIIS if rms(grad) falls below this threshold #gdiis: True # Do controlled GDIIS after 'gdiis_thresh' is reached #gediis: False # Do GEDIIS after 'gediis_thresh' is reached calc: type: turbomole control_path: control_path_pbe0_def2svp_s1 # Path to the prepared calculation track: True # Activate excited state tracking ovlp_type: tden # Track with transition density matrix overlaps charge: 0 mult: 1 pal: 4 mem: 2000 geom: type: redund fn: cytosin.xyz ``` -------------------------------- ### Calculator.get_num_hessian() Source: https://github.com/eljost/pysisyphus/blob/master/docs/api/pysisyphus.rst Gets the numerical Hessian. ```APIDOC ## Calculator.get_num_hessian() ### Description Gets the numerical Hessian. ### Method get_num_hessian ### Parameters None documented. ### Returns Numerical Hessian matrix. ``` -------------------------------- ### List of pysisyphus entry points Source: https://github.com/eljost/pysisyphus/blob/master/docs/overview.rst Shows the available command-line entry points: pysis for calculations, pysisplot for plotting, and pysistrj for manipulating trajectory files. Use with -h or --help to see available commands. ```bash # Run calculations (Minima optimization, TS search, IRC, NEB, GS, ...) pysis # Plotting of path-energies, optimization progress, IRC progress, etc ... pysisplot # Manipulate a .trj file or multiple .xyz files pysistrj ``` -------------------------------- ### get_forces Source: https://github.com/eljost/pysisyphus/blob/master/docs/calculators.rst Method to get forces. ```APIDOC ## get_forces(atoms, coords, **prepare_kwargs) ### Description Get forces for given atoms and coordinates. Meant to be extended. ### Parameters - **atoms** - Required - Atoms object. - **coords** - Required - Coordinates. - **prepare_kwargs** - Additional preparation keyword arguments. ``` -------------------------------- ### LEPSExpr.__init__ Source: https://github.com/eljost/pysisyphus/blob/master/docs/api/pysisyphus.calculators.rst Constructor for LEPSExpr. ```APIDOC ## LEPSExpr.__init__() ### Description Generates sympy expression for various LEPS potentials. ``` -------------------------------- ### get_energy Source: https://github.com/eljost/pysisyphus/blob/master/docs/calculators.rst Method to get the energy. ```APIDOC ## get_energy(atoms, coords, **prepare_kwargs) ### Description Get the energy for given atoms and coordinates. Meant to be extended. ### Parameters - **atoms** - Required - Atoms object. - **coords** - Required - Coordinates. - **prepare_kwargs** - Additional preparation keyword arguments. ``` -------------------------------- ### get_all_energies Source: https://github.com/eljost/pysisyphus/blob/master/docs/calculators.rst Method to get all energies. ```APIDOC ## get_all_energies(atoms, coords, **prepare_kwargs) ### Description Get all energies (including excited states) for given atoms and coordinates. ### Parameters - **atoms** - Required - Atoms object. - **coords** - Required - Coordinates. - **prepare_kwargs** - Additional preparation keyword arguments. ``` -------------------------------- ### run(geom, temperature, nu_thresh=100, npoints=4, step_size=0.4, logger=, out_dir='.') Source: https://github.com/eljost/pysisyphus/blob/master/docs/api/pysisyphus.partfuncs.rst Main driver for partition function calculation. ```APIDOC ## run(geom, temperature, nu_thresh=100, npoints=4, step_size=0.4, logger=, out_dir='.') ### Description Driver for partition function calculation. ### Parameters - **geom** (Geometry) - Required - Geometry object. - **temperature** (float) - Required - Temperature in Kelvin. - **nu_thresh** (float) - Optional - Wavenumber threshold in cm⁻¹ that determines for which normal modes corrected partition functions will be calculated. Defaults to 100. - **npoints** (int) - Optional - Number of points per side for the displacements. Overall (2 * npoints * nmodes + 1) calculations will be done. The + 1 comes from one calculation at the initial geometry. Defaults to 4. - **step_size** (float) - Optional - Step size in Bohr between two points along the 1d displacement. Defaults to 0.4. - **logger** (Logger) - Optional - Optional logger. - **out_dir** (str | Path) - Optional - Output directory. Defaults to '.'. ### Returns - **all_part_funcs** (list[PartitionFunctions]) - List of PartitionFunctions objects, containing corrected partition functions and additional information. ``` -------------------------------- ### Define additional primitives with define_prims Source: https://github.com/eljost/pysisyphus/blob/master/docs/coordinate_systems.rst YAML examples showing how to request additional internal coordinates. A nested list is expected. The first three examples define the same bond between atoms 4 and 7; the last adds a dihedral. ```yaml # General structure (list of coordinate lists) define_prims: [[PrimType or Shortcut], *[atom indices], ...] # Examples # Additional bond between atoms 4 and 7 (0-based indexing). # All three lines below result in the same bond; the latter two use shortcuts. define_prims: [[0, 4, 7]] define_prims: [[B, 4, 7]] define_prims: [[BOND, 4, 7]] # Wrong specification (forgot outer list/brackets): define_prims: [0, 4, 7] # Also define an additional dihedral, beside the bond define_prims: [[0, 4, 7], ["D", 0, 1, 2, 3]] ``` -------------------------------- ### Build pysisyphus with nix-build Source: https://github.com/eljost/pysisyphus/blob/master/docs/nix.rst Builds pysisyphus in the legacy nix style. ```bash nix-build ./nix/default.nix ``` -------------------------------- ### Turbomole.prepare_input(atoms, coords, calc_type, point_charges=None) Source: https://github.com/eljost/pysisyphus/blob/master/docs/calculators.rst Prepares the input for a Turbomole calculation. Constructs the base command dynamically and selects the appropriate binary. ```APIDOC ## Turbomole.prepare_input(atoms, coords, calc_type, point_charges=None) ### Description Prepares the input for a Turbomole calculation. Constructs the base command dynamically and selects the appropriate binary. ### Method `prepare_input` ### Parameters - **atoms** (object) - Required - The molecular structure. - **coords** (array) - Required - The coordinates of the atoms. - **calc_type** (str) - Required - The type of calculation. - **point_charges** (list) - Optional - List of point charges. ### Returns - Prepared input data ``` -------------------------------- ### pysisyphus.config.get_cmd Source: https://github.com/eljost/pysisyphus/blob/master/docs/api/pysisyphus.rst Function to get a command from the configuration. ```APIDOC ## pysisyphus.config.get_cmd ### Description Retrieves the command for a given section and key from the configuration. ### Signature `pysisyphus.config.get_cmd(section, key='cmd', use_defaults=True, silent=False)` ### Parameters - **section** (str) - Required - The configuration section. - **key** (str, optional) - The configuration key. Defaults to 'cmd'. - **use_defaults** (bool, optional) - Whether to use default values. Defaults to True. - **silent** (bool, optional) - Whether to suppress output. Defaults to False. ### Returns - **str** - The command string. ``` -------------------------------- ### get_redistribution_func Source: https://github.com/eljost/pysisyphus/blob/master/docs/api/pysisyphus.wavefunction.rst Function to get redistribution function. ```APIDOC ## pysisyphus.wavefunction.dma.get_redistribution_func ### Description Returns a redistribution function for multipoles. ### Parameters - **sites** (ndarray) - Expansion sites. - **site_radii** (ndarray) - Radii of sites. - **distributed_multipoles** (ndarray) - Distributed multipoles. ### Returns - **callable** - Redistribution function. ``` -------------------------------- ### get_binom_lmkq Source: https://github.com/eljost/pysisyphus/blob/master/docs/api/pysisyphus.wavefunction.rst Function to get binomial-coefficient prefactor. ```APIDOC ## pysisyphus.wavefunction.dma.get_binom_lmkq ### Description Returns binomial-coefficient prefactor required for translating multipoles. ### Parameters - **L_max** (int, optional) - Maximum angular momentum, default 2. ### Returns - **ndarray** - Prefactor array. ``` -------------------------------- ### IMKMod.step() Source: https://github.com/eljost/pysisyphus/blob/master/docs/irc.rst Performs one IMKMod integration step. ```APIDOC ## IMKMod.step() ### Description Performs one IMKMod integration step. ### Method Callable method ### Parameters None ### Returns None ``` -------------------------------- ### Turbomole.make_molden(path) Source: https://github.com/eljost/pysisyphus/blob/master/docs/calculators.rst Static method to create a molden file from a Turbomole output. ```APIDOC ## Turbomole.make_molden(path) ### Description Static method to create a molden file from a Turbomole output. ### Method `make_molden` ### Parameters - **path** (str) - Required - Path to the output file. ### Returns None ``` -------------------------------- ### get_W Source: https://github.com/eljost/pysisyphus/blob/master/docs/api/pysisyphus.wavefunction.rst Function to get multipole-shift matrix. ```APIDOC ## pysisyphus.wavefunction.dma.get_W ### Description Returns the multipole-shift matrix W. ### Parameters - **xyz** (ndarray) - Coordinates. - **lmkq** (ndarray) - Angular momentum and quantum numbers. - **L_max** (int, optional) - Maximum angular momentum, default 2. ### Returns - **ndarray** - Multipole-shift matrix. ``` -------------------------------- ### ORCA.__init__ Source: https://github.com/eljost/pysisyphus/blob/master/docs/calculators.rst Initializes the ORCA calculator with keywords, blocks, and optional settings for stability analysis, numerical frequencies, and wavefunction dumping. ```APIDOC ## ORCA.__init__ ### Description Initializes the ORCA calculator with the given keyword line and optional block input. Handles PAL and memory settings separately. ### Method Constructor ### Signature `ORCA(keywords, blocks='', gbw=None, do_stable=False, numfreq=False, json_dump=None, wavefunction_dump=True, **kwargs)` ### Parameters - **keywords** (str) - Required - Keyword line, as normally given in ORCA, excluding the leading "!". - **blocks** (str, optional) - ORCA block input(s), e.g. for TD-DFT calculations (%tddft ... end). Must be wrapped in quotes. - **gbw** (str, optional) - Path to an input gbw file used as initial guess for the first calculation. - **do_stable** (bool, optional) - Run stability analysis until a stable wavefunction is obtained before every calculation. - **numfreq** (bool, optional) - Use numerical frequencies instead of analytical ones. - **json_dump** (bool, optional, deprecated) - Use 'wavefunction_dump' instead. - **wavefunction_dump** (bool, optional) - Whether to dump the wavefunction to BSON via orca_2json. ### Notes - The PAL and memory inputs must not be given in keywords or blocks, as they are handled by the 'pal' and 'memory' arguments. ``` -------------------------------- ### ol_sph_size Source: https://github.com/eljost/pysisyphus/blob/master/docs/api/pysisyphus.wavefunction.rst Function to get the spherical size. ```APIDOC ## pysisyphus.wavefunction.backend_numba.ol_sph_size ### Description Returns the spherical size of an object. ### Function Signature ```python ol_sph_size(self) ``` ### Parameters - **self** (object) - Required - The object. ### Returns - Integer representing the spherical size. ``` -------------------------------- ### ol_cart_size Source: https://github.com/eljost/pysisyphus/blob/master/docs/api/pysisyphus.wavefunction.rst Function to get the Cartesian size. ```APIDOC ## pysisyphus.wavefunction.backend_numba.ol_cart_size ### Description Returns the Cartesian size of an object. ### Function Signature ```python ol_cart_size(self) ``` ### Parameters - **self** (object) - Required - The object. ### Returns - Integer representing the Cartesian size. ``` -------------------------------- ### Calculator.prepare Source: https://github.com/eljost/pysisyphus/blob/master/docs/calculators.rst Prepares a temporary directory and writes input. Similar to prepare_path, but the input is also written into the prepared directory. ```APIDOC ## Calculator.prepare ### Description Prepares a temporary directory and writes input. Similar to prepare_path, but the input is also written into the prepared directory. ### Method Method ### Signature ```python prepare(inp) ``` ### Parameters - **inp** (str) - The input content to write. ``` -------------------------------- ### Show driver help for pysisyphus.diabatization.driver Source: https://github.com/eljost/pysisyphus/blob/master/docs/diabatization.rst Show the command-line help for the new diabatization driver. Lists all available options, including --states, --triplets, --ovlp, --dia, --temperature, --pekar, --cube, --grid-points, and --out-dir. The ground state is index 0. ```shell $ python -m pysisyphus.diabatization.driver -h usage: driver.py [-h] --states STATES [STATES ...] [--triplets] [--ovlp] [--dia DIA [DIA ...]] [-T TEMPERATURE] [-C PEKAR] [--cube CUBE [CUBE ...]] [--grid-points GRID_POINTS] [--out-dir OUT_DIR] orca_outs [orca_outs ...] positional arguments: orca_outs --states STATES [STATES ...] Adiabatic state indices to use in the diabatization process. The GS corresponds to 0. --triplets Flag to indicate if the calculation contains singlet-triplet excitations. --ovlp Determine states from tden-overlaps between steps. --dia DIA [DIA ...] Available diabatization algorithms: EDMISTON_RUEDENBERG, EDMISTON_RUEDENBERG_ETA, BOYS, HALF. -T TEMPERATURE, --temperature TEMPERATURE Temperature in K. Only required for EDMISTON_RUEDENBERG_ETA. -C PEKAR, --pekar PEKAR Pekar factor. Only required for EDMISTON_RUEDENBERG_ETA. --cube CUBE [CUBE ...] Available cubes (DA: detachment/attachment, SD: spin density): ADIA_DA, DIA_DA, ADIA_SD, DIA_SD, SD. --grid-points GRID_POINTS Number of grid points per cube axis. --out-dir OUT_DIR Write the generated files to this directory. Defaults to the cwd ('.'). ``` -------------------------------- ### get_driver Source: https://github.com/eljost/pysisyphus/blob/master/docs/calculators.rst Method to get the driver function. ```APIDOC ## get_driver(step, mol=None, mf=None) ### Description Get the driver function for a given step. ### Parameters - **step** (str) - Required - Step name (e.g., 'scf', 'dft'). - **mol** - Optional - Molecule object. - **mf** - Optional - Mean-field object. ``` -------------------------------- ### Calculator.prepare() Source: https://github.com/eljost/pysisyphus/blob/master/docs/api/pysisyphus.rst Prepares the calculator for a run. ```APIDOC ## Calculator.prepare() ### Description Prepares the calculator for a run. ### Method prepare ### Parameters None documented. ### Returns None ``` -------------------------------- ### Optimizer.get_run_generator Source: https://github.com/eljost/pysisyphus/blob/master/docs/min_optimization.rst Method to get a run generator. ```APIDOC ## Optimizer.get_run_generator() ### Description Get a run generator. ``` -------------------------------- ### Preoptimization console output with force summaries and geometry files Source: https://github.com/eljost/pysisyphus/blob/master/docs/worked_example.rst Console output from a pysisyphus run showing two preoptimization steps (first and last) with convergence criteria, force summaries, and final energies. After each preoptimization, the optimized geometry is written to a file (e.g., 'first_pre_final_geometry.xyz' and 'first_preopt.xyz'). The output includes RMSD values with the initial geometry and notes that preoptimizations are followed by the GS optimization. ```bash ################################# # RUNNING FIRST PREOPTIMIZATION # ################################# Spent 0.0 s preparing the first cycle. cycle max(force) rms(force) max(step) rms(step) s/cycle 0 0.000080 0.000010 0.027005 0.003934 0.1 Converged! Final summary: max(forces, internal): 0.000080 hartree/(bohr,rad) rms(forces, internal): 0.000010 hartree/(bohr,rad) max(forces,cartesian): 0.000063 hartree/bohr rms(forces,cartesian): 0.000015 hartree/bohr energy: -52.35197394 hartree Wrote final, hopefully optimized, geometry to 'first_pre_final_geometry.xyz' Preoptimization of first geometry converged! Saved final preoptimized structure to 'first_preopt.xyz'. RMSD with initial geometry: 0.000000 au ################################ # RUNNING LAST PREOPTIMIZATION # ################################ Spent 0.0 s preparing the first cycle. cycle max(force) rms(force) max(step) rms(step) s/cycle 0 0.000188 0.000025 0.002310 0.000592 0.1 Converged! Final summary: max(forces, internal): 0.000188 hartree/(bohr,rad) rms(forces, internal): 0.000025 hartree/(bohr,rad) max(forces,cartesian): 0.000182 hartree/bohr rms(forces,cartesian): 0.000032 hartree/bohr energy: -52.39960456 hartree Wrote final, hopefully optimized, geometry to 'last_pre_final_geometry.xyz' Preoptimization of last geometry converged! Saved final preoptimized structure to 'last_preopt.xyz'. RMSD with initial geometry: 0.000000 au ``` -------------------------------- ### Calculator.get_cmd Source: https://github.com/eljost/pysisyphus/blob/master/docs/calculators.rst Gets the command for running the calculation. ```APIDOC ## Calculator.get_cmd ### Description Gets the command for running the calculation. ### Method Method ### Signature ```python get_cmd(key='cmd') ``` ### Parameters - **key** (str, default='cmd') - The key for the command. ### Returns - **cmd** (str) - The command string. ``` -------------------------------- ### conf_thresh Source: https://github.com/eljost/pysisyphus/blob/master/docs/api/pysisyphus.calculators.rst Property to get the configuration threshold. ```APIDOC ## conf_thresh (property) ### Description Returns the configuration threshold. ### Method `conf_thresh` (property) ### Parameters None. ### Returns - **conf_thresh** (float) - The configuration threshold. ``` -------------------------------- ### make_molden(path) Source: https://github.com/eljost/pysisyphus/blob/master/docs/api/pysisyphus.calculators.rst Static method to create a Molden file. ```APIDOC ## make_molden(path) (static) ### Description Creates a Molden file at the given path. ### Method `make_molden` (static) ### Parameters - **path** (str) - Required - The path to the Molden file. ### Returns None. ``` -------------------------------- ### pysisyphus.intcoords.setup.get_fragments Source: https://github.com/eljost/pysisyphus/blob/master/docs/api/pysisyphus.intcoords.rst Documentation for the get_fragments function. ```APIDOC ## pysisyphus.intcoords.setup.get_fragments ### Description Determine molecular fragments from atomic coordinates and bond information. ### Signature ```python get_fragments(atoms, coords, bond_inds=None, bond_factor=1.3, ignore_atom_inds=None, ignore_bonds=None, with_unconnected_atoms=False) ``` ### Parameters - **atoms** (list) - List of atom symbols. - **coords** (ndarray) - Atomic coordinates. - **bond_inds** (ndarray, optional) - Indices of bonds. - **bond_factor** (float, optional) - Scaling factor for bond detection. Default: 1.3. - **ignore_atom_inds** (list, optional) - Indices of atoms to ignore. - **ignore_bonds** (list, optional) - Bonds to ignore. - **with_unconnected_atoms** (bool, optional) - Whether to include unconnected atoms. Default: False. ### Returns - **fragments** (list) - List of fragments. ### Example ```python from pysisyphus.intcoords.setup import get_fragments fragments = get_fragments(atoms, coords) ``` ``` -------------------------------- ### PySCF.get_chkfiles() Source: https://github.com/eljost/pysisyphus/blob/master/docs/api/pysisyphus.calculators.rst Method to get checkpoint files. ```APIDOC ## PySCF.get_chkfiles() ### Description Gets checkpoint files. ### Method `get_chkfiles` ### Returns - Dictionary of checkpoint files. ```