Helper functions for spiral iPEPS ansatz
- varipeps.expectation.spiral_helpers.apply_unitary(gate: Array, delta_r: Array, q: Sequence[Array], unitary_operator_D: Array, unitary_operator_sigma: Array, phys_d: int, number_sites: int, apply_to_index: Sequence[int], wavevector_type: Wavevector_Type) Array
Apply the unitary of the spiral iPEPS approach to a gate. The function calculates the relative unitary gate from the operator, the spatial difference and the wavevector.
- Parameters:
gate (
jax.numpy.ndarray) – The gate which should be updated with the unitary operator.delta_r (
jax.numpy.ndarray) – Vector for the spatial difference. Can be a sequence if the spatial difference are different for the single indices.q (sequence of
jax.numpy.ndarray) – Sequence with the relevant wavevector for the different indices of the gate.unitary_operator_D (
jax.numpy.ndarray) – Array with the eigenvalues of the operator from which the unitary is generated.unitary_operator_sigma (
jax.numpy.ndarray) – Array with the eigenvectors of the operator from which the unitary is generated.phys_d (
int) – Physical dimension of the indices of the gate.number_sites (
int) – Number of sites the gate is applied to.apply_to_index (sequence of
int) – The indices of the gate which should be modified by the unitary generated to the same ordered sequence of wavevectors.wavevector_type (
Wavevector_Type) – Type of the wavevector (see type definition for details).
- Returns:
The updated gate with the unitary applied.
- Return type: