Problem in SCF converge in transiesta!

Asked by Ali Jafari on 2017-05-10

I want to calculate transport properties (I-V curve) by using TRANSIESTA,as long as the bias is low, the TRANSIESTA calculation is OK but i change voltage to 0.5 ,SCF did not converge in maximum number of steps.
I increased electrode size or change mixing wieght and number pulay several time but it is not converged .
Please help to solve this problem.
best regards .

Question information

English Edit question
Siesta Edit question
No assignee Edit question
Solved by:
Nick Papior
Last query:
Last reply:
Nick Papior (nickpapior) said : #1

Sometimes a certain bias is difficult to converge due to a state _just_ at the chemical potentials.
Perhaps you could try to increase the bias by a little amount (say 0.05 eV).

Also, when starting/restarting bias calculations with transiesta, please copy the TSDE file from the closest bias to greatly speed up convergence.

Ali Jafari (maj7293) said : #2

Thanks for your answer dear Nick Papior,
But I've done all the following operations on the structure and TRANSIESTA's fdf and unfortunately neither have not solved the problem:
1.I change and reduce Mixing wieght and Number pulay for high voltage.
2.Increasing the size of the electrodes and SR.
3.increasing the K-point in transport's direction.
4.incresing TS.BiasContour.Eta to 0.001 Ry .
5.i change the Numpoint for each bias ,for example for voltage=0 that's zero and for voltage=0.1 i change it to 10 and as the same way for high bias .
6.using TS.UpdateDMCROnly or using FD instead of MP for OccupationFunction.
7.using DZP instead of SZP and optimized value for splitnorm and shift and … .
8. i attache my fdf's file for you :
**I've cleared the additional part in my fdf's file .

UseSaveData .true. # Default: false
DM.UseSaveDM .true. # Default: false

Diag.ParallelOverK T # .True. is only useful where the number
#=========== Basis set definition =================
PAO.EnergyShift 3 meV
PAO.SplitNorm 0.25
PAO.BasisSize DZP
PAO.BasisType split
#=========== Convergence of SCF ==================
MaxSCFIterations 1000
MeshCutoff 580 Ry
DM.MixingWeight 0.09
DM.NumberPulay 12
DM.NUmberKick 100
DM.Tolerance 1.0d-4
DM.MixSCF1 .true.
XC.functional GGA #Density functional (Notice that Xc.authors and XC.functional
XC.authors PBE #are both needed and must be consistent)
SolutionMethod transiesta # Type of solution (diagon is the default for less than 100 atoms)
OccupationFunction FD
ElectronicTemperature 300 K
#=========== Geometrical optimization ==============
MD.TypeOfRun CG
MD.NumCGsteps 0
#MD.MaxCGDispl 0.1 Bohr
#MD.MaxForceTol 0.01d0 eV/Ang
#MD.VariableCell .true.
#=========== Spin Polarization =====================
#SpinPolarized .true.
#DM.InitSpinAF .true.
#=== k-mesh for Brillouin zone integration =========
#kgridCutoff 3.83/2 Ang
%block kgrid_Monkhorst_Pack
 1 0 0 0.0
 0 1 0 0.0
 0 0 19 0.0
%endblock kgrid_Monkhorst_Pack
#=========== Output Variables =====================
WriteBands .true. # Default: false
SaveRho .true. # Default: false
SaveDeltaRho .true. # Default: false
SaveHS .true. # Default: false
SaveElectrostaticPotential .true. # Default: false
SaveTotalPotential .true. # Default: false
WriteCoorStep .true. # Default: false
WriteForces .true. # Default: false
WriteMDhistory .true. # Default: false
WriteCoorXmol .true. # Default: false
WriteDenchar .true. # Default:
WriteKpoints .true. # Default:
WriteDM .true. # Default: true
WriteXML .true. # Default:
WriteEigenvalues .true. # Default:
WriteWaveFunctions .true. # Default:
WriteMDXmol .true. # Default: false
WriteMullikenPop 1
AtomCoorFormatOut NotScaledCartesianAng
#====== GREEN FUNCTION OPTIONS ====================
TS.ComplexContour.Emin -40 eV
TS.ComplexContour.NPoles 10
TS.ComplexContour.NCircle 29
TS.ComplexContour.NLine 11
#=========== BIAS OPTIONS =====================
TS.biasContour.NumPoints 50
#=========== TS OPTIONS =====================
TS.Voltage 0.5 eV
#=========== TBT OPTIONS =====================
TS.TBT.Emin -3 eV
TS.TBT.Emax +3 eV
TS.TBT.NPoints 501
TS.TBT.NEigen 3
TS.TBT.Eta 0.0001 Ry

#=========== Write electrode hamiltonian ===========
TS.SaveHS .true.
TS.SaveLead .true.
WriteDM T
TS.UpdateDMCROnly F
SCFMustConverge T
#=========== LEFT ELECTRODE =====================
TS.HSFileLeft ./elec.TSHS
TS.NumUsedAtomsLeft 34
TS.BufferAtomsLeft 0
#=========== RIGHT ELECTRODE =====================
TS.HSFileRight ./elec.TSHS
TS.NumUsedAtomsRight 34
TS.BufferAtomsRight 0
#========= Projected Density Of States ==============
#%block ProjectedDensityOfStates
#-10.00 10.00 0.0500 5000 eV
#%endblock ProjectedDensityOfStates
#TS.BiasContour.Eta 0.000001 Ry

Best Nick Papior (nickpapior) said : #3

You haven't listed the _one_ thing I mentioned you could try. Please do so.

Otherwise here are some general comments:
1. is a good idea, this will typically solve many problems.
2. Increasing the size of the electrodes (along the transport direction) will only help if they are too small, increasing in SR should always help.
3. Changing number of k-points along transport direction has _no_ influence on convergence. Please consider what k-points and self-energies mean.
4. You can "probably" increase it to 0.001 eV without problems.
5. Good idea, always keep a fixed ratio for different bias. In your case you use 0.01 eV / point (seems fine)
6. TS.UpdateDMCROnly may help, however, changing the occupation function has no influence on the transiesta part.
7. So long the physics are correct these are good to test.

Lastly, know that transiesta convergence isn't guaranteed, so a lot of trial and error will often be required.

Ali Jafari (maj7293) said : #5

Thanks Nick Papior, that solved my question.