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 anInfiniteMPS
object.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