Unitary Coupled Cluster Linear Response

class slowquant.unitary_coupled_cluster.linear_response.lr_baseclass.LinearResponseBaseClass(wave_function: WaveFunctionUCC, excitations: str, is_spin_conserving: bool = True)

Initialize linear response by calculating the needed matrices.

Parameters:
  • wave_function – Wave function object.

  • excitations – Which excitation orders to include in response.

  • is_spin_conserving – Use spin-conseving operators.

calc_excitation_energies() None

Calculate excitation energies.

get_excited_state_norm() ndarray

Calculate the norm of excited states.

Returns:

Norm of excited states.

get_formatted_oscillator_strength() str

Create table of excitation energies and oscillator strengths.

Parameters:

dipole_integrals – Dipole integrals (x,y,z) in AO basis.

Returns:

Nicely formatted table.

get_oscillator_strength(dipole_integrals: Sequence[ndarray]) ndarray

Calculate oscillator strength.

\[f_n = \frac{2}{3}e_n\left|\left<0\left|\hat{\mu}\right|n\right>\right|^2\]
Parameters:

dipole_integrals – Dipole integrals (x,y,z) in AO basis.

Rerturns:

Oscillator Strength.

get_transition_dipole(dipole_integrals: Sequence[ndarray]) ndarray

Calculate transition dipole moment.

Parameters:

dipole_integrals – Dipole integrals (x,y,z) in AO basis.

Returns:

Transition dipole moment.

class slowquant.unitary_coupled_cluster.linear_response.allprojected.LinearResponseUCC(wave_function: WaveFunctionUCC, excitations: str, is_spin_conserving: bool = False)

Initialize linear response by calculating the needed matrices.

Parameters:
  • wave_function – Wave function object.

  • excitations – Which excitation orders to include in response.

  • is_spin_conserving – Use spin-conseving operators.

get_transition_dipole(dipole_integrals: Sequence[ndarray]) ndarray

Calculate transition dipole moment.

Parameters:

dipole_integrals – Dipole integrals ordered as (x,y,z).

Returns:

Transition dipole moment.

class slowquant.unitary_coupled_cluster.linear_response.allselfconsistent.LinearResponseUCC(wave_function: WaveFunctionUCC, excitations: str, is_spin_conserving: bool = False)

Initialize linear response by calculating the needed matrices.

Parameters:
  • wave_function – Wave function object.

  • excitations – Which excitation orders to include in response.

  • is_spin_conserving – Use spin-conseving operators.

get_transition_dipole(dipole_integrals: Sequence[ndarray]) ndarray

Calculate transition dipole moment.

Parameters:

dipole_integrals – Dipole integrals ordered as (x,y,z).

Returns:

Transition dipole moment.

class slowquant.unitary_coupled_cluster.linear_response.allstatetransfer.LinearResponseUCC(wave_function: WaveFunctionUCC, excitations: str, is_spin_conserving: bool = False)

Initialize linear response by calculating the needed matrices.

Parameters:
  • wave_function – Wave function object.

  • excitations – Which excitation orders to include in response.

  • is_spin_conserving – Use spin-conseving operators.

get_transition_dipole(dipole_integrals: Sequence[ndarray]) ndarray

Calculate transition dipole moment.

Parameters:

dipole_integrals – Dipole integrals ordered as (x,y,z).

Returns:

Transition dipole moment.

class slowquant.unitary_coupled_cluster.linear_response.generic.LinearResponseUCC(wave_function: WaveFunctionUCC, excitations: str, operator_type: str, do_transform_orbital_rotations: bool = False, is_spin_conserving: bool = True)

Initialize generic linear response.

get_transition_dipole(dipole_integrals: Sequence[ndarray]) ndarray

Calculate transition dipole moment.

Parameters:

dipole_integrals – Dipole integrals ordered as (x,y,z).

Returns:

Transition dipole moment.

class slowquant.unitary_coupled_cluster.linear_response.naive.LinearResponseUCC(wave_function: WaveFunctionUCC, excitations: str, is_spin_conserving: bool = False)

Initialize linear response by calculating the needed matrices.

Parameters:
  • wave_function – Wave function object.

  • excitations – Which excitation orders to include in response.

  • is_spin_conserving – Use spin-conseving operators.

get_transition_dipole(dipole_integrals: Sequence[ndarray]) ndarray

Calculate transition dipole moment.

Parameters:

dipole_integrals – Dipole integrals ordered as (x,y,z).

Returns:

Transition dipole moment.

class slowquant.unitary_coupled_cluster.linear_response.projected.LinearResponseUCC(wave_function: WaveFunctionUCC, excitations: str, is_spin_conserving: bool = False)

Initialize linear response by calculating the needed matrices.

Parameters:
  • wave_function – Wave function object.

  • excitations – Which excitation orders to include in response.

  • is_spin_conserving – Use spin-conseving operators.

get_transition_dipole(dipole_integrals: Sequence[ndarray]) ndarray

Calculate transition dipole moment.

Parameters:

dipole_integrals – Dipole integrals ordered as (x,y,z).

Returns:

Transition dipole moment.

class slowquant.unitary_coupled_cluster.linear_response.projected_statetransfer.LinearResponseUCC(wave_function: WaveFunctionUCC, excitations: str, is_spin_conserving: bool = False, do_approximate_hermitification: bool = False)

Initialize linear response by calculating the needed matrices.

Parameters:
  • wave_function – Wave function object.

  • excitations – Which excitation orders to include in response.

  • is_spin_conserving – Use spin-conseving operators.

  • do_approximate_hermitification – approximated method with BqG = 0 and AqG made Hermitian

get_transition_dipole(dipole_integrals: Sequence[ndarray]) ndarray

Calculate transition dipole moment.

Parameters:

dipole_integrals – Dipole integrals ordered as (x,y,z).

Returns:

Transition dipole moment.

class slowquant.unitary_coupled_cluster.linear_response.selfconsistent.LinearResponseUCC(wave_function: WaveFunctionUCC, excitations: str, is_spin_conserving: bool = False, do_approximate_hermitification: bool = False)

Initialize linear response by calculating the needed matrices.

Parameters:
  • wave_function – Wave function object.

  • excitations – Which excitation orders to include in response.

  • is_spin_conserving – Use spin-conseving operators.

  • do_approximate_hermitification – approximated method with BqG = 0 and AqG made Hermitian

get_transition_dipole(dipole_integrals: Sequence[ndarray]) ndarray

Calculate transition dipole moment.

Parameters:

dipole_integrals – Dipole integrals ordered as (x,y,z).

Returns:

Transition dipole moment.

class slowquant.unitary_coupled_cluster.linear_response.statetransfer.LinearResponseUCC(wave_function: WaveFunctionUCC, excitations: str, is_spin_conserving: bool = False, do_approximate_hermitification: bool = False)

Initialize linear response by calculating the needed matrices.

Parameters:
  • wave_function – Wave function object.

  • excitations – Which excitation orders to include in response.

  • is_spin_conserving – Use spin-conseving operators.

  • do_approximate_hermitification – approximated method with BqG = 0 and AqG made Hermitian

get_transition_dipole(dipole_integrals: Sequence[ndarray]) ndarray

Calculate transition dipole moment.

Parameters:

dipole_integrals – Dipole integrals ordered as (x,y,z).

Returns:

Transition dipole moment.