# Advanced techniques in Tensor Networks

### Advanced course given by Mario Collura

**Term: **0

**Start:** 01-03-2021
**End:** 28-05-2021
**Room:** 131

**Credits: **4

**Schedule:** TBA

## Program

*The course aims to give a general understanding of different methods based on Tensor Network representation of the many-body wave function. I’m assuming an introduction to DMRG has been already given in the course “Computer Simulation of Condensed Matter”. Here we focus on the special network structure of such methods in order to exploit all theoretical/numerical advantages. Special attention will be paid on practical aspects of the algorithm implementation (mainly in C++).*

* *

*PREPARATORY (from the “Computer Simulation of Condensed Matter” course)*

*Basic Knowledge on Linear algebra (SVD, etc.)**2º quantization formalism: if necessary, we will remind it.**Basic introduction of DMRG.*

** **

MAIN TOPICS (may change)

- Diagrammatic representation for Tensor Networks (TNs):
- From Tensor to Networks
- Connection to Quantum Computing Notation
- Physical State admitting exact TN representation

- Tensor Network in one dimension: Matrix Product States (MPS)
- Theoretical grounding
- Canonical Representations
- Vidal Representation

- Matrix Product Operator
- Working with MPO and MPS
- Entanglement, local observable, correlation functions, Loschmit echo, etc.

- What about 2D? Basics on PEPS and TTN.
- Variational algorithms: from ground-state to excited states
- Real and Imaginary time evolution algorithms
- Open Systems with Tensor Networks
- Non-Unitary dynamics
- Projective Measurements

- Symmetries in TNs:
- Translational Invariance: iMPS and iPEPS
- iDMRG and iTEBD algorithms
- Abelian global symmetries

- Long-range interactions: MPO vs TDVP

PRACTICAL INFO: As main reference, I have in mind lattice spin models. However, I will discuss about bosonic and fermionic systems; the latter being tricky due to the “counting” problem. In general, I will try to give tips&tricks to implement the algorithms in C++. Many functions I will suggest to use are those of *lapack*. I will encourage Objected-Oriented programming.

FINAL EXAM: Implementation of an algorithm to solve an interesting many-body problem. Discussion about the implementation and results.