View source on GitHub |
Abstract class to mediate the functions of Hamiltonian with the
fqe.hamiltonians.hamiltonian.Hamiltonian(
e_0: complex = (0.0 + 0.0j)
)
emulator.
DiagonalHamiltonian, DiagonalCoulombHamiltonian, GSOHamiltonian, etc? - Since the structure of the Hamiltonian may contain symmetries which can greatly speed up operations that act up on the object, defining unique classes for each case can be a key towards making the code more efficient.
Args | |
---|---|
e_0
|
The scalar part of the Hamiltonian |
Methods
calc_diag_transform
calc_diag_transform() -> np.ndarray
Performs a unitary digaonlizing transformation of the one-body term and returns that transformation.
conserve_number
conserve_number() -> bool
Returns True if the Hamiltonian is number conserving, else False.
diag_values
diag_values() -> np.ndarray
Returns the diagonal values packed into a single dimension.
diagonal
diagonal() -> bool
Returns True if the Hamiltonian is diagonal, else False.
diagonal_coulomb
diagonal_coulomb() -> bool
Returns True if the Hamiltonian is diagonal coloumb, else False.
dim
dim() -> int
Returns the orbital dimension of the Hamiltonian arrays.
e_0
e_0()
Returns the scalar potential of the Hamiltonian.
iht
iht(
time: float
) -> Any
Return the matrices of the Hamiltonian prepared for time evolution.
Args | |
---|---|
time
|
The time step. |
quadratic
quadratic() -> bool
Returns True if the Hamiltonian is quadratic, else False.
rank
rank() -> int
Returns the rank of the largest tensor.
tensors
tensors() -> Tuple[np.ndarray, ...]
Returns all tensors in order of their rank.
transform
transform(
trans: np.ndarray
) -> np.ndarray
Tranform the one body term using the provided matrix.
Args | |
---|---|
trans
|
Unitary transformation. |
Returns | |
---|---|
Transformed one-body Hamiltonian as a numpy.ndarray. |