Inserting two vortex/skyrmions

356 views
Skip to first unread message

Payal Bhattacharjee

unread,
Feb 25, 2021, 9:31:38 AM2/25/21
to mumax2
Hello everyone,

I want to insert two vortex/skyrmion in a ferromagnetic material at two different locations. Can anyone please advise me what is the command to insert the second one?

Sincerely,
Payal

Nasir Mehmood

unread,
Feb 25, 2021, 11:31:57 AM2/25/21
to mum...@googlegroups.com
you can use m.setinshape() method:

shape_1:= circle(dia).transl(x1, y1, z1)
shape_2:= circle(dia).transl(x2, y2, z2)
m.setinshape(shape_1, vortex(1,1))
m.setinshape(shape_2, vortex(1,1))

Regards
Nasir
--
You received this message because you are subscribed to the Google Groups "mumax2" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mumax2+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/mumax2/88bb10fa-f2e8-450b-a8a2-68b307a64777n%40googlegroups.com.


--
Dr. Nasir Mehmood
Post Doc Researcher
Lanzhou University, GS, PRC

Payal Bhattacharjee

unread,
Feb 26, 2021, 12:01:51 AM2/26/21
to mum...@googlegroups.com
Thank you for the response, but it is not working, it is creating two domain walls instead! 

On Thu, 25 Feb 2021, 22:01 Nasir Mehmood, <nasi...@gmail.com> wrote:
you can use m.setinshape() method:

shape_1:= circle(dia).transl(x1, y1, z1)
shape_2:= circle(dia).transl(x2, y2, z2)
m.setinshape(shape_1, vortex(1,1))
m.setinshape(shape_2, vortex(1,1))

Regards
Nasir

On Thursday, February 25, 2021, Payal Bhattacharjee <payalb...@gmail.com> wrote:
Hello everyone,

I want to insert two vortex/skyrmion in a ferromagnetic material at two different locations. Can anyone please advise me what is the command to insert the second one?

Sincerely,
Payal

--
You received this message because you are subscribed to the Google Groups "mumax2" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mumax2+un...@googlegroups.com.


--
Dr. Nasir Mehmood
Post Doc Researcher
Lanzhou University, GS, PRC

--
You received this message because you are subscribed to the Google Groups "mumax2" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mumax2+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/mumax2/CAMjvNUxRJojwXG4OfrSba70CV7iPXh79sUdu8PtMMNx6WTiM-A%40mail.gmail.com.

Payal Bhattacharjee

unread,
Feb 26, 2021, 2:56:18 AM2/26/21
to mum...@googlegroups.com
Dear Nasir Mehmood,
I am attaching the png files of the ovf files for your reference. I want two skyrmions in the nanostrip.

***********************************

Capture1.PNG
Capture2.PNG

Nasir Mehmood

unread,
Feb 26, 2021, 5:40:36 AM2/26/21
to mum...@googlegroups.com
I'm so sorry,  previously  i didn't explain much. The theme is that we have to set the skyrmion in an FM background state. So in actual, have to use "uniform" state in addition to "setinshape" method. Moreover, we have to translate the skyrmion also in accordance with the circle in which it has to be set. Here is attached a working code for this:

SetMesh(500, 100, 1, 2e-9, 2e-9, 2e-9, 0, 0, 0)

shape_1 := circle(100e-9).transl(200e-9, 0, 0 )
shape_2 := circle(100e-9).transl(-200e-9, 0, 0 )

m = Uniform(0, 0, -1)
m.setInShape(shape_1, NeelSkyrmion(1, -1).transl(200e-9, 0, 0 ))
m.setInShape(shape_2, NeelSkyrmion(1, -1).transl(-200e-9, 0, 0 ))

snapshot(m)


m000000.jpg

Nasir Mehmood

unread,
Feb 26, 2021, 5:49:34 AM2/26/21
to Mumax2
or this

SetMesh(500, 100, 1, 2e-9, 2e-9, 2e-9, 0, 0, 0)

shape_1 := circle(100e-9).transl(200e-9, 0, 0 )
shape_2 := circle(100e-9).transl(-200e-9, 0, 0 )

m = Uniform(0, 0, 1)

m.setInShape(shape_1, NeelSkyrmion(1, -1).transl(200e-9, 0, 0 ))
m.setInShape(shape_2, NeelSkyrmion(1, -1).transl(-200e-9, 0, 0 ))

snapshot(m)

with result
m000000.jpg

Payal Bhattacharjee

unread,
Feb 26, 2021, 5:51:21 AM2/26/21
to mum...@googlegroups.com
Thank you so much Dr. Nasir! I will check it out. 

Payal Bhattacharjee

unread,
Feb 26, 2021, 11:20:54 AM2/26/21
to mum...@googlegroups.com
Thanks, it's working now. 

