|View source on GitHub|
The SSO Hamiltonian is characterized by having distinct alpha and beta
fqe.sso_hamiltonian.SSOHamiltonian( tensors: Tuple[np.ndarray, ...], e_0: complex = (0.0 + 0.0j) ) -> None
terms and no alpha/beta mixing blocks. An example is a part of non-relativistic molecular Hamiltonians in the trotterized algorithms.
||Variable length tuple containg between one and four numpy.arrays of increasing rank. The tensors contain the n-body hamiltonian elements. Tensors up to the highest order must be included even if the lower terms are full of zeros.|
||Scalar potential associated with the Hamiltonian.|
calc_diag_transform() -> np.ndarray
Performs a unitary digaonlizing transformation of the one body term and returns that transformation.
conserve_number() -> bool
Returns True if the Hamiltonian is number conserving, else False.
diag_values() -> np.ndarray
Returns the diagonal values packed into a single dimension.
diagonal() -> bool
Returns True if the Hamiltonian is diagonal, else False.
diagonal_coulomb() -> bool
Returns True if the Hamiltonian is diagonal coloumb, else False.
dim() -> int
Returns the orbital dimension of the Hamiltonian arrays.
Returns the scalar potential of the Hamiltonian.
iht( time: float ) -> Tuple[np.ndarray, ...]
Return the matrices of the Hamiltonian prepared for time evolution.
||The time step.|
quadratic() -> bool
Returns True if the Hamiltonian is quadratic, else False.
rank() -> int
Returns the rank of the largest tensor.
tensor( rank: int ) -> np.ndarray
Returns a single nbody tensor based on its rank.
||Indexes the single nbody tensor to return.|
tensors() -> Tuple[np.ndarray, ...]
Returns all tensors in order of their rank.
transform( trans: np.ndarray ) -> np.ndarray
Tranforms the one body term using the provided matrix.
|Transformed one-body Hamiltonian as a numpy.ndarray.|