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

Responder a