Hamiltonian

class siegpy.hamiltonian.Hamiltonian(potential, coord_map, filters=<siegpy.filters.WaveletFilters object>)[source]

Bases: object

A Hamiltonian has to be defined when one is interested in finding numerically the Siegert states of a potential when the eigenstates are not known analytically.

A Hamiltonian is defined by a potential and a coordinate mapping, which gives rise to extra potentials to be added, known as the Reflection-Free Complex Absorbing Potentials (RF-CAP).

Filters allowing to define the gradient and laplacian operators are also required. The default value corresponds to Daubechies Wavelet filters.

Parameters:
  • potential (Potential) – Potential studied.
  • coord_map (CoordMap) – Coordinate mapping used.
  • filters (Filters) – Filters used to define the Hamiltonian matrix.
potential
Returns:Potential considered.
Return type:Potential
coord_map
Returns:Complex scaling considered.
Return type:CoordMap
filters
Returns:Filters used to define the matrices.
Return type:Filters
gradient_matrix
Returns:Gradient matrix used to define the matrices.
Return type:2D numpy array
laplacian_matrix
Returns:Laplacian matrix used to define the matrices.
Return type:2D numpy array
magic_matrix
Returns:Magic filter matrix used to define the matrices.
Return type:2D numpy array
matrix
Returns:Hamiltonian matrix.
Return type:2D numpy array
virial_matrix
Returns:Virial operator matrix.
Return type:2D numpy array
_find_hamiltonian_matrix()[source]

Evaluate the Hamiltonian matrix.

Returns:Hamiltonian matrix.
Return type:2D numpy array
_find_virial_matrix()[source]

Evaluate the virial operator matrix.

Returns:Virial operator matrix.
Return type:2D numpy array
_build_virial_matrix(U0, U1, U2, U11)[source]

Build the matrix operator given a set of virial potentials.

Parameters:
  • U0 (numpy array) – First virial potential.
  • U1 (numpy array) – Second virial potential.
  • U2 (numpy array) – Thirs virial potential.
  • U11 (numpy array) – Fourth virial potential.
Returns:

Virial operator as a matrix.

Return type:

2D numpy array

solve(max_virial=None)[source]

Find the eigenstates of the potential and evaluate the virial for each of them. This is the main method of the Hamiltonian class.

Parameters:max_virial – Maximal virial value for a state to be considered as a Siegert state.
Returns:Basis set made of the eigenstates of the Hamiltonian.
Return type:BasisSet
_pot_to_mat(potential_values)[source]

Convert the potential values to a diagonal matrix.

Parameters:potential_values (numpy array) – Values of a potential.
Returns:Potential as a diagonal matrix.
Return type:2D numpy array