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
