# 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_0site
local_2site
local_3site
local_4site
wilson

## 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.
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).