ttnopt.src package
Submodules
ttnopt.src.DataEngine module
- class ttnopt.src.DataEngine.DataEngine(psi: TreeTensorNetwork, max_bond_dim: int)[source]
Bases:
TwoSiteUpdater
ttnopt.src.GroundStateSearch module
- class ttnopt.src.GroundStateSearch.GroundStateSearch(psi: TreeTensorNetwork, hamiltonian: Hamiltonian, init_bond_dim: int = 4, max_bond_dim: int = 16, energy_degeneracy_threshold: float = 1e-13, entanglement_degeneracy_threshold: float = 0.1)[source]
Bases:
PhysicsEngineA class for ground state search algorithm based on DMRG. :param psi: The quantum state. :type psi: TreeTensorNetwork :param hamiltonians: Hamiltonian which is list of Observable. :type hamiltonians: Hamiltonian :param init_bond_dim: Initial bond dimension. Defaults to 4. :type init_bond_dim: int, optional :param max_bond_dim: Maximum bond dimension. Defaults to 16. :type max_bond_dim: int, optional
- run(opt_structure: int = 0, energy_convergence_threshold: float = 1e-08, entanglement_convergence_threshold: float = 1e-08, max_num_sweep: int = 10, converged_count: int = 2, eval_onesite_expval: bool = False, eval_twosite_expval: bool = False, temperature: float = 0.0, tau: int = 0)[source]
Run DMRG algorithm.
- Parameters:
opt_structure (bool, optional) – If optimize the tree structure or not. Defaults to False.
energy_convergence_threshold (float, optional) – Energy threshold for convergence. Defaults to 1e-8.
entanglement_convergence_threshold (float, optional) – Entanglement entropy threshold for automatic optimization. Defaults to 1e-8.
converged_count (int, optional) – Converged count. Defaults to 1.
eval_onesite_expval (bool) – If evaluate one-site expectation value or not.
eval_twosite_expval (bool) – If evaluate two-site expectation value or not.
ttnopt.src.GroundStateSearchSparse module
- class ttnopt.src.GroundStateSearchSparse.GroundStateSearchSparse(psi: TreeTensorNetwork, hamiltonian: Hamiltonian, u1_num: int | str, init_bond_dim: int = 4, max_bond_dim: int = 16, energy_degeneracy_threshold: float = 1e-13, entanglement_degeneracy_threshold: float = 0.1)[source]
Bases:
PhysicsEngineSparseA class for ground state search algorithm based on DMRG using Sparse Tensor. :param psi: The quantum state. :type psi: TreeTensorNetwork :param hamiltonians: Hamiltonian which is list of Observable. :type hamiltonians: Hamiltonian :param u1_num: The number of preserving total spin in U(1) symmetry. :type u1_num: str :param init_bond_dim: Initial bond dimension. Defaults to 4. :type init_bond_dim: int, optional :param max_bond_dim: Maximum bond dimension. Defaults to 16. :type max_bond_dim: int, optional :param truncation_error: Maximum truncation error. Defaults to 1e-11. :type truncation_error: float, optional
- run(opt_structure: int = 0, energy_convergence_threshold: float = 1e-10, entanglement_convergence_threshold: float = 1e-10, max_num_sweep: int = 10, converged_count: int = 2, eval_onesite_expval: bool = False, eval_twosite_expval: bool = False, sz_sign: int = 0, temperature: float = 0.0, tau: int = 1)[source]
Run Ground State Search algorithm using Sparse Tensor with total spin.
- Parameters:
opt_structure (bool, optional) – If optimize the tree structure or not. Defaults to False.
energy_convergence_threshold (float, optional) – Energy threshold for convergence. Defaults to 1e-8.
entanglement_convergence_threshold (float, optional) – Entanglement entropy threshold for automatic optimization. Defaults to 1e-8.
converged_count (int, optional) – Converged count. Defaults to 1.
eval_onesite_expval (bool) – If evaluate one-site expectation value or not.
eval_twosite_expval (bool) – If evaluate two-site expectation value or not.
ttnopt.src.Hamiltonian module
- class ttnopt.src.Hamiltonian.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:
objectA class for Hamiltonian. This class is used to store Hamiltonian as a List of Observable.
ttnopt.src.Observable module
ttnopt.src.PhysicsEngine module
- class ttnopt.src.PhysicsEngine.PhysicsEngine(psi: TreeTensorNetwork, hamiltonian: Hamiltonian, init_bond_dim: int, max_bond_dim: int, energy_degeneracy_threshold: float = 1e-13, entanglement_degeneracy_threshold: float = 0.1)[source]
Bases:
TwoSiteUpdater
ttnopt.src.PhysicsEngineSparse module
- class ttnopt.src.PhysicsEngineSparse.PhysicsEngineSparse(psi: TreeTensorNetwork, hamiltonian: Hamiltonian, u1_num: int | str, init_bond_dim: int, max_bond_dim: int, energy_degeneracy_threshold: float = 1e-13, entanglement_degeneracy_threshold: float = 0.1)[source]
Bases:
TwoSiteUpdaterSparse
ttnopt.src.TTN module
- class ttnopt.src.TTN.TreeTensorNetwork(edges: List[List[int]], tensors: List[ndarray] | None = None, top_edge_id: int | None = None, gauge_tensor: ndarray | None = None, norm: float | None = None)[source]
Bases:
objectA class for Tree Tensor Network (TTN).
- classmethod init_random(edges: List[List[int]], top_edge_id: int | None = None, edge_dims: dict | None = None, init_bond_dimension: int = 4)[source]
- classmethod mps(size: int, target: ndarray | None = None, max_bond_dimension: int | None = None)[source]
Initialize an State object with matrix product structure. :param size: The size of system.
ttnopt.src.TimeEvolution module
- class ttnopt.src.TimeEvolution.TimeEvolution(psi, physical_spin_nums, hamiltonians, max_bond_dim=100, max_truncation_err=1e-11)[source]
Bases:
PhysicsEngine
ttnopt.src.TwoSiteUpdater module
- class ttnopt.src.TwoSiteUpdater.TwoSiteUpdater(psi)[source]
Bases:
TwoSiteUpdaterMixin
ttnopt.src.TwoSiteUpdaterSparse module
- class ttnopt.src.TwoSiteUpdaterSparse.TwoSiteUpdaterSparse(psi)[source]
Bases:
TwoSiteUpdaterMixin