Skip to main content
IBM Quantum Platform
This page is from an old version of Qiskit SDK and does not exist in the latest version. We recommend you migrate to the latest version. See the release notes for more information.

MorsePotential

class MorsePotential(molecule)

GitHub

Bases: qiskit.chemistry.algorithms.pes_samplers.potentials.potential_base.PotentialBase

Implements a 1D Morse potential.

Input units are Angstroms (distance between the two atoms), and output units are Hartrees (molecular energy).

Initializes the potential to the zero-function. fit() should be used afterwards to fit the potential to computed molecular energies.

Parameters

molecule (Molecule) – the underlying molecule.

Raises

ValueError – Only implemented for diatomic molecules


Methods

dissociation_energy

MorsePotential.dissociation_energy(scaling=1.0)

Returns the calculated dissociation energy for the current fit.

Parameters

scaling (float) – Scaling to change units. (Default is 1.0 for Hartrees)

Return type

float

Returns

calculated dissociation energy for the current fit

eval

MorsePotential.eval(x)

After fitting the data to the fit function, predict the energy at a point x.

Parameters

x (float) – value to evaluate surface in

Return type

float

Returns

value of surface in point x

fit

MorsePotential.fit(xdata, ydata, initial_vals=None, bounds_list=None)

Fits a potential to computed molecular energies.

Parameters

  • xdata (List[float]) – interatomic distance points (Angstroms)
  • ydata (List[float]) – molecular energies (Hartrees)
  • initial_vals (Optional[List[float]]) – Initial values for fit parameters. None for default. Order of parameters is d_e, alpha, r_0 and m_shift (see fit_function implementation)
  • bounds_list (Optional[Tuple[List[float], List[float]]]) – Bounds for the fit parameters. None for default. Order of parameters is d_e, alpha, r_0 and m_shift (see fit_function implementation)

Return type

None

fit_function

static MorsePotential.fit_function(x, d_e, alpha, r_0, m_shift)

Functional form of the potential.

Parameters

  • x (float) – x parameter of morse potential
  • d_e (float) – d_e parameter of morse potential
  • alpha (float) – alpha parameter of morse potential
  • r_0 (float) – r_0 parameter of morse potential
  • m_shift (float) – m_shift parameter of morse potential

Return type

float

Returns

potential functional form

fundamental_frequency

MorsePotential.fundamental_frequency()

Returns the fundamental frequency for the current fit (in s^-1).

Return type

float

Returns

fundamental frequency for the current fit

get_equilibrium_geometry

MorsePotential.get_equilibrium_geometry(scaling=1.0)

Returns the interatomic distance corresponding to minimal energy.

Parameters

scaling (float) – Scaling to change units. (Default is 1.0 for Angstroms)

Return type

float

Returns

interatomic distance corresponding to minimal energy

get_maximum_trusted_level

MorsePotential.get_maximum_trusted_level(n=0)

Returns the maximum energy level for which the particular implementation still provides a good approximation of reality.

Parameters

n (int) – vibronic mode

Return type

float

Returns

maximum_trusted_level estimated

get_minimal_energy

MorsePotential.get_minimal_energy(scaling=1.0)

Returns the smallest molecular energy for the current fit.

Parameters

scaling (float) – Scaling to change units. (Default is 1.0 for Hartrees)

Return type

float

Returns

smallest molecular energy for the current fit

get_num_modes

MorsePotential.get_num_modes()

This (1D) potential represents a single vibrational mode

Return type

int

get_trust_region

MorsePotential.get_trust_region()

The potential will usually be well-defined (even if not useful) for arbitrary x so we return a fairly large interval here. Redefine in derived classes if needed.

Return type

Tuple[float, float]

update_molecule

MorsePotential.update_molecule(molecule)

Updates the underlying molecule.

Parameters

molecule (Molecule) – chemistry molecule

Raises

ValueError – Only implemented for diatomic molecules

Return type

None

vibrational_energy_level

MorsePotential.vibrational_energy_level(n)

Returns the n-th vibrational energy level for the current fit (in Hartrees).

Parameters

n (int) – vibrational mode

Return type

float

Returns

vibrational energy level for the current fit

wave_number

MorsePotential.wave_number()

Returns the wave number for the current fit (in cm^-1).

Return type

float

Returns

wave number for the current fit

Was this page helpful?
Report a bug or request content on GitHub.