[nmag-users] Non-uniform current density

87 views
Skip to first unread message

Miftah Al-Mahdwi

unread,
Feb 28, 2014, 1:40:25 AM2/28/14
to nmag-...@lists.soton.ac.uk
Dear NMag community and developers,

In our group we make spin-torque oscillators based on nano-contacts (1~2nms) through alumina barrier (currently vortex-based). We would like to clarify the effect of nano-contacts on vortex oscillations in the free layer. This requires the ability to simulate a non-uniform current density through the pillar. Judging from the manual, it seems that current density is implemented as a constant. Is my understanding correct? (note: set_current_density does not have an entry in Command Reference section)

When I tried a current density of the following form, no error appeared, but results did not change.
J_pil = [0,0,1e12]
def J_func((x,y,z)):
    r_NC=3.0e-9
    if ((x-0)**2  +  (y-0)**2) <= r_NC**2:
        print x,y,J_pil
        return J_pil
    else:
        return [0.0,0.0,0.0]
sim.set_current_density(J_func,unit=SI('A/m^2'))

Is there a workaround for this (e.g. nonuniform llg_polarisation or llg_damping). Or do we need to improve the relevant section in code.
Since it was already done, it is probably not trivial, but if you guide us to the relevant parts, we can try ourselves or with other groups in our school.

There was an older post before on the same subject, but it seems not active.
https://groups.google.com/forum/#!searchin/nmag-users/current/nmag-users/iS3S27cW_Qk/fFli7XKtpHYJ

Best wishes,
Miftah, Tohoku University

Fangohr H.

unread,
Feb 28, 2014, 4:21:25 AM2/28/14
to Miftah Al-Mahdwi, Fangohr H., nmag-...@lists.soton.ac.uk
Dear Miftah,
https://groups.google.com/forum/#!searchin/nmag-users/current/nmag-users/iS3S27cW_Qk/fFli7XKtpHYJ<https://groups.google.com/forum/#%21searchin/nmag-users/current/nmag-users/iS3S27cW_Qk/fFli7XKtpHYJ>


thank you for the clear summary, and for referring to the older message regarding this topic. I did reply to that older email off-list after clarifying the question. Here is the reply:

Dear Khan,

so your question is really about the non-uniform current density? If this works, (I would need to test or look it up and am currently travelling), you can set a non-uniform current density in the same way you would set the magnetisation depending on space.

For example

http://nmag.soton.ac.uk/nmag/current/manual/singlehtml/manual.html#spin-waves-example

shows how to use set_m to set a non-uniform magnetisation,

and you should (!) be able to use set_current_density in the same way to set a non-uniform current density. (Untested at the moment; please let me know if this works or doesn't'.)


Regards,

Hans

So the short answer is: yes, I’d expect this to work but am not entirely certain ;-) - I haven’t heard back from Khan at the time.

The fact that you don’t get an error message is promising. Is it possible your mesh has no nodes around the origin, or no nodes within the region of the disk, so that only the ‘else’ branch of your if-statement is executed?

Best wishes,

Hans

Miftah Al-Mahdwi

unread,
Aug 20, 2014, 10:33:06 AM8/20/14
to Fangohr H., nmag-...@lists.soton.ac.uk
Dear Hans and all,

Sorry for much delayed response. The answer for question was simply that we needed a pinned layer to define spin polarization direction (using set_pinning). MagMaterial  sets only the polarization amplitude with no way to set direction.
At least for uniform current density, we checked that the direction of the pinned layer influenced oscillations. We confirmed the combinations of vortex direction *p*, pinned layer direction *P* (inp, op up or down) and current direction *I* produced the expected results of vortex core gyration only if pPI > 0 [
K. Y. Guslienko, G. R. Aranda, and J. Gonzalez, J. Phys.: Conf. Ser. 292, 012006 (2011)].

Best wishes,
Miftah

Reply all
Reply to author
Forward
0 new messages