Built-in Models

(TD)DFT with Turbomole

Implementations of the interface between turbomole and mudslide.

turbomole_is_installed()

Check if turbomole is installed by checking for environment variable TURBODIR and checking that the scripts and bin directories are available.

Returns:

True if turbomole is installed, False otherwise

class TurboControl(control_file='control', workdir=None)

Bases: object

A class to handle the control file for turbomole

pcgrad_file = 'pcgrad'
__init__(control_file='control', workdir=None)
control_file = 'control'
check_turbomole_is_installed()

Check that turbomole is installed, raise exception if not

where_is_dg(dg, absolute_path=False)

Find which file a data group is in

sdg(dg, file=None, show_keyword=False, show_body=False, show_filename_only=False, discard_comments=True, quiet=False)

Convenience function to run show data group (sdg) on a control

adg(dg, data, newline=False)

Convenience function to run add data group (adg) on a control

cpc(dest)

Copy the control file and other files to a new directory

use_weight_derivatives(use=True)

Check if weight derivatives are used in the control file

run_single(module, stdout=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>)

Run a single turbomole module

read_coords()

Read the coordinates from the control file

Returns:

(symbols, X) where symbols is a list of element symbols and X is a numpy array of shape (n_atoms, 3)

get_masses(symbols)

Get the masses of the atoms in the system

read_hessian()

Projected Hessian has a structure of $hessian (projected) 1 1 0.000 0.000 0.000 0.000 0.000 1 2 0.000 0.000 0.000 0.000 0.000 2 1 0.000 0.000 0.000 0.000 0.000 …

add_point_charges(coords: _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str], charges: _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str])

Add point charges to the control file

point_charges data group has the structure: $point_charges nocheck list pcgrad <x> <y> <z> <q> …

read_point_charge_gradients()

Read point charges and gradients from the control file

point charges in dg $point_charges gradients in dg $point_charge_gradients

Returns: (coords, charges, gradients) where coords is a numpy

array of shape (nq, 3) with coordinates in Bohr

class TMModel(states: _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str], run_turbomole_dir: str = '.', workdir_stem: str = 'run_turbomole', representation: str = 'adiabatic', reference: Any = None, expert: bool = False, turbomole_modules: Dict = None)

Bases: ElectronicModel_

A class to handle the electronic model for excited state Turbomole calculations

Initialize the electronic model.

Parameters:
  • representation (str, optional) – The representation to use (“adiabatic” or “diabatic”), by default “adiabatic”

  • reference (Any, optional) – The reference electronic state, by default None

  • nstates (int, optional) – Number of electronic states, by default 0

  • ndims (int, optional) – Number of dimensions per particle, by default 1

  • nparticles (int, optional) – Number of particles, by default 1

  • ndof (int, optional) – Total number of classical degrees of freedom, by default None

  • atom_types (List[str], optional) – List of atom types, by default None

__init__(states: _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str], run_turbomole_dir: str = '.', workdir_stem: str = 'run_turbomole', representation: str = 'adiabatic', reference: Any = None, expert: bool = False, turbomole_modules: Dict = None)

Initialize the electronic model.

Parameters:
  • representation (str, optional) – The representation to use (“adiabatic” or “diabatic”), by default “adiabatic”

  • reference (Any, optional) – The reference electronic state, by default None

  • nstates (int, optional) – Number of electronic states, by default 0

  • ndims (int, optional) – Number of dimensions per particle, by default 1

  • nparticles (int, optional) – Number of particles, by default 1

  • ndof (int, optional) – Total number of classical degrees of freedom, by default None

  • atom_types (List[str], optional) – List of atom types, by default None

apply_suggested_parameters()

Apply suggested parameters for Turbomole to work well with NAMD

This function will update the control file to ensure that Turbomole is set up to work well with NAMD, including: - using pseudowavefunction couplings with ETFs - using weight derivatives - using phaser to adjust phases

update_coords(X)

Update the coordinates in the control file

Parameters:

X – numpy array of shape (n_atoms * 3) with coordinates in Bohr

call_turbomole(outname='turbo.out') None

Call Turbomole to run the calculation

compute(X, couplings: Any = None, gradients: Any = None, reference: Any = None) None

