MorsePotential
class MorsePotential(molecule)
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