spirit-code / spirit

Atomistic Spin Simulation Framework
http://spirit-code.github.io
MIT License
118 stars 52 forks source link

Spin-orbit torque #601

Open zangyuzhe opened 3 years ago

zangyuzhe commented 3 years ago

Hello,

We want to use spin orbit torque in the Spirit. Bu we found there is only zhang-li model. Are we able to use Slonczewski model for spin torque?

And when setting the magnitude of the current strength for the STT, is it actually setting u, which has a unit of m/s?

Many thanks

GPMueller commented 3 years ago

The documentation is lacking in this regard... Thanks for pointing it out and sorry that this basic info is not obviously accessible.

In the input file, you can specify llg_stt_use_gradient 0 to switch from the Zhang-Li model to Slonczewski. The same can be set in the GUI and you can also use the corresponding API.


Regarding the units, I'm not 100% sure right now, as I haven't used the feature in quite a while. But I believe when setting the magnitude in the Zhang-Li model, you are setting the value of u * norm(j_e) in equation (10) of our paper

image

https://github.com/spirit-code/spirit/blob/14ed7782bd23f4828bf23ab8136ae31a21037bb3/core/src/engine/Method_LLG.cpp#L187-L195

The implementation of Slonczewski's model (monolayer approximation) in Spirit is according to Chureemart et al:

https://github.com/spirit-code/spirit/blob/14ed7782bd23f4828bf23ab8136ae31a21037bb3/core/src/engine/Method_LLG.cpp#L198-L200

so the magnitude corresponds to a_j in this equation, as the spin polarisation vector S_p is normalised:

image