Hamiltonian

class ttnopt.Hamiltonian(system_size: int, spin_size: List[str], model: str, interaction_indices: List[List[int]], interaction_coefs: List[List[float]], magnetic_field_X_indices: List[int] | None = None, magnetic_field_X: List[float] | None = None, magnetic_field_Y_indices: List[int] | None = None, magnetic_field_Y: List[float] | None = None, magnetic_field_Z_indices: List[int] | None = None, magnetic_field_Z: List[float] | None = None, ion_anisotropy_indices: List[int] | None = None, ion_anisotropy: List[float] | None = None, dzyaloshinskii_moriya_X_indices: List[List[int]] | None = None, dzyaloshinskii_moriya_X: List[float] | None = None, dzyaloshinskii_moriya_Y_indices: List[List[int]] | None = None, dzyaloshinskii_moriya_Y: List[float] | None = None, dzyaloshinskii_moriya_Z_indices: List[List[int]] | None = None, dzyaloshinskii_moriya_Z: List[float] | None = None, sod_X_indices: List[List[int]] | None = None, sod_X: List[float] | None = None, sod_Y_indices: List[List[int]] | None = None, sod_Y: List[float] | None = None, sod_Z_indices: List[List[int]] | None = None, sod_Z: List[float] | None = None)[source]

Bases: object

A class for Hamiltonian. This class is used to store Hamiltonian as a List of Observable.

__init__(system_size: int, spin_size: List[str], model: str, interaction_indices: List[List[int]], interaction_coefs: List[List[float]], magnetic_field_X_indices: List[int] | None = None, magnetic_field_X: List[float] | None = None, magnetic_field_Y_indices: List[int] | None = None, magnetic_field_Y: List[float] | None = None, magnetic_field_Z_indices: List[int] | None = None, magnetic_field_Z: List[float] | None = None, ion_anisotropy_indices: List[int] | None = None, ion_anisotropy: List[float] | None = None, dzyaloshinskii_moriya_X_indices: List[List[int]] | None = None, dzyaloshinskii_moriya_X: List[float] | None = None, dzyaloshinskii_moriya_Y_indices: List[List[int]] | None = None, dzyaloshinskii_moriya_Y: List[float] | None = None, dzyaloshinskii_moriya_Z_indices: List[List[int]] | None = None, dzyaloshinskii_moriya_Z: List[float] | None = None, sod_X_indices: List[List[int]] | None = None, sod_X: List[float] | None = None, sod_Y_indices: List[List[int]] | None = None, sod_Y: List[float] | None = None, sod_Z_indices: List[List[int]] | None = None, sod_Z: List[float] | None = None)[source]
Parameters:
  • system_size (int) – The size of the system, indicating the number of sites or particles.

  • spin_size (List[str]) – A list of spin types or values, each corresponding to the spin state of each site in the system.

  • model (str) – The type of Hamiltonian model, which determines the specific interactions and parameters used (e.g., “Heisenberg”, “Ising”).

  • interaction_indices (List[List[int]]) – A nested list of integer pairs, where each sub-list specifies two indices corresponding to sites or particles between which an interaction occurs.

  • interaction_coefs (List[List[float]]) – A nested list where each sub-list contains the coefficients for the interactions specified in interaction_indices, defining the strength and nature of each interaction.

  • magnetic_field_indices (Optional[List[int]], optional) – A list of site indices at which the magnetic field is applied. If None, no magnetic field is applied to any specific site. Defaults to None.

  • magnetic_field (Optional[List[float]], optional) – A list of magnetic field strengths, where each value corresponds to a specific site defined in magnetic_field_indices. Defaults to None.

  • magnetic_field_axis (Optional[str], optional) – The axis along which the magnetic field is applied, specified as a string (“x”, “y”, or “z”). Defaults to None.

  • ion_anisotropy_indices (Optional[List[int]], optional) – A list of indices specifying the sites with single-ion anisotropy. Defaults to None.

  • ion_anisotropy (Optional[List[float]], optional) – A list of single-ion anisotropy values corresponding to each site specified in ion_anisotropy_indices. Defaults to None.

  • dzyaloshinskii_moriya_indices (Optional[List[List[int]]], optional) – A nested list of integer pairs, where each sub-list specifies two indices corresponding to sites with Dzyaloshinskii-Moriya (DM) interaction. Defaults to None.

  • dzyaloshinskii_moriya (Optional[List[List[float]]], optional) – A list of DM interaction strengths, where each value corresponds to the pair specified in dzyaloshinskii_moriya_indices. Defaults to None.

  • sod_indices (Optional[List[List[int]]], optional) – A nested list of integer pairs, where each sub-list specifies two indices two indices corresponding to sites with second-order symmetric off-diagonal anisotropy interaction. Defaults to None.

  • sod (Optional[List[List[float]]], optional) – A list of SOD interaction strengths, where each value corresponds to the pair specified in sod_indices. Defaults to None.