Marcos Thank you for your advice, I will stick to the same compiler in future calculation. The compiler and compilation options are exactly the same. Have you ever calculate such a small current before? I doubt it's because the current too small and my "DM.Tolerance =0.005 "setting is too large. I will improve the accuracy and see the results.
Now I am quite confused in the TS.TBT.NEigen and TS.TBT.Eta setting. My electrodes is 6 Cu(111) atoms and the TS.TBT.NEigen is 3, is it too small? How to choose the TS.TBT.NEigen value , since the User's guide has little introduction about it. And what is TS.TBT.Eta mean? How it effect the results? Thanks! Holin Chen 2010/10/1 Marcos Veríssimo Alves <[email protected]> > Chen, > > Apart from the processors being different in the bits, is the compiler > exactly the same (I mean, same version for the compiler and libraries)? If > so, are the compilation options the same in both clusters? If the answer to > the two previous questions is yes, then it might be a matter of the > precision in the representation of data in both clusters **due to the > compiler you are using**, i.e., caused by the use of a different bit > precision. I say "might" because I don't remember having tested this sort of > thing before - luckily I always had access to the same kind of machines when > it came to bit precision. > > I know that different compilers (different meaning ifort, pathscale and > xlf90, for example) could give you slightly different final results, and > then it is best to stick to the same compiler whenever possible, or at least > to try to make differences as small as possible by use of compilation > options that would ensure the same bit precision, if they are available (I > think they exist for some compilers). At worst, you could try compiling with > the same 32-bit compiler in both clusters, because then the internal > representation might be the same and the precision problems would, in > principle, disappear. 32-bit compilers should run without problems on 64-bit > processors - the inverse is not possible, though. > > Marcos > > > On Fri, Oct 1, 2010 at 1:13 PM, holin chen <[email protected]>wrote: > >> Dear friends, >> >> When I use transiesta to calculate a tunneling current point as >> small as 10^-13 A, I met a problem that the values of an absolutely same >> structure in 32-bit cluster and 64-bit cluster are quite different. We >> check a same structure in different voltage on different cluster and get the >> current value list as follow: >> V =[1 V 1.5 V >> 2 V ]; >> I64-bit=[2.38648209E-14 A 1.45968352E-13 A >> 2.47311892E-14 A]; >> I32-bit=[4.67725291E-15 A 5.93199295E-14 A >> 3.98557086E-14 A ]; >> Then I compare the output file, find that the difference begin from the >> transiesta calculation(see the underline in fig1). >> >> And then we check another structure whose tunneling current is about >> 10^-6 A, the difference between different cluster is as small as 7%, which >> is acceptable.So I doubt if the current is too small so that a subtle >> tolerance will cause large difference. If so , how can transiesta calculate >> the small currents? >> >> My second problem is about the transmission plot. I don't know why >> there are so many peaks on my plot (see fig2). Is it able to change some >> settings from the fdf so that the plot could be a little smoother? My fdf >> file setting is as follow. There is a setting 'TS.TBT.Eta 0.000001 >> Ry' I underline by yellow color, which is copied from the example >> "TranSIESTA_Steps". I can't find the explanation from the siesta User's >> guide. Could you tell me the meaning of it? >> >> Thanks a lot! >> Best wishes! >> >> >> >> >> >> >> >> >> >> ------------------------------------------------------------------------------------- >> SystemName scat >> >> SystemLabel scat >> >> %block kgrid_Monkhorst_Pack >> >> 30 0 0 0.0 >> >> 0 20 0 0.0 >> >> 0 0 1 0.0 >> >> %endblock kgrid_Monkhorst_Pack >> >> xc.functional LDA >> >> xc.authors CA >> >> MeshCutoff 200.00000000 Ry >> >> SolutionMethod Transiesta >> >> OccupationFunction MP >> >> ElectronicTemperature 300 K >> >> SpinPolarized F >> >> FixSpin F >> >> MaxSCFIterations 1000 >> >> DM.NumberPulay 6 >> >> DM.NumberBroyden 0 >> >> DM.MixingWeight 0.1000000000 >> >> DM.OccupancyTolerance 0.1000000000E-11 >> >> DM.NumberKick 0 >> >> DM.KickMixingWeight 0.5000000000 >> >> DM.Tolerance 0.005 >> >> UseSaveData T >> >> MD.NumCGsteps 0 >> >> MD.TypeOfRun Verlet >> >> MD.VariableCell F >> >> MD.MaxCGDispl 0.2000000000 Bohr >> >> MD.MaxForceTol 0.05 eV/Ang >> >> #MD.MaxStressTol 0.0001 eV/Ang**3 >> >> Diag.ParallelOverK F >> >> Diag.DivideAndConquer F >> >> PAO.EnergyShift 50 meV >> >> PAO.SplitNorm 0.1500000000 >> >> PAO.BasisType split >> >> WriteMullikenPop 0 >> >> WriteBands F >> >> SaveRho F >> >> SaveElectrostaticPotential F >> >> SaveTotalPotential F >> >> WriteCoorXmol T >> >> %block ExternalElectricField >> >> 0.000 0.000 0.000 V/Ang >> >> %endblock ExternalElectricField >> >> %include SPOSITIONS.fdf >> >> # Transiesta information >> >> SolutionMethod Transiesta >> >> # GENGF OPTIONS >> >> TS.ComplexContour.Emin -28 eV >> >> TS.ComplexContour.NPoles 16 >> >> TS.ComplexContour.NCircle 16 >> >> TS.ComplexContour.NLine 10 >> >> # BIAS OPTIONS >> >> TS.biasContour.NumPoints 10 >> >> # TS OPTIONS >> >> TS.Voltage 1.15 eV >> >> # TBT OPTIONS >> >> TS.TBT.Emin -3 eV >> >> TS.TBT.Emax +3 eV >> >> TS.TBT.NPoints 500 >> >> TS.TBT.NEigen 3 >> >> TS.TBT.Eta 0.000001 Ry >> >> # Write electrode hamiltonian >> >> TS.SaveHS .true. >> >> TS.SaveLead .true. >> >> # LEFT ELECTRODE >> >> TS.HSFileLeft ./Left-elec.TSHS >> >> TS.NumUsedAtomsLeft 6 >> >> TS.BufferAtomsLeft 0 >> >> # RIGHT ELECTRODE >> >> TS.HSFileRight ./Right-elec.TSHS >> >> TS.NumUsedAtomsRight 6 >> >> TS.BufferAtomsRight 0 >> >> >> >> >> >> Holin Chen >> > >
