Dear Nick:

       I have encountered the same problem just as Diana M. Otálvaro when
I'm running spin polarized calculations at finite bias with the tbtrans
version from siesta 3.1. Looking closely at the tbtrans.F routine from the
siesta 3.1 tbtrans, it is true that the current variable gets initialized
to 0 in line 521 when the loop of spin start, but the initialization is
placed between  " if (FirstTime) then" (line 406)  and " end if ! FirstTime
(571)  ". In my opinion, the Current does not reinitialized to 0 after the
first spin since the parameter FirstTime is reset to .false. (line 570). So
the second value should be the total Current. Does it right?

Best regards,


Shihua Tan


2012-12-13 22:30 GMT+08:00 Nick Papior Andersen <[email protected]>:

> Dear all
>
> I will here give information about the tbtrans versions.
> First of all there exists 2 different versions of tbtrans from trunk-424
> and onwards.
>
> 1. tbtrans version from siesta-3.1 and trunk-424 (in Util/TBTrans)
> I have searched through the files and found no inconsistency. The current
> gets calculated on each spin component and showed for each spin component.
> In line 317/311 of tbtrans in siesta-3.1 and trunk-424 respectively, the
> loop of the spin start. However, the current variable gets initialized to 0
> in line 521/515 respectively.
> So in that case there is no error. It is the current for each spin.
>
> 2. tbtrans_rep (my version) only from trunk-424 and trunk-427 (in
> Util/TBTrans_rep)
> Yes, here there is an error. However, the error is not that it is the
> total current.
> The error is that after the first spin we get  (below Current_spin[i] is
> the correctly calculated spin current)
>
> Current = Current_spin1
>
> After the second spin we get
>
> Current = Current_spin1*38.73*1e-6*13.6058 + Current_spin2
>
> Thus tbtrans_rep should have shown Current_spin2.
> So to find the correct Current_spin2 we find:
> Current_spin2 = Current - Current_spin1*5.26952634e-4
>
> The spin part in the tbtrans_rep has some errors
> Yes, this is wrong and I have submitted a patch for the tbtrans_rep.
> Thanks a lot for noticing it.
> In this context I also discovered another error related to the spin. This
> error was exactly what you mentioned. The averaged files for spin is the
> accumulated transmission, TDOS and PDOS.
> Here it is a simple manner of subtracting the two. If in doubt please
> contact me.
>
> I have attached a patch that should be applied to the siesta-trunk-427
> version.
>
> Kind regards Nick
>
>
> 2012/12/12 <[email protected]>
>
> Dear Dr. Andersen,
>>
>> We are running spin polarized calculations at finite bias with the
>> tbtrans version from siesta 3.1. In the tbtrans output there is a line for
>> the Spin Up current as well as a line at the end of the file with another
>> current value. We initially thought that the second values was the Spin
>> Down current; however, we now think that this second value is actually the
>> total current (Spin Up + Spin Down). Could you please confirm if this is
>> the case, that is: is second current value in the output file is indeed the
>> total current?
>>
>> Looking closely at the tbtrans.F routine from both the siesta 3.1 tbtrans
>> as well as the trunk-424 tbtrans, it seems that indeed, the current values
>> is set to 0 outside the spin loop, so that for the second spin value (Spin
>> Down) the current in not reset to 0. This is however not documented in the
>> manual and it seems to us a bit awkward programming.
>>
>> Best regards,
>>
>> Diana M. Otálvaro
>> Doctoral Candidate
>> Computational Material Science
>> MESA+ Institute for Nanotechnology
>> University of Twente
>> Enschede, Nederland
>> [email protected]
>>
>>
>>
>>
>>
>

Responder a