Chen, I have never performed serious transport calculations to this moment, so I am not aware of the possible difficulties from the point of view of the physics. I was only talking with a focus on the numerics. Someone else could give you some answer on that, I suppose. However, if the compilers differe only in their bit precisions, then it is definitely worth trying to compile with a 32-bit compiler on the 64-bit machine. If you still get numerical differences after this - but then, once more, making sure that libraries and compilation options are EXACTLY the same on the two machines - then I would have no clue.
Just out of curiosity, could you tell me what compiler and compilation flags you are using? Marcos On Fri, Oct 1, 2010 at 2:16 PM, holin chen <[email protected]> wrote: > 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 >>> >> >> >