Calls Turbomole/Turboparse to generate electronic properties including gradients, couplings, energies. For this to work, this class needs to know where the “original” files/data sit, so that they can get properly passed to Turbomole. (__init__() can get these file locations.)

clone()

Create a copy of the electronics object that owns its own resources, including disk

Major difference from deepcopy is that clone should prepare any resources that are needed for the object to be used, for example, disk access, network access, and so on. deepcopy should only copy the object in memory, not acquire resources like disk space.

Molecular Mechanics with OpenMM

OpenMM interface for mudslide

openmm_is_installed()

Check if OpenMM is installed

class OpenMM(pdb, ff, system, platform_name: str = 'Reference', properties: dict = None)

Bases: ElectronicModel_

OpenMM interface

Initialize OpenMM interface

__init__(pdb, ff, system, platform_name: str = 'Reference', properties: dict = None)

Initialize OpenMM interface

compute(X: _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str], couplings: Any = None, gradients: Any = None, reference: Any = None)

Compute energy and forces

Diabatic Scattering Models

Implementations of the one-dimensional two-state models Tully demonstrated FSSH on in Tully, J.C. <I>J. Chem. Phys.</I> 1990 <B>93</B> 1061.

class TullySimpleAvoidedCrossing(representation: str = 'adiabatic', reference: Any = None, a: float = 0.01, b: float = 1.6, c: float = 0.005, d: float = 1.0, mass: float = 2000.0)

Bases: DiabaticModel_

Tunneling through a single barrier model used in Tully’s 1990 JCP

\[\begin{split}V_{11} &= \left\{ \begin{array}{cr} A (1 - e^{Bx}) & x < 0 \\ -A (1 - e^{-Bx}) & x > 0 \end{array} \right. \\ V_{22} &= -V_{11} \\ V_{12} &= V_{21} = C e^{-D x^2}\end{split}\]

Constructor that defaults to the values reported in Tully’s 1990 JCP

__init__(representation: str = 'adiabatic', reference: Any = None, a: float = 0.01, b: float = 1.6, c: float = 0.005, d: float = 1.0, mass: float = 2000.0)

Constructor that defaults to the values reported in Tully’s 1990 JCP

V(X: _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]) _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]

\(V(x)\)

dV(x: _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]) _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]

\(\nabla V(x)\)

class TullyDualAvoidedCrossing(representation: str = 'adiabatic', reference: Any = None, a: float = 0.1, b: float = 0.28, c: float = 0.015, d: float = 0.06, e: float = 0.05, mass: float = 2000.0)

Bases: DiabaticModel_

Tunneling through a double avoided crossing used in Tully’s 1990 JCP

\[\begin{split}V_{11} &= 0 \\ V_{22} &= -A e^{-Bx^2} + E_0 \\ V_{12} &= V_{21} = C e^{-D x^2}\end{split}\]

Constructor that defaults to the values reported in Tully’s 1990 JCP

__init__(representation: str = 'adiabatic', reference: Any = None, a: float = 0.1, b: float = 0.28, c: float = 0.015, d: float = 0.06, e: float = 0.05, mass: float = 2000.0)

Constructor that defaults to the values reported in Tully’s 1990 JCP

V(X: _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]) _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]

\(V(x)\)

dV(x: _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]) _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]

\(\nabla V(x)\)

class TullyExtendedCouplingReflection(representation: str = 'adiabatic', reference: Any = None, a: float = 0.0006, b: float = 0.1, c: float = 0.9, mass: float = 2000.0)

Bases: DiabaticModel_

Model with extended coupling and the possibility of reflection. The most challenging of the models used in Tully’s 1990 JCP

\[\begin{split}V_{11} &= A \\ V_{22} &= -A \\ V_{12} &= \left\{ \begin{array}{cr} B e^{Cx} & x < 0 \\ B \left( 2 - e^{-Cx} \right) & x > 0 \end{array} \right.\end{split}\]

Constructor that defaults to the values reported in Tully’s 1990 JCP

__init__(representation: str = 'adiabatic', reference: Any = None, a: float = 0.0006, b: float = 0.1, c: float = 0.9, mass: float = 2000.0)

Constructor that defaults to the values reported in Tully’s 1990 JCP

V(X: _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]) _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]

