Mapping of Floret-Pentagon structures (varipeps.mapping.florett_pentagon)

class varipeps.mapping.florett_pentagon.Florett_Pentagon_Expectation_Value(black_gates: Sequence[Array], green_gates: Sequence[Array], blue_gates: Sequence[Array], real_d: int, normalization_factor: int = 9, is_spiral_peps: bool = False, spiral_unitary_operator: Array | None = None)[source]

Bases: Expectation_Model

Class to calculate expectation values for a mapped Florett Pentagon structure.

Structure of the floret-pentagon lattice with the smallest possible unit cellStructure of the floret-pentagon lattice with the smallest possible unit cell
Structure of the floret-pentagon lattice with the bond types marked in colorStructure of the floret-pentagon lattice with the bond types marked in color

Parameters:
  • black_gates (sequence of jax.numpy.ndarray) – Sequence with the gates that should be applied to the bonds marked in black in the image above.

  • green_gates (sequence of jax.numpy.ndarray) – Sequence with the gates that should be applied to the bonds marked in green in the image above.

  • blue_gates (sequence of jax.numpy.ndarray) – Sequence with the gates that should be applied to the bonds marked in blue in the image above.

  • real_d (int) – Physical dimension of a single site before mapping.

  • normalization_factor (int, optional) – Factor which should be used to normalize the calculated values. Likely will be 9 for the a single layer structure.

    Default: 9

  • is_spiral_peps (bool, optional) – Flag if the expectation value is for a spiral iPEPS ansatz.

    Default: False

  • spiral_unitary_operator (jax.numpy.ndarray, optional) – Operator used to generate unitary for spiral iPEPS ansatz. Required if spiral iPEPS ansatz is used.

    Default: None

__call__(peps_tensors: Sequence[Array], unitcell: PEPS_Unit_Cell, spiral_vectors: Array | Sequence[Array] | None = None, *, normalize_by_size: bool = True, only_unique: bool = True, return_single_gate_results: bool = False) Array | List[Array][source]

Calculate the expectation value for PEPS unitcell depending on the gates set in the class.

Parameters:
  • peps_tensors (sequence of jax.numpy.ndarray) – The sequence of unique PEPS tensors in the unitcell.

  • unitcell (PEPS_Unit_Cell) – The PEPS unitcell.

  • spiral_vectors (single or sequence of jax.numpy.ndarray, optional) – If the expectation value is for a spiral iPEPS ansatz, in this argument the wavevectors are expected.

    Default: None

Keyword Arguments:
  • normalize_by_size (bool, optional) – Flag if the expectation value should be normalized by the number of tensors in the unitcell.

    Default: True

  • only_unique (bool, optional) – Flag if the expectation value should be calculated just once for each unique PEPS tensor in the unitcell.

    Default: True

Returns:

The expectation values for all gates. Single tensor if only one gate is applied.

Return type:

jax.numpy.ndarray or list of jax.numpy.ndarray

black_gates: Sequence[Array]
blue_gates: Sequence[Array]
green_gates: Sequence[Array]
is_spiral_peps: bool = False
normalization_factor: int = 9
real_d: int
spiral_unitary_operator: Array | None = None
varipeps.mapping.florett_pentagon.florett_pentagon_density_matrix_diagonal(peps_tensors: Sequence[Array], peps_tensor_objs: Sequence[PEPS_Tensor], open_physical_indices: Tuple[Tuple[int], Tuple[int]]) Tuple[Array, Array][source]

Calculate the two parts of the diagonal two sites density matrix of the mapped Florett Pentagon lattice. Hereby, one can specify which physical indices should be open and which ones be traced before contracting the CTM structure.

Parameters:
  • peps_tensors (sequence of jax.numpy.ndarray) – Sequence of the PEPS tensors used for the density matrix.

  • peps_tensor_objs (sequence of varipeps.peps.PEPS_Tensor) – Sequence of the corresponding PEPS tensor objects.

  • open_physical_indices (tuple of two tuple of int) – Tuple with two tuples consisting of the physical indices which should be kept open for the top left and bottom right site.

Returns:

Top left and bottom right part of the density matrix. Can be used for the two sites expectation value functions.

Return type:

tuple of two:obj:jax.numpy.ndarray

varipeps.mapping.florett_pentagon.florett_pentagon_density_matrix_horizontal(peps_tensors: Sequence[Array], peps_tensor_objs: Sequence[PEPS_Tensor], open_physical_indices: Tuple[Tuple[int], Tuple[int]]) Tuple[Array, Array][source]

Calculate the two parts of the horizontal two sites density matrix of the mapped Florett Pentagon lattice. Hereby, one can specify which physical indices should be open and which ones be traced before contracting the CTM structure.

Parameters:
  • peps_tensors (sequence of jax.numpy.ndarray) – Sequence of the PEPS tensors used for the density matrix.

  • peps_tensor_objs (sequence of varipeps.peps.PEPS_Tensor) – Sequence of the corresponding PEPS tensor objects.

  • open_physical_indices (tuple of two tuple of int) – Tuple with two tuples consisting of the physical indices which should be kept open for the left and right site.

Returns:

Left and right part of the density matrix. Can be used for the two sites expectation value functions.

Return type:

tuple of two:obj:jax.numpy.ndarray

varipeps.mapping.florett_pentagon.florett_pentagon_density_matrix_vertical(peps_tensors: Sequence[Array], peps_tensor_objs: Sequence[PEPS_Tensor], open_physical_indices: Tuple[Tuple[int], Tuple[int]]) Tuple[Array, Array][source]

Calculate the two parts of the vertical two sites density matrix of the mapped Florett Pentagon lattice. Hereby, one can specify which physical indices should be open and which ones be traced before contracting the CTM structure.

Parameters:
  • peps_tensors (sequence of jax.numpy.ndarray) – Sequence of the PEPS tensors used for the density matrix.

  • peps_tensor_objs (sequence of varipeps.peps.PEPS_Tensor) – Sequence of the corresponding PEPS tensor objects.

  • open_physical_indices (tuple of two tuple of int) – Tuple with two tuples consisting of the physical indices which should be kept open for the top and bottom site.

Returns:

Top and bottom part of the density matrix. Can be used for the two sites expectation value functions.

Return type:

tuple of two:obj:jax.numpy.ndarray