# BLOCK_DIAGONALIZE

Control section to setup block diagonalization of the mixed CDFT Hamiltonian. Constructs a new Hamiltonian by diagonalizing the initial matrix within each block and by rotating the off-diagonal blocks (which represent the interactions between different blocks) by the eigenvectors of diagonal blocks. [Edit on GitHub]

## Keywords

- BLOCK

- IGNORE_EXCITED

- RECURSIVE_DIAGONALIZATION

## Keyword descriptions

BLOCK: integer[ ]

  Keyword can be repeated.

  Usage: BLOCK 1 2

  Defines which CDFT states are included in a block. Each repetition of this keyword defines a new block. The Hamiltonian matrix elements of the requested states are collected into a new matrix and subsequently diagonalized. The eigenvectors of this matrix are used to rotate the matrix blocks describing the interactions between blocks. [Edit on GitHub]

IGNORE_EXCITED: logical = T

  Lone keyword: `T`

  Usage: IGNORE_EXCITED FALSE

  Ignore excited states related to each block when constructing the new mixed CDFT Hamiltonian. This reduces the dimensionality of the Hamiltonian. [Edit on GitHub]

RECURSIVE_DIAGONALIZATION: logical = F

  Lone keyword: `T`

  Usage: RECURSIVE_DIAGONALIZATION TRUE

  Perform block diagonalization recursively until only two blocks remain. For example, if the elements of a 8x8 matrix are first collected into 4 blocks (using keyword BLOCK), this keyword will transform the matrix to a 2x2 matrix (8x8 -> 4x4 -> 2x2). In this example, the blocks of the 2x2 matrix would be assembled from the first and last 2 blocks of the 4x4 matrix. [Edit on GitHub]