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:
Answered
For:
Siesta Edit question
Assignee:
No assignee Edit question
Last query:
2018-10-17
Last reply:
2018-10-17
Nick Papior (nickpapior) said : #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.

Leonardo Fonseca (fonseca65) said : #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 <
<email address hidden>> escreveu:

> Your question #674857 on Siesta changed:
> https://answers.launchpad.net/siesta/+question/674857
>
> 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:
> https://answers.launchpad.net/siesta/+question/674857/+confirm?answer_id=0
>
> If you still need help, you can reply to this email or go to the
> following page to enter your feedback:
> https://answers.launchpad.net/siesta/+question/674857
>
> You received this question notification because you asked the question.
>

Nick Papior (nickpapior) said : #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.

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.