I believe my first email in this thread still applies. Please refer to that
for the specific tbtrans version you are using.

2015-08-04 8:12 GMT+02:00 Shihua Tan <[email protected]>:

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


-- 
Kind regards Nick

Responder a