QuantumATK Forum

QuantumATK => General Questions and Answers => Topic started by: broadcome on August 1, 2011, 08:02

Title: How to calculate upspin/dnspin current of AP/P state?
Post by: broadcome on August 1, 2011, 08:02
Dear all,

I want to get upspin/dnspin current to calculate spin transfer torque.
(T||(theta) = hbar/2e*sin(theta)*(I_ap*P_ap-I_p*P_p)/2, I=current, P=polarization, ap=anti parallel, p=parallel)

But Below script (from manual) cat not give me upspin/dnspin current of AP/P sates.
=================================================
transmission_spectrum = TransmissionSpectrum(
        configuration=device_configuration,
        energies=numpy.linspace(-0.5,0.5,10)*eV,
        kpoints=MonkhorstPackGrid(30,30)
        )
current = transmission_spectrum.current()
up_current = transmission_spectrum.current(spin=Spin.Up)
dn_current = transmission_spectrum.current(spin=Spin.Down)
==================================================

How to do to get upspin/dnspin current of AP/P, respectively?
Do I have to input Initial spin term?

I would be extremely grateful for your reply.
Best regards,

Title: Re: How to calculate upspin/dnspin current of AP/P state?
Post by: Anders Blom on August 1, 2011, 12:44
In the FeMgO tutorial, in particular http://quantumwise.com/documents/tutorials/latest/Fe-MgO-Fe/index.html/chap.mgo.anti.html#sect2.mgo.anti.tmr, is shown how to compute the 4 currents (I_p=I_d^up+I_d^dn, of course). This assumes you have separate calculations for the AP/P configuration, and the earlier chapters in the tutorial show how to perform those.

Note that as a special feature, ATK can initialize the AP calculation from the P converged result, this helps convergence a lot! This is discussed in the beginning of the section http://quantumwise.com/documents/tutorials/latest/Fe-MgO-Fe/index.html/chap.mgo.anti.html
Title: Re: How to calculate upspin/dnspin current of AP/P state?
Post by: hejun8035 on August 4, 2011, 04:56
I have read the tutorial, but still can't get the spin up/down current.(I can only get one current value by using ATK11.2.3)
Title: Re: How to calculate upspin/dnspin current of AP/P state?
Post by: Anders Blom on August 4, 2011, 11:55
If you have the 2 NC files for A and AP states, each of which contain the transmission spectrum, then you would use something like this to get the 4 currents:

Code: python
T_ap = nlread("apfile.nc",TransmissionSpectrum)[0]
T_p = nlread("pfile.nc",TransmissionSpectrum)[0]
print "P up current: ", T_p.current(spin=Spin.Up)
print "P down current: ", T_p.current(spin=Spin.Down)
print "AP up current: ", T_ap.current(spin=Spin.Up)
print "AP down current: ", T_ap.current(spin=Spin.Down)