# Problem in SCF converge in transiesta!

Hello,

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

- Language:
- English Edit question

- Status:
- Solved

- For:
- Siesta Edit question

- Assignee:
- No assignee Edit question

- Solved by:
- Nick Papior

- Solved:
- 2017-05-19

- Last query:
- 2017-05-19

- Last reply:
- 2017-05-15

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 pao.energy 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

ElectronicTempe

#=========== 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

1 0 0 0.0

0 1 0 0.0

0 0 19 0.0

%endblock kgrid_Monkhorst

#======

#=========== Output Variables =======

WriteBands .true. # Default: false

SaveRho .true. # Default: false

SaveDeltaRho .true. # Default: false

SaveHS .true. # Default: false

SaveElectrostat

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 NotScaledCartes

#======

#====== GREEN FUNCTION OPTIONS =======

TS.ComplexConto

TS.ComplexConto

TS.ComplexConto

TS.ComplexConto

#======

#=========== BIAS OPTIONS =======

TS.biasContour.

#======

#=========== 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.MixH 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.NumUsedAtoms

TS.BufferAtomsRight 0

#======

#========= Projected Density Of States ==============

#%block ProjectedDensit

#-10.00 10.00 0.0500 5000 eV

#%endblock ProjectedDensit

#TS.BiasContour.Eta 0.000001 Ry

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.