RGRDMT.CGmapping_from_AL — MethodCGmapping_from_AL(AL::AbstractTensorMap, k0::Integer, n::Integer)Constructs a CG mapping from an abstract tensor map AL.
Arguments
AL::AbstractTensorMap: The abstract tensor map.k0::Integer: The value of k0.n::Integer: The value of n.
Returns
- If
n == k0, returns a tuple(V0, V1, V2)where:V0: A matrix of size D^2 x (d^k0) representing the finite part of the CG mapping.V1: A sparse matrix of size D^2 x (D^2 * d) representing the left-infinite part of the CG mapping.V2: A sparse matrix of size D^2 x (D^2 * d) representing the right-infinite part of the CG mapping.
- If
n != k0, returns a tuple(V0, L, R)where:V0: A matrix of size D^2 x (d^k0) representing the finite part of the CG mapping.L: A matrix of size D^2 x (D^2 * d) representing the left-infinite part of the CG mapping.R: A matrix of size D^2 x (D^2 * d) representing the right-infinite part of the CG mapping.
RGRDMT.approx_ground_state — Methodapproxgroundstate(H::MPOHamiltonian{T}, ψ_good::InfiniteMPS, d::Integer, D::Integer) where {T}
Approximates the ground state of a given Hamiltonian using the variational uniform matrix product state (VUMPS) algorithm.
Arguments
H::MPOHamiltonian{T}: The Hamiltonian for which the ground state is to be approximated.ψ_good::InfiniteMPS: An initial guess for the ground state.d::Integer: The local Hilbert space dimension.D::Integer: The bond dimension.
Returns
ψ_approx::InfiniteMPS: The approximate ground state.
RGRDMT.good_ground_state — Methodgood_ground_state(H::MPOHamiltonian{T}, D::Integer) where {T}Compute the ground state of a given MPOHamiltonian using the VUMPS algorithm.
Arguments
H::MPOHamiltonian{T}: The MPOHamiltonian representing the Hamiltonian of the system.D::Integer: The bond dimension of the MPS.
Returns
groundstate: The ground state of the system.
RGRDMT.load_Hamiltonian — Methodload_Hamiltonian(filename::String)Load the Hamiltonian matrix and the exact eigenvalues from a file.
This function is only used when loading ground state MPS from MATLAB computation using VUMPS implemented here
Arguments
filename::String: The name of the file containing the Hamiltonian matrix.
Returns
H: The Hamiltonian matrix.Eexact: The exact eigenvalues.
RGRDMT.load_MPS — Methodload_MPS(filename::String, D::Integer)Load an MPS (Matrix Product State) from a file.
Arguments
filename::String: The path to the file containing the MPS data.D::Integer: The virtual bond dimension of the MPS.
Returns
ψ: The loaded MPS as anInfiniteMPSobject.upperBdFromMPS: The upper bound of ground state energy achieved by the MPS.
RGRDMT.one_step_approx_dual — Methodonestepapprox_dual(h::AbstractMatrix{V}, n::Integer, optimizer=SCS.Optimizer) where {V}
Compute the one-step approximation of the dual energy for a given Hamiltonian.
Arguments
h::AbstractMatrix{V}: The Hamiltonian matrix.n::Integer: The number of spins.optimizer=SCS.Optimizer: The optimizer to use for solving the optimization problem.
Returns
ElocTIRig::Float64: The one-step approximation of the dual energy with the lowest eigenvalue added.ElocTI::Float64: The one-step approximation of the dual energy.
Example
RGRDMT.two_step_approx — Methodtwo_step_approx(h::AbstractMatrix{V}, D::Integer, n::Integer,
W2::AbstractMatrix{T}, L2::AbstractMatrix{T}, R2::AbstractMatrix{T},
optimizer=SCS.Optimizer) where {V,T}Approximates a two-step Renormalization Group (RG) transformation for a given Hamiltonian h using the specified parameters.
Arguments
h::AbstractMatrix{V}: The input Hamiltonian matrix.D::Integer: The bond dimension.n::Integer: The number of RG steps.W2::AbstractMatrix{T}: The second layer of the RG transformation.L2::AbstractMatrix{T}: The left transformation matrix for the second layer.R2::AbstractMatrix{T}: The right transformation matrix for the second layer.optimizer=SCS.Optimizer: The optimizer to use for solving the optimization problem.
Returns
The objective value of the optimization problem.
Example