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

English Edit question
Siesta Edit question
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Nick Papior (nickpapior) said :

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 :

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

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

Em qua, 17 de out de 2018 às 15:57, Nick Papior <
<email address hidden>> escreveu:

> Your question #674857 on Siesta changed:
> Status: Open => Answered
> 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.
> --
> If this answers your question, please go to the following page to let us
> 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:
> You received this question notification because you asked the question.

Revision history for this message
Nick Papior (nickpapior) said :

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.

Can you help with this problem?

Provide an answer of your own, or ask Leonardo Fonseca for more information if necessary.

To post a message you must log in.