Skip to main content

RealMPO

Base class: Object

Matrix Product Operator (MPO) of Real values. Compressed representation of large-dimensional tensors, well suited to the representation of quantum operators for 1D many-body physics problems.

Factories

Heisenberg_1d(integer length, real transverse_field) -> RealMPO

Generate the Hamiltonian Matrix Product Operator (MPO) for the 1D Heisenberg model with Real values.

Parameters

  • length: Number of sites in the chain.
  • transverse_field: Strength of the transverse field (default: 0).

Returns

MPO representing the 1D Heisenberg Hamiltonian H=i(SixSi+1x+SiySi+1y+SizSi+1z)+hiSixH = \sum_i ( S^x_i S^x_{i+1} + S^y_i S^y_{i+1} + S^z_i S^z_{i+1}) + h \sum_i S^x_i with open boundary conditions.

Ising_1d(integer length, real transverse_field) -> RealMPO

Generate the Hamiltonian Matrix Product Operator (MPO) for the 1D transverse-field Ising model with Real values.

Parameters

  • length: Number of sites in the chain.
  • transverse_field: Strength of the transverse field (default: 0).

Returns

MPO representing the transverse-field Ising Hamiltonian H=iSizSi+1z+hiSixH = \sum_i S^z_i S^z_{i+1} + h \sum_i S^x_i with open boundary conditions.

identity_mpo(integer length, integer physical_size, as_real as_real) -> RealMPO

Generate an identity Matrix Product Operator (MPO) with Real values.

Parameters

  • length: Number of sites in the MPO chain.
  • physical_size: Dimension of the physical (input/output) indices at each site.
  • as_real:

Returns

An RealMPO representing the identity operator on the full Hilbert space.

mpo(const Operator operator, as_real type) -> RealMPO

Convert the supplied Operator to a Matrix Product Operator (MPO) with Real values.

Parameters

  • operator: A symbolic quantum operator. :::warning Not all operation are supported at this time :::
  • type: The type of the tensor to create.

Returns

An RealMPO representing the supplied symbolic Operator object.

mpo(const Operator operator, integer size, as_real as_real) -> RealMPO

Convert the supplied symbolic operator to a Matrix Product Operator (MPO) with Real values.

Parameters

  • operator: A symbolic quantum operator. :::warning Not all operation are support at this time :::
  • size: number of sites of the resulting mpo.
  • as_real:

Returns

An RealMPO representing the suplied symbolic Operator object.

random_mpo(integer length, integer physical_size, integer bond_size, as_real as_real) -> RealMPO

Generate a random Matrix Product Operator (MPO) with Real values.

Parameters

  • length: Number of sites in the MPO chain.
  • physical_size: Dimension of the physical (input/output) indices at each site.
  • bond_size: Maximum bond dimension between adjacent sites.
  • as_real:

Returns

A random RealMPO with the specified dimensions. Each site tensor has shape [bond_size, physical_size, physical_size, bond_size].

Constructors

RealMPO(const RealMPO other) -> RealMPO

Copy constructor for Matrix Product Operator (MPO) of Real values.

Parameters

  • other: The MPO to copy.

RealMPO(integer length) -> RealMPO

Matrix Product Operator (MPO) of Real values with the specified number of sites.

Parameters

  • length: Number of sites in the MPO chain.

Symbols

NameDescription
*Scalar multiplication of an Matrix Product Operator (MPO) with Real values.
*=In-place product of two Matrix Product Operators (quantum operators) with Real values. Composes two quantum operators represented as Matrix Product Operators.
+Compute the sum of two Matrix Product Operators (quantum operators) with Real values.
+=In-place addition of two Matrix Product Operators (MPO) with Real values.
-Compute the difference of two Matrix Product Operators (MPO) with Real values.
-=In-place subtraction of two Matrix Product Operators (MPO) with Real values.
/Scalar division of an Matrix Product Operator (MPO) with Real values.
/=In-place scalar division of an Matrix Product Operator (MPO) with Real values.
=Assignment operator for Matrix Product Operator (MPO) of Real values.
[]Access a specific site tensor in the Matrix Product Operator (MPO) chain by index. Supports negative indexing (e.g., -1 for the last site).

Members

NameDescription
capacityGet the current capacity of the Matrix Product Operator (MPO).
expvalCompute the expectation value ψO^ψ\langle \psi \| \hat{O} \| \psi \rangle of a quantum operator in state ψ\|\psi\rangle in a Matrix Product State (MPS) encoded state.
get_siteGet a copy of the site tensor in the Matrix Product Operator (MPO) at the specified index.
matrixConvert an Matrix Product Operator (MPO) to a full matrix representation.
max_bondGet the maximum bond dimension across all bonds in the MPO chain.
open_boundarySet the Matrix Product Operator (MPO) to open boundary conditions.
periodic_boundarySet the Matrix Product Operator (MPO) to periodic (closed) boundary conditions.
push_backAppend a site tensor to the end of the Matrix Product Operator (MPO).
reserveReserve capacity for the Matrix Product Operator (MPO). Used as system size for otherwise uninitialized mpo operation with Operators
resizeResize a Matrix Product Operator (MPO) to a target size with empty tensors for position beyond the current end of the MPO.
set_boundary_likeCopy the boundary conditions from another Matrix Product Operator (MPO) or Matrix Product State (MPS).
set_siteSet the site tensor at the specified index in the Matrix Product Operator (MPO).
sizeGet the number of sites in the MPO.