\(V(x)\)

dV(x: _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]) _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]

\(\nabla V(x)\)

class SuperExchange(representation: str = 'adiabatic', reference: Any = None, v11: float = 0.0, v22: float = 0.01, v33: float = 0.005, v12: float = 0.001, v23: float = 0.01, mass: float = 2000.0)

Bases: DiabaticModel_

Constructor defaults to Prezhdo paper on GFSH

__init__(representation: str = 'adiabatic', reference: Any = None, v11: float = 0.0, v22: float = 0.01, v33: float = 0.005, v12: float = 0.001, v23: float = 0.01, mass: float = 2000.0)

Constructor defaults to Prezhdo paper on GFSH

V(x: _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]) _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]

\(V(x)\)

dV(x: _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]) _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]

\(\nabla V(x)\)

class SubotnikModelX(representation: str = 'adiabatic', reference: Any = None, a: float = 0.03, b: float = 1.6, c: float = 0.005, xp: float = 7.0, mass: float = 2000.0)

Bases: DiabaticModel_

Constructor defaults to Subotnik JPCA 2011 paper on decoherence

__init__(representation: str = 'adiabatic', reference: Any = None, a: float = 0.03, b: float = 1.6, c: float = 0.005, xp: float = 7.0, mass: float = 2000.0)

Constructor defaults to Subotnik JPCA 2011 paper on decoherence

V(x: _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]) _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]

\(V(x)\)

dV(x: _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]) _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]

\(\nabla V(x)\)

class SubotnikModelS(representation: str = 'adiabatic', reference: Any = None, a: float = 0.015, b: float = 1.0, c: float = 0.005, d: float = 0.5, xp: float = 7.0, mass: float = 2000.0)

Bases: DiabaticModel_

Constructor defaults to Subotnik JPCA 2011 paper on decoherence

__init__(representation: str = 'adiabatic', reference: Any = None, a: float = 0.015, b: float = 1.0, c: float = 0.005, d: float = 0.5, xp: float = 7.0, mass: float = 2000.0)

Constructor defaults to Subotnik JPCA 2011 paper on decoherence

V(x: _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]) _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]

\(V(x)\)

dV(x: _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]) _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]

\(\nabla V(x)\)

class Subotnik2D(representation: str = 'adiabatic', reference: Any = None, a: float = 0.2, b: float = 0.6, c: float = 0.015, d: float = 0.3, f: float = 0.05, g: float = 0.3, w: float = 2.0, mass: float = 2000.0)

Bases: DiabaticModel_

Constructor defaults to Subotnik JPCA 2011 paper on decoherence

__init__(representation: str = 'adiabatic', reference: Any = None, a: float = 0.2, b: float = 0.6, c: float = 0.015, d: float = 0.3, f: float = 0.05, g: float = 0.3, w: float = 2.0, mass: float = 2000.0)

Constructor defaults to Subotnik JPCA 2011 paper on decoherence

V(r: _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]) _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]

\(V(x)\)

dV(r: _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]) _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]

\(\nabla V(x)\)

class ShinMetiu(representation: str = 'adiabatic', reference: Any = None, nstates: int = 3, L: float = 19.0, Rf: float = 5.0, Rl: float = 3.1, Rr: float = 4.0, mass: float = 1836.0, m_el: float = 1.0, nel: int = 128, box: Any = None)

Bases: AdiabaticModel_

Constructor defaults to classic Shin-Metiu as described in Gossel, Liacombe, Maitra JCP 2019

__init__(representation: str = 'adiabatic', reference: Any = None, nstates: int = 3, L: float = 19.0, Rf: float = 5.0, Rl: float = 3.1, Rr: float = 4.0, mass: float = 1836.0, m_el: float = 1.0, nel: int = 128, box: Any = None)

Constructor defaults to classic Shin-Metiu as described in Gossel, Liacombe, Maitra JCP 2019

soft_coulomb(r12: _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str], gamma: floating) _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]
d_soft_coulomb(r12: _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str], gamma: floating) _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]
V_nuc(R: _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]) _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]
V_el(R: _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]) _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]
dV_nuc(R: _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]) _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]
dV_el(R: _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]) _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]
V(R: _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]) _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]

