Documentation for ITensorsOpenSystems.SplitVectorization

ITensorsOpenSystems.SplitVectorization.VectorizedDensityMatrixType
VectorizedDensityMatrix(::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 equal 2 * n, where n = length(initialmpo).

Returns

A VectorizedDensityMatrix constructed from the modified tensor network, representing the vectorized density matrix of the input state.

source
ITensorsOpenSystems.SplitVectorization.anticommutatorapplyFunction
anticommutatorapply(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.

source
ITensorsOpenSystems.SplitVectorization.commutatorapplyFunction
commutatorapply(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.

source
ITensorsOpenSystems.SplitVectorization.leftapplyFunction
leftapply(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.

source
ITensorsOpenSystems.SplitVectorization.leftrightapplyFunction
leftrightapply(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.

source
ITensorsOpenSystems.SplitVectorization.rightapplyFunction
rightapply(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.

source