ubermag / help

Repository for raising issues and requesting help on Ubermag
BSD 2-Clause "Simplified" License
11 stars 3 forks source link

Initial Magnetization Value #75

Closed Ahsanu8 closed 4 years ago

Ahsanu8 commented 4 years ago

Hi Ubermag team,

I have a question related to the initial value in discretisedfield.Field. Why do we need to specify the initial value of magnetization if we want to minimize the energy and get the stable spin texture at the end? Like in vortex we started from the $$(m{x}, m{y}, m_{z}) = (-cy, cx, 10)$$ and for skyrmion, we started from magnetization pointing down in the core and points upward away from the core and then we stabilize this initial magnetization configuration. I am not sure if I am correct, I was thinking that at least in the case of a skyrmion in the presence of DMI, the spin texture should end up in a skyrmion at the end whatever the initial magnetization. Is it possible if I specify initial values like (1,1,1) and let the interaction do its work and give me a vortex state or skyrmion (depending on terms in the system.energy)?

catrevil commented 4 years ago

Hi @ahsu83 !

Here's how I understand the situation:

Is it possible if I specify initial values...

If you're not particularly limited in computational resources, I would suggest to try it and see if, with those values, that your hypothesis is not disproved, and your understanding is sound!

Why do we need to specify...

This is, of course, system dependent, but starting from a state like you've specified, you may find that the magnetic texture takes longer to relax to an equilibrium state. This increase in time would likely be in both the actual length of your simulation and in the length of your computation time, which is why I referenced possible limitations to your computational resources. It is for this reason, the increased length of your computation time, that you would want to specify the initial value of magnetization. As it is, the destination of the stable spin texture is what we are after. This means that while the journey we take to get there is somewhat important, it is okay that we begin closer to our final destination because it allows us to save some unnecessary usage of what might be valuable computational time and resources.

So, in this case, it's not so much about the journey, as it is about the destination! :)

Does this make sense? If it does not, please, let me know how I can clarify this further?

marijanbeg commented 4 years ago

Hi @ahsu83, magnetic systems usually have a lot of different local energy minima (stable/metastable/equilibrium states). Often the one with the lowest energy we call the ground state. Energy minimisation minimises the energy starting from an initial state until the "nearest" local energy minimum is reached. Therefore, it really depends on the initial magnetisation state of the system where you are going to end in the energy landscape.

In the tutorials we start from something which looks like a skyrmion in order to end up in the local energy minimum (equilibrium state/metastable state), which corresponds to the skyrmion. You can have a look at this paper (https://www.nature.com/articles/srep17137) - especially in supplementary information to get a better understanding how choosing different initial state leads to different equilibrium states. There you can see that there are many different metastable states you can have for a fixed set of parameters.

Also, micromagnetics is a zero-temperature model and does not allow "jumping" between states.

I hope you find this answer useful, but if there is anything else I can provide more information about, please feel free to reopen this issue.

(@catrevil Thanks a lot for helping others - much appreciated)

Ahsanu8 commented 4 years ago

Thanks, @marijanbeg, and @catrevil for detailed answers. The reference mentioned is very useful. I tried the initial magnetizations mentioned in the paper. They are in polar co-ordinate. Do you think, the way I defined the funtion is correct? def m_init(pos): x, y, z = pos[0]/1e-9, pos[1]/1e-9, pos[2]/1e-9 mr = 0 mthetha = np.sin(np.pi/2 (math.sqrt(x2+y2))) mz = -np.cos(np.pi/2 (math.sqrt(x2+y2))) return (mr, mtheta, mz) I got the folowing result. Last question, can I know whats the origin of initial value used in paper (its not related to ubermag, short answer will be okay)? download

marijanbeg commented 4 years ago

Hi @ahsu83, I am not sure I understand what do you mean by origin of initial value? Could you please explain more?

Ahsanu8 commented 4 years ago

Hi @marijanbeg

I mean, do we need to derive the initial values? or we can guess any initial state close to global minima which looks like skyrmion?

marijanbeg commented 4 years ago

Aha, I understand it now. Most often, you simply guess the solution. Something which is "similar" to skyrmion for example is fine. You remember from the tutorials that we initialised the system in (0, 0, 1) and (0, 0, -1) directions and got a skyrmion. In the paper I sent you, I had to use a more systematic way because I studied more complex states as well.

Ahsanu8 commented 4 years ago

Thanks @marijanbeg for all these answers.

marijanbeg commented 4 years ago

You are more than welcome!