# Grupo de renormalización de la matriz de densidad

El grupo de renormalización de la matriz de densidad (GRMD, o por sus siglas en inglés DMRG) es una técnica numérica variacional usada para obtener la física a bajas energías de sistemas cuánticos de muchos cuerpos con alta precisión. Fue inventado en 1992 por Steven R. White y es hoy en día uno de los métodos más eficientes para modelos unidimensionales.

## La idea detrás de DMRG

El principal problema de la física cuántica de muchos cuerpos es el hecho de que el espacio de Hilbert crece exponencialmente con el tamaño. Por ejemplo, una cadena de espín 1/2 de longitud L tiene 2$^L$ grados de libertad. El DMRG es un método iterativo variacional que reduce los grados de libertad efectivos a los más importantes para el estado objetivo, que suele ser el estado fundamental.
Tras un ciclo inicial, el método divide el sistema en dos bloques, no necesariamente del mismo tamaño, y dos posiciones intermedias. Durante el ciclo inicial se eligió un conjunto de estados representativos para el bloque. Este conjunto de bloque izquierdo + dos posiciones + bloque derecho se conoce como superbloque. Ahora se puede encontrar un candidato para el estado fundamental del superbloque, que es una versión reducida del sistema completo. Este puede tener una precisión bastante pobre, pero el método es iterativo y mejora con los pasos sucesivos.
El estado fundamental candidato que se encuentra se proyecta en el subespacio de cada bloque usando una matriz de densidad, de lo cual el nombre del método. De esta forma, se actualizan los estados relevantes para cada bloque.
Ahora, uno de los bloques crece a expensas del otro y se repite el procedimiento. Cuando el bloque creciente alcanza su tamaño máximo, el otro empieza a crecer en su lugar. Cada vez que se regresa a la situación inicial se dice que se completó un barrido. Normalmente, unos pocos barridos son suficientes para obtener una precisión de una parte entre 10$^{10}$ para una red unidimensional.
La primera aplicación del DMRG, obtenida por Steven White y Reinhard Noack, fue un modelo de juguete: encontrar el espectro de una partícula de espín 0 en una caja unidimensional. Este modelo había sido propuesto por Kenneth G. Wilson como una prueba para cualquier método nuevo de grupo de renormalización, ya que todos fallaban en este problema simple. El DMRG superó los problemas de los métodos de grupo de renormalización previos conectando dos bloques con las dos posiciones en medio en lugar de simplemente añadir una única posición a un bloque en cada paso, así como mediante el uso de la matriz de densidad para identificar los estados más importantes a mantener al final de cada paso. Tras resolver con éxito el modelo de juguete, el método DMRG se implementó de forma también exitosa para la resolución del modelo de Heisenberg.

## Detalles técnicos de la implementación

Una implementación práctica del algoritmo DMRG es un trabajo largo. Algunos de los principales trucos computacionales utilizados son los siguientes:
* El estado fundamental para el superbloque se obtiene usando el algoritmo de Lanczos de diagonalización de matrices. Otra opción es el método de Arnoldi, especialmente al tratar con matrices no hermíticas.
* El algoritmo de Lanczos habitualmente comienza con una semilla aleatoria. En DMRG, el estado obtenido en un cierto paso, transformado de forma adecuada, puede servir como mejor semilla para el algoritmo de Lanczos en el siguiente paso.
* En sistemas con simetrías, se pueden haber conservado números cuánticos, como el espín total en un modelo de Heisenberg. Es conveniente encontrar el estado fundamental en cada de los sectores en que se divide el espacio de Hilbert.

## Aplicaciones

El DMRG se ha utilizado de forma exitosa para obtener las propiedades a baja energía de cadenas de espín como el modelo de Ising de campo transverso o el modelo de Heisenberg; en sistemas fermiónicos, como el modelo de Hubbard; en problemas con impurezas como el efecto Kondo; sistemas bosónicos, y en la física de puntos cuánticos unidos a hilos cuánticos. También se ha extendido a trabajar en árboles dentro de la teoría de grafos, y encontró aplicaciones en el estudio de los dendrímeros. Para sistemas bidimensionales con una de las dimensiones mucho mayor que la otra, el DMRG también es adecuado, y se ha mostrado útil en el estudio de compuestos escalera.
Se extendido el método para estudiar física estadística en equilibrio en dos dimensiones, y para analizar fenómenos fuera del equilibrio en una dimensión.
El DMRG también se ha aplicado al campo de la química cuántica para estudiar sistemas fuertemente correlacionados.

## El ansatz del producto matricial

El éxito del DMRG para sistemas unidimensionales está relacionado con el hecho de que es un método variacional en el espacio de estados de productos matriciales. Estos son estados de la forma
    $\sum _{s_{1}\cdots s_{N}}\operatorname {Tr} (A^{s_{1}}\cdots A^{s_{N}})|s_{1}\cdots s_{N}\rangle$
donde $s_{1}\cdots s_{N}$ son las valores de, por ejemplo, la componente z del espín en una cadena de espín, y los A$^{si}$ son matrices de dimensión arbitraria m. Cuando m → ∞, la representación se vuelve exacta. Esta teoría fue desarrollada por S. Rommer y S. Ostlund.

## Extensiones del DMRG

En 2004, se desarrolló el método de diezmado de bloques dependiente del tiempo para implementar la evolución en tiempo real de los estados de producto matricial. Esta idea está basada en la simulación clásica de un ordenador cuántico. Más tarde, se desarrolló un nuevo método para computar la evolución en tiempo real con el formalismo DMRG.
Más recientemente, se han elaborado propuestas para extender el método a dos y tres dimensiones, extendiendo la definición de estados de producto matricial.

## Software relacionado

* Powder with Power: una distribución libre de código DMRG dependiente del tiempo escrita en Fortran. Archivado el 4 de diciembre de 2017 en Wayback Machine.
* The ALPS Project: una distribución libre de código DMRG dependiente del tiempo y códigos de Monte Carlo cuántico escrita en C++.
* DMRG++: una implementación libre de DMRG escrita en C++
* The ITensor (Intelligent Tensor) Library: una librería libre para trabajar con tensores y estados de producto matricial escrita en C++.
* OpenMPS: una implementación de código abierto de DMRG basada en estados de producto matricial escrita en Python/Fortran2003.
* Snake DMRG program: programa de código abierto de DMRG, tDMRG y DMRG de temperatura finita escrito en C++.
* CheMPS2: programa de código abierto de DMRG con espín adaptado para química cuántica ab initio escrito en C++.
* Block: entorno de trabajo de código abierto para química cuántica y hamiltonianos modelo. Soporta SU(2) y simetrías no abelianas generales. Escrito en C++.