# Keywords¶

Block program offers many keywords to control the calculation. In the Block input file, each keyword (and its value) should take one line. There are two types of format to input the keywords. One is the key-value pattern:

```
keyword value1 value2 ...
```

The other is the schedule section:

```
schedule
0 50 1.0e-6 1e-06
5 50 1.0e-7 0e-06
end
```

## Hamiltonian Types¶

Default Hamiltonian type is the chemistry Hamiltonian, in which the 2-electron interaction term is a dense matrix. Block also supports model Hamiltonians:

- heisenberg
- No associated value.
- hubbard
- No associated value.

## Algorithm Types¶

If no algorithm is specified, the default is twodot_to_onedot algorithm.

- onedot
- No associated value.
- twodot
- No associated value.
- twodot_to_onedot
- followed by a single number to indicate the iteration when to switch from the two-dot to the one-dot algorithm.

## Warm-up Types¶

If `warmup`

is not specified, the default is `local\_0site`

.

- warmup
followed by one of the following strings.

local_0sitelocal_2sitelocal_3sitelocal_4sitewilson

## Solver Types¶

If not specified, default is `davidson`

solver.

- davidson
- No associated value
- lanczos
- No associated value

## Orbital Reorder Types¶

If not specified, `fielder`

ordering is used by default.

- fiedler
- No associated value
- gaopt
- followed by the filename
- reorder
- followed by the filename which saves the indices of the reordered orbitals.
- noreorder
- No associated value

## Calculation Types¶

- dmrg
- No associated value. This is the default calculation type.
- calcoverlap
- No associated value. If set, Compute only the overlap of two DMRG wave function.
- calchamiltonian
- No associated value.
- fourpdm (Not support in Block-1.5)
- No associated value. If set, besides the regular dmrg calculation, the program also compute the 4-particle density matrix.
- fullrestart
- No associated value
- nevpt2_npdm
- No associated value
- onepdm
- No associated value, If set, the program also computes and stores the
1-particle density matrix in
`spatial_onepdm.*.*.txt`

. - restart_fourpdm
- No associated value
- restart_nevpt2_npdm
- No associated value
- restart_onepdm
- No associated value
- restart_threepdm
- No associated value
- restart_tran_onepdm
- No associated value
- restart_tran_twopdm
- No associated value
- restart_twopdm
- No associated value
- threepdm
- No associated value, If set, the program also computes and stores the
3-particle density matrix in
`spatial_threepdm.*.*.txt`

. - transition_onepdm
- No associated value, If set, the program also computes and stores the
transition density matrix in
`spatial_onepdm.*.*.txt`

. - transition_twopdm
- No associated value, If set, the program also computes and stores the
transition 2-particle density matrix in
`spatial_twopdm.*.*.txt`

. - twopdm
- No associated value, If set, the program also computes and stores the
2-particle density matrix in
`spatial_twopdm.*.*.txt`

.

## Schedule¶

DMRG sweep schedule. It supports two types of input format. One is:

```
schedule default
```

to generate the sweep schedule by Block program. This is the default value of
`schedule`

keyword. The other is to explicitly input the schedule, eg:

```
schedule
0 50 1.0e-6 1e-06
5 50 1.0e-7 0e-06
end
```

The first column is the sweep-iteration, the second column is the corresponding bond dimension, the third column is the convergence tolerance for Davidson diagonalization, the fourth column is the noise.

## Expert Keywords¶

- backward
- No associated value. If set, the program starts with backward sweep.
- hf_occ
The initial HF wave function occupancies, in spin orbital. It can be one of the following values. The recommended one is

`integral`

.- integral
- Generate occupancy pattern based on the 1-electron integrals.
- canonical
- Based on the input orbital ordering, take the first N orbitals as occupied orbitals
- manual
- followed by the HF occupancy in the same line.

- irrep
- followed by one or two numbers. If one number is given, it determines the wave function symmetry. If two numbers are given, it means that calculations of transition density matrix between wavefunctions with different irreps. The irrep value follows the Molpro symmetry convention, see also https://github.com/sunqm/pyscf/blob/master/future/dmrgscf/dmrg_sym.py
- lastM
- followed by an integer. Default is 500
- maxiter
- followed by an integer represents the max sweep iterations. Default is 10.
- maxM
- followed by an integer, the maximum bond dimension.
- nelec
- followed by an integer, for the total number of electrons.

- nonspinadapted
- No associated value.
- nroots
- followed by one integer, for the number of states to solve. Default is 1.

- orbitals
- followed by the orbital file
- outputlevel
**0**|| 1 || 2 || 3 - followed by an integer, range from 0 (less output) to 3 (very noise). Default is 0.

- scratch
- followed by the scratch directory to store the intermediates, the resultant wave function, and density matrices.
- screen_tol
- followed by a float number. Default is 0.0
- spin 2S
- followed by an integer represents the difference of alpha and beta electron numbers.
- startM
- followed by an integer. Default is 250.
- statespecific
- No associated value. This option implies that a previous dmrg calculation has already been performed. This calculation will take the previous wavefunctions and refine them.
- sweep_tol
- followed by a float number, for the convergence tolerance.
- sym
- followed by the string for the symbol of point group symmetry, can be d2h and its subgroup.
- weights
- followed by a list of float numbers for weight of each state. You could chose to omit the keyword weights in which case the weights will be distributed uniformly bet ween the different roots.
- num_thrds (new in Block-1.5)
- followed by an integer for the number of OpenMP threads to use.
- memory (new in Block-1.5)
- followed by an integer and a letter as the unit (k, m, g).
The default is
`2 g`

(2 GB memory).