Documentation for ITensorsOpenSystems.SplitVectorization
ITensorsOpenSystems.SplitVectorization.VectorizedDensityMatrix — TypeVectorizedDensityMatrix(::Type{InsertIdentity}, initialmpo::MPO, site_indices)
VectorizedDensityMatrix(data::Vector{<:ITensor})
VectorizedDensityMatrix(::Type{OnSiteSVD}, initialmpo::MPO, site_indices;ortho = "match", kwargs...,)
VectorizedDensityMatrix(::Type{FullSweep}, initialmpo::MPO, siteindice, orthogonalitycenter::Integer = 1; kwargs...,)Constructs a vectorized density matrix representation from an unvectorized MPO state or a vector of MPOs
This function converts an MPO representing an unvectorized quantum state into its vectorized density matrix form by inserting appropriate identity and delta tensors. The conversion is accomplished by processing the MPO tensors and interleaving them with additional tensors based on the provided site_indices. The transformation relies on matching and combining site and link indices via ITensors
The function expects the number of vectorized site indices to be exactly twice the number of MPO tensors. If the condition is not met, an ArgumentError is thrown.
Arguments
::Type{InsertIdentity}: A type indicator used to select the vectorization scheme.initialmpo::MPO: The initial matrix product operator representing the unvectorized state.site_indices: A vector of ITensors indices used in the transformation. Its length must equal2 * n, wheren = length(initialmpo).
Returns
A VectorizedDensityMatrix constructed from the modified tensor network, representing the vectorized density matrix of the input state.
ITensorsOpenSystems.SplitVectorization.anticommutatorapply — Functionanticommutatorapply(o)Compute the anticommutator action of an operator in the superfermion representation.
The anticommutator is defined as the sum of the left and right actions of o:
Arguments
o: The operator for which the anticommutator is computed.
Returns
An operator representing the anticommutator action of o.
ITensorsOpenSystems.SplitVectorization.commutatorapply — Functioncommutatorapply(o)Compute the commutator action of an operator in the superfermion representation.
The commutator is defined as the difference between the left and right actions of o:
Arguments
o: The operator for which the commutator is computed.
Returns
An operator representing the commutator action of o.
ITensorsOpenSystems.SplitVectorization.leftapply — Functionleftapply(o)Extract the left action of an operator in the superfermion representation.
This function computes the left action by combining the operator o with the identity operator on the right.
Arguments
o: The operator for which the left action is to be computed.
Returns
An operator representing the left action of o.
ITensorsOpenSystems.SplitVectorization.leftrightapply — Functionleftrightapply(leftop::ITensors.Op, rightop::ITensors.Op) -> ITensors.Prod{Op}
leftrightapply(leftop::ITensors.Prod{Op}, rightop::ITensors.Prod{Op}) -> ITensors.Prod{Op}
leftrightapply(leftop::ITensors.Scaled, rightop::ITensors.Scaled) -> ITensors.Scaled
leftrightapply(leftop::OpSum, rightop::OpSum) -> OpSum
leftrightapply(leftop, rightop)Construct a combined operator representing the left and right actions in the vectorized (superfermion) representation. The operators may be a scaled product or a sum of other MPOs.
Arguments
leftop: The operator representing the left action.rightop: The operator representing the right action.
Returns
A combined operator representing the left-right action in the vectorized (superfermion) representation.
ITensorsOpenSystems.SplitVectorization.rightapply — Functionrightapply(o)Extract the right action of an operator in the superfermion representation.
This function computes the right action by combining the operator o with the identity operator on the left.
Arguments
o: The operator for which the right action is to be computed.
Returns
An operator representing the right action of o.