\(V(x)\)

dV(R: _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]) _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]

\(\nabla V(x)\)

class LinearVibronic(representation: str = 'adiabatic', reference: Any = None, mass: float = [243.6078782, 134.6412667, 99.93022402, 66.33593369, 3475.98736], E1: float = 8.5037, E2: float = 9.4523, lamb: float = 0.3289, r0sqrtw5mh: float = 4.35, om: float = array([0.1117, 0.2021, 0.2723, 0.4102]), k1: float = array([-0.0456, 0.0399, -0.2139, -0.0864]), k2: float = array([-0.0393, 0.0463, 0.2877, -0.1352]), An: float = array([1.4823, -0.2191, 0.0525, -0.0118]))

Bases: DiabaticModel_

Initialize the diabatic model.

Parameters:
  • representation (str, optional) – The representation to use, by default “adiabatic”

  • reference (Any, optional) – The reference electronic state, by default None

  • nstates (int, optional) – Number of electronic states, by default 0

  • ndof (int, optional) – Number of classical degrees of freedom, by default 0

__init__(representation: str = 'adiabatic', reference: Any = None, mass: float = [243.6078782, 134.6412667, 99.93022402, 66.33593369, 3475.98736], E1: float = 8.5037, E2: float = 9.4523, lamb: float = 0.3289, r0sqrtw5mh: float = 4.35, om: float = array([0.1117, 0.2021, 0.2723, 0.4102]), k1: float = array([-0.0456, 0.0399, -0.2139, -0.0864]), k2: float = array([-0.0393, 0.0463, 0.2877, -0.1352]), An: float = array([1.4823, -0.2191, 0.0525, -0.0118]))

Initialize the diabatic model.

Parameters:
  • representation (str, optional) – The representation to use, by default “adiabatic”

  • reference (Any, optional) – The reference electronic state, by default None

  • nstates (int, optional) – Number of electronic states, by default 0

  • ndof (int, optional) – Number of classical degrees of freedom, by default 0

V(X: _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]) _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]
dV(X: _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]) _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]
class SubotnikModelW(representation: str = 'adiabatic', reference: Any = None, mass: float64 = 2000.0, nstates: int = 8, eps: float64 = 0.1)

Bases: DiabaticModel_

Initialize the diabatic model.

Parameters:
  • representation (str, optional) – The representation to use, by default “adiabatic”

  • reference (Any, optional) – The reference electronic state, by default None

  • nstates (int, optional) – Number of electronic states, by default 0

  • ndof (int, optional) – Number of classical degrees of freedom, by default 0

__init__(representation: str = 'adiabatic', reference: Any = None, mass: float64 = 2000.0, nstates: int = 8, eps: float64 = 0.1)

Initialize the diabatic model.

Parameters:
  • representation (str, optional) – The representation to use, by default “adiabatic”

  • reference (Any, optional) – The reference electronic state, by default None

  • nstates (int, optional) – Number of electronic states, by default 0

  • ndof (int, optional) – Number of classical degrees of freedom, by default 0

V(X: _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]) _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]
dV(X: _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]) _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]
class SubotnikModelZ(representation: str = 'adiabatic', reference: Any = None, mass: float64 = 2000.0, nstates: int = 8, eps: float64 = 0.1)

Bases: DiabaticModel_

Initialize the diabatic model.

Parameters:
  • representation (str, optional) – The representation to use, by default “adiabatic”

  • reference (Any, optional) – The reference electronic state, by default None

  • nstates (int, optional) – Number of electronic states, by default 0

  • ndof (int, optional) – Number of classical degrees of freedom, by default 0

__init__(representation: str = 'adiabatic', reference: Any = None, mass: float64 = 2000.0, nstates: int = 8, eps: float64 = 0.1)

Initialize the diabatic model.

Parameters:
  • representation (str, optional) – The representation to use, by default “adiabatic”

  • reference (Any, optional) – The reference electronic state, by default None

  • nstates (int, optional) – Number of electronic states, by default 0

  • ndof (int, optional) – Number of classical degrees of freedom, by default 0

V(X: _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]) _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]
dV(X: _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]) _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]