Methods and algorithms
Time evolution methods
TimeEvolutionPEPO.TEBD — Typemutable struct TEBD{Alg<:TimeEvolutionPEPO.AbstractTruncationScheme} <: TimeEvolutionPEPO.AbstractTEBDThe time-evolving block decimation method for nearest-neighbour gate-based evolution.
FIELDS
compresstol::Float64: (defaulteps()) Peform a low-rank approximation according to this tolerance.alg::TimeEvolutionPEPO.AbstractTruncationScheme: (defaultSimpleUpdate()) The truncation algorithm to be used.verbose::Bool: deprec
See also: AxialTEBD, GlobalTEBD
TimeEvolutionPEPO.AxialTEBD — Typestruct AxialTEBD{TAlg} <: TimeEvolutionPEPO.AbstractTEBDAxial version of TEBD formed from a sequence of Trotter gates in a staircase patterm split and contracted into a matrix product operator. Maintains translational invariance. Fields are the same as in TEBD.
See also: TEBD, GlobalTEBD
TimeEvolutionPEPO.GlobalTEBD — Typestruct GlobalTEBD{TAlg} <: TimeEvolutionPEPO.AbstractTEBDGlobal version of TEBD formed from contracting both the horizontal and vertical matrix product operators from AxialTEBD together to from tensor network operator with 4 virtual bonds. Fields are the same as in TEBD.
Bond truncation
TimeEvolutionPEPO.SVDU — Typemutable struct SVDU{G<:Union{NoGauge, MCF}} <: TimeEvolutionPEPO.AbstractSimpleTruncationSchemeThe singular value decomposition method. No bond weights are absorbed when truncating resulting in much worse truncations than would be obtained using simple update, however this method does not require matrix inversions.
Fields
gauge::Union{NoGauge, MCF}: (defaultNoGauge()) Gauge fixing to be applied at the end of each time step.reduce::Symbol: (default:pre) When to perform the rank reduction. Can be:pre, to do so before the application of each local gate, or:postfor after.zeta::Float64: (defaultInf) Level of correlation length damping to apply after computing the bond weight.
See also: SimpleUpdate, NTU, FET.
TimeEvolutionPEPO.SimpleUpdate — Typemutable struct SimpleUpdate{G<:Union{NoGauge, MCF}} <: TimeEvolutionPEPO.AbstractSimpleTruncationSchemeThe simple update method (SU). At each truncation, the bond weights of the tensor network are absorbed, resulting improved truncations over SVDU. This method is fast and robust, but may provide inaccurate results when the correlation length of the state becomes large.
Fields
gauge::Union{NoGauge, MCF}: (defaultNoGauge()) Gauge fixing to be applied at the end of each time step.reduce::Symbol: (default:pre) When to perform the rank reduction. Can be:pre, to do so before the application of each local gate, or:postfor after.zeta::Float64: (defaultInf) Level of correlation length damping to apply after computing the bond weight.
TimeEvolutionPEPO.NTU — Typemutable struct NTU{OAlg<:TimeEvolutionPEPO.AbstractIsometryOptimisation, G<:Union{NoGauge, MCF}} <: TimeEvolutionPEPO.AbstractTruncationSchemeThe neighbourhood tensor update method. Performs worse than FET, however uses an environment that is Hermitian exactly, which may improve stabilty.
Fields
gauge::Union{NoGauge, MCF}: (defaultNoGauge()) Gauge fixing to be applied at the end of each time step.optalg::TimeEvolutionPEPO.AbstractIsometryOptimisation: (defaultDZM()) Optimisation subroutine to employ.rankreduce::Bool: (defaulttrue) Whether to use a rank reduction to obtain an initial guess for the isometries.zeta::Float64: (defaultInf) Level of correlation length damping to apply after computing the bond weight.
See also: SimpleUpdate, SVDU, FET.
TimeEvolutionPEPO.FET — Typemutable struct FET{BAlg<:TensorRenormalizationGroups.AbstractBoundaryAlgorithm, OAlg<:TimeEvolutionPEPO.AbstractIsometryOptimisation, G<:Union{NoGauge, MCF}} <: TimeEvolutionPEPO.AbstractTruncationSchemeThe full environment truncation method.
Fields
alg::TensorRenormalizationGroups.AbstractBoundaryAlgorithmgauge::Union{NoGauge, MCF}: (defaultNoGauge()) Gauge fixing to be applied at the end of each time step.optalg::TimeEvolutionPEPO.AbstractIsometryOptimisation: (defaultEVB()) Optimisation subroutine to employ.rankreduce::Bool: (defaultfalse) Whether to use a rank reduction to obtain an initial guess for the isometries.zeta::Float64: (defaultInf) Level of correlation length damping to apply after computing the bond weight.
See also: SimpleUpdate, SVDU, NTU.
Isometry Optimization
TimeEvolutionPEPO.EVB — Typestruct EVB{G} <: TimeEvolutionPEPO.AbstractIsometryOptimisation{G}Constructor
EVB(; maxiter, verbose, pinvtol, isotol, randomness, gauge)defined at /home/runner/work/TimeEvolutionPEPO.jl/TimeEvolutionPEPO.jl/src/truncation/truncation.jl:14.
EVB(maxiter, verbose, pinvtol, isotol, randomness, gauge)defined at /home/runner/work/TimeEvolutionPEPO.jl/TimeEvolutionPEPO.jl/src/truncation/truncation.jl:15.
TimeEvolutionPEPO.DZM — Typestruct DZM{G} <: TimeEvolutionPEPO.AbstractIsometryOptimisation{G}Constructor
DZM(
;
maxiter,
verbose,
pinvtol,
isotol,
randomness,
EAT,
check,
gauge
)defined at /home/runner/work/TimeEvolutionPEPO.jl/TimeEvolutionPEPO.jl/src/truncation/truncation.jl:38.
DZM(
maxiter,
verbose,
pinvtol,
isotol,
randomness,
EAT,
check,
gauge
)defined at /home/runner/work/TimeEvolutionPEPO.jl/TimeEvolutionPEPO.jl/src/truncation/truncation.jl:39.