Nasir Mehmood

unread,
Feb 26, 2021, 11:48:42 AM2/26/21
to Mumax2

Payal Bhattacharjee

unread,
Mar 15, 2021, 4:26:14 AM3/15/21
to mumax2
Can we write 'if' statement in mumax3 ? Say I want to merge two skyrmions by localizing the current density direction, can I write the statement by using 'if'?

jpla...@rams.colostate.edu

unread,
Mar 15, 2021, 6:03:44 PM3/15/21
to mumax2
Hello,

You can use if statements in mumax3 (it is a subset of the Go language, so an if statement written in Go syntax will run), but you need to be able to define the if statement in a way that the code will understand. This is very easy for simple commands.

For example, if you were running a hysteresis loop, something like

for B:=0.0; B<=Bmax; 
B+=Bstep{ B_ext = vector(B, 0, 0)
if B==0.0 {
relax() } else{ minimize()}
tablesave() }

would allow you to use relax command when the B-field is 0, and minimize otherwise. This is pretty easy, since the script is already defining B. 

It would be easy to change your current direction as a function of say, time, or applied field. If you want to base it on a condition like the magnetization texture, that would be more involved.


Best,
Josh L.

Payal Bhattacharjee

unread,
Mar 15, 2021, 10:29:14 PM3/15/21
to mum...@googlegroups.com
Thank you for the clarification. 

You received this message because you are subscribed to a topic in the Google Groups "mumax2" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/mumax2/CbXtF8S2RZs/unsubscribe.
To unsubscribe from this group and all its topics, send an email to mumax2+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/mumax2/998708b0-cc07-451e-a81f-ca5d3426d3a1n%40googlegroups.com.

Payal Bhattacharjee

unread,
Mar 17, 2021, 4:04:39 AM3/17/21
to mum...@googlegroups.com
I want to merge two skyrmions in a nanostrip by spin polarised current. My code is something like:
SetMesh(1000,100,1,1e-9,1e-9,1e-9,0,0,0)

a:=imageShape("nanostrip_xmax1000_ymax100_z1.png")
setgeom(a)

Msat = 580e3
Aex = 15e-12
Dind = 3.0e-3
Ku1 = 0.8e6
AnisU = vector(0,0,1)
alpha = 0.1

shape_1 := circle(50e-9).transl(-200e-9, 0, 0 )
shape_2 := circle(50e-9).transl(200e-9, 0, 0 )

m = Uniform(0, 0, -1)
m.setInShape(shape_1, NeelSkyrmion(1, -1).transl(-200e-9, 0, 0 ))
m.setInShape(shape_2, NeelSkyrmion(1, -1).transl(200e-9, 0, 0 ))

snapshot(m)

//m=NeelSkyrmion(1,-1)

OutputFormat = OVF1_TEXT
saveas(m,"NeelSkyrmion0")

relax()
saveas(m,"NeelSkyrmion")

xmean := 500e-9

lambda = 1
Pol = 0.4
xi = 0.2
jc:= 8e10  // current density in A/m2
   if x<=500.0 { J = vect(-jc, 0, 0)} else{ J =  vect(jc, 0, 0)}
   
//Output
autosave(m,4e-10)
tableAutosave(1e-11)
tableAdd(ext_topologicalcharge)

run(10e-9)

I have confusion in 'if' statement format since it is not working. Please suggest me where I am going wrong.

Thanks in advance.

Nasir Mehmood

unread,
Mar 17, 2021, 9:08:38 AM3/17/21
to mum...@googlegroups.com
Hello!
one issue is "vect" should be "vector" in if statement. Moreover your if statement is not well defined e.g., "x" is not clear and so on.
BTW why don't you define two regions in the track (using xrange as in Regions example https://mumax.github.io/examples.html) and then apply the specific current for each region?
To unsubscribe from this group and all its topics, send an email to mumax2+unsubscribe@googlegroups.com.

--
You received this message because you are subscribed to the Google Groups "mumax2" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mumax2+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/mumax2/CACBZJk3_uBmF%2BdEG98%3DujLLoUL%2BwE2cByNRvknxE%2BQzFhkhJeQ%40mail.gmail.com.

Payal Bhattacharjee

unread,
Mar 17, 2021, 12:46:58 PM3/17/21
to mum...@googlegroups.com
Thanks a lot! Dr. Nasir

To unsubscribe from this group and all its topics, send an email to mumax2+un...@googlegroups.com.

--
You received this message because you are subscribed to the Google Groups "mumax2" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mumax2+un...@googlegroups.com.


--
Dr. Nasir Mehmood
Post Doc Researcher
Lanzhou University, GS, PRC

--
You received this message because you are subscribed to the Google Groups "mumax2" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mumax2+un...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages