# transiesta does not converge for biased system

Asked by Leonardo Fonseca on 2018-10-08

Dear Siesta users,

I am running transiesta on a metal/heavily p-doped semiconductor/metal system. At zero bias transiesta converges well according to the following convergence criteria
SCF.Mix density
SCF.DM.Converge .true.
SCF.DM.Tolerance 1.d-4
SCF.H.Converge .true.
SCF.H.Tolerance 1.d-3 eV

However, as soon as there is a non-zero bias I am unable to converge, even for very small values for the bias, say 0.1 eV. I tried different values for mixing and different grid spacing for the equilibrium and non-equilibrium parts. I have also controlled the variation of the Fermi level. Nothing helped. The convergence does make progress, but stops short of the criteria above. For example, using SCF.Mix density I can only reach an error of about 7e-3 for the density matrix while for the hamiltonian it does much better:

ts-scf: 82 -148924.176493 -148924.299263 -148924.299263 0.007402 -3.579231 0.000068
ts-scf: 83 -148924.177217 -148924.300175 -148924.300175 0.007312 -3.579231 0.000209
ts-scf: 84 -148924.178657 -148924.300099 -148924.300099 0.007197 -3.579231 0.000103

If I continue the calculation above the total energy keeps oscillating in the third decimal value. If I use instead SCF.Mix hamiltonian, then the density matrix converges well but the hamiltonian does not:

ts-scf: 44 -148924.261238 -148924.250726 -148924.250726 0.003672 -3.579231 0.022974
ts-scf: 45 -148924.247314 -148924.248288 -148924.248288 0.003802 -3.579231 0.018166
ts-scf: 46 -148924.225513 -148924.233580 -148924.233580 0.002878 -3.579231 0.028566
ts-scf: 47 -148924.269291 -148924.256242 -148924.256242 0.000828 -3.579231 0.007620
ts-scf: 48 -148925.094886 -148924.955382 -148924.955382 0.011201 -3.578819 0.369875
ts-scf: 49 -148924.966051 -148924.962300 -148924.962300 0.000209 -3.578819 0.376305
ts-scf: 50 -148924.941578 -148924.948857 -148924.948857 0.000210 -3.578819 0.372517

Here the oscillation is in the first decimal value. I have done many biased calculations before without this problem. Can anybody help with some ideas on how to control these oscillations to reach the desired convergence criteria?

Thanks a lot, Leo

## Question information

Language:
English Edit question
Status:
For:
Siesta Edit question
Assignee:
No assignee Edit question
Last query:
 Revision history for this message Nick Papior (nickpapior) said on 2018-10-17: #1

What was your mixing weights tried? It maybe needs to be really low.

Sometimes it may just be because a specific bias is tricky. Also try and change the bias value.

 Revision history for this message Leonardo Fonseca (fonseca65) said on 2018-10-17: #2

Hi Nick, thanks for the answer. My mixing parameters go from 0.0005 to
0.002 (see below). Since I wrote my question I tried to decrease my energy
window (bias) step size, from 0.1 eV to 0.05 eV. Then I succeeded to go
from 0 to 0.05 to 0.10 eV. I am now trying 0.15 eV. Still, convergence is
very hard, requiring hundreds of steps for each energy window value.
Perhaps by lowering the mixing parameters even further as you suggested may
help:

%block SCF.Mixers
init
mid
final
%endblock
%block SCF.Mixer.init
method pulay
weight 0.0005
history 8
next mid
next.p 0.001
%endblock
%block SCF.Mixer.mid
method pulay
weight 0.001
history 8
next final
next.p 0.0001
%endblock
%block SCF.Mixer.final
method pulay
weight 0.002
history 8
%endblock

Em qua, 17 de out de 2018 às 15:57, Nick Papior <

> Your question #674857 on Siesta changed:
>
>
> Nick Papior proposed the following answer:
> What was your mixing weights tried? It maybe needs to be really low.
>
> Sometimes it may just be because a specific bias is tricky. Also try and
> change the bias value.
>
> --
> know that it is solved:
>
> If you still need help, you can reply to this email or go to the
> following page to enter your feedback:
>
>

 Revision history for this message Nick Papior (nickpapior) said on 2018-10-17: #3

You could try with a little less history steps, sometimes the history retains some fluctuations making it harder to converge.

Also, sometimes uneven number of history steps is better because it *may* remove some symmetry in the history.
Note, these things are _very_ system dependent.