# Descriptions for the input of turbo_davidson.x
# Created by Xiaochaun Ge (Jun. 2013)

=====================================
num_eign  Default: 1
num_init  Default: 2

Here you indicate the number of eigenstates that you would like to calculate at once.

=====================================
num_basis_max Default: 20

The maximum number of basis that you allow for the sub basis set. One should notice 
that the memory requirement of davidson algorithm is mainly determined by this variable. 
An estimation of the memory is reported at the first of the run. 

=====================================
residue_conv_thr Default: 1.0E-4

The convergence level of the residue.


=====================================
precondition  Default: .true.

If or not use the precondition. At this moment, one sees no reason not to use precondition. 


=====================================
single_pole Default: .false.

A slightly better way to set the initial trial vectors. But the improvement is really small
and this flag at this moment is comparable with only LDA/PBE + NC PPs. So don't use it unless
it's really necessary. 


=====================================
reference Default: 0 (Unit: Ry)

One of the highlight variable. Use it to constrain the algorithm converge to these eigenstates
having energy close to the reference. So one can calculate less eigenstates at once and do multiple
calculations with different reference


=====================================
     broadening=0.005
     start=0.0d0
     finish=1.0d0
     step=0.01d0

Flags for ploting the spectrum. Meanings of them shoulbd be self-evident. All units are "Ry"

=====================================
     if_random_init=.false.

Using preconditional random vectors as the trail vectors. Used only in special cases that you 
do hate, and I don't see why, to calculate a few virtual states(Even the precision doesn't need
to be high). Using bad trial vectors should cause only slow convergence, and don't affect the final 
resulta.


=====================================
     p_nbnd_occ=10
     p_nbnd_virt=10

They are useful when there're too many occ/virt states pairs, and you care of only a few of them. 
p_nbnd_occ and p_nbnd_virt indicate how many occ and virt states you would like to look at.
In priciple they affect only the interpretation of the eigenstates, but no influence to their energy
and the spectrum. 
Make sure that min(p_nbnd_occ,nbnd_occ)*min(p_nbnd_virt,nbnd_virt) is lager than the number of initial
vectors, so you won't end up using rendom trail vectors which will slow down your convergence. 


=====================================
     poor_of_ram=.false.

When this set to true, you double the memory used for USPP calculation, but you get rid of applying many
times of s_psi and cal_bec calculation, which takes a lot of time (sometimes more than half of the whole
calculation) when the size of sub space is more than 100. 

=====================================
     poor_of_ram2=.true.

Another option to burn the memory to boom the speed. It will store the D_ and C_ basis so the calculation will
be speeded up a lot when one is calculating many transitions at the same time. 

=====================================
     max_iter=100

When the number of iterations arrives this number, the calculation will stop even if the convergence has not arrived

