pub fn peps(
length: usize,
depth: usize,
physical_dim: u64,
virtual_dim: u64,
layers: usize,
) -> TensorExpand description
Generates the structure for a PEPS with length x depth dimensions and with layers layers.
The EdgeIndex in the PEPS bond_dims for each layer is ordered as physical bonds to previous layer, physical bonds to next layer, vertical virtual bonds, horizontal virtual bonds.
Each new layer other than the final layer adds:
- p = length * depth physical bonds
- vv = (length - 1) * depth vertical virtual bonds
- vh = (depth - 1) * length horizontal virtual bonds
Bonds for the kth layer, where k is not the initial or final layer, then run from:
- physical bonds to previous layer: (k-1) * (p+vv+vh): (kp) + (k-1) * (vv+vh)
- physical bonds to next layer: k * (p+vv+vh)
§Arguments
length- length of the PEPSdepth- depth of the PEPSphysical_dim- physical dimension of the PEPsvirtual_dim- virtual bond dimension between lattice sites in the PEPslayers- number of operator layers in PEPS, 0 layers returns an inner product of two states.
§Returns
Tensor representing a PEPS.
§Panics
Panics if length < 2 or depth < 2.