ubermag / help

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

Dispersion of magnonic crystal #142

Open Ayers6991 opened 3 years ago

Ayers6991 commented 3 years ago

Hello, Is it possible to calculate dispersion of magnonic crystal via Ubermag? Thanks,

marijanbeg commented 3 years ago

Hi @Ayers6991, thank you for your question and for using Ubermag. I transferred your issue to our help repository (https://github.com/ubermag/help). This is the repository we monitor regularly and where you can get support from others in the community. Therefore, we would encourage you to raise future issues in this repository.

marijanbeg commented 3 years ago

Could you please point us to a reference (e.g. a paper) where the procedure you want to follow is described?

Ayers6991 commented 3 years ago

Reference paper: G. Venkat et al., "Proposal for a Standard Micromagnetic Problem: Spin Wave Dispersion in a Magnonic Waveguide," in IEEE Transactions on Magnetics, vol. 49, no. 1, pp. 524-529, Jan. 2013, doi: 10.1109/TMAG.2012.2206820.

On Thu, 10 Jun 2021, 9:01 pm Marijan Beg, @.***> wrote:

Could you please point us to a reference (e.g. a paper) where the procedure you want to follow is described?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/ubermag/help/issues/142#issuecomment-858723104, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQDZV5VP3W5IPSSZW2XJLIDTSDLGVANCNFSM46OVSHQA .

marijanbeg commented 3 years ago

Hi @Ayers6991, thank you for the clarification. Yes, this is possible to do in Ubermag.

Please note that using Ubermag you can perform micromagnetic simulations and obtain results. After that, postprocessing is done using some of the packages from the Python's ecosystem. Please try to write the code and we will help you on the way.

marijanbeg commented 3 years ago

Hi @Ayers6991, we think it would be great if we could work on this together with you. We could start by you sharing the Jupyter notebook where you outline the requirements, share equations, and attempt computing the dispersion. After that, we could exchange the notebook several times until we get the solution you need. Besides, we can identify if there are any functionalities we can move to Ubermag to make this computation easier, and we can use your notebook as a tutorial for other users and acknowledge you as a contributor to Ubermag.

CarpCarpKing commented 2 years ago

Thank you for your answer. To do so, I have to know the m-components in each cell in each time step. Could I obtain that data from ubermag?

marijanbeg commented 2 years ago

Hi @CarpCarpKing, yes, this data is saved during simulations and can be accessed using micromagneticdata package. You can have a look at: https://ubermag.github.io/workshop/tutorials/vortex-dynamics.html

Please have a go, and let us know if you need help at any stage :)

fangohr commented 2 years ago

This may also be useful (some scripts related to the publication kindly mentioned by @Ayers6991 ): http://www.ee.iitm.ac.in/exporedmine/projects/mag-public/wiki/Spin_wave_standard_problem

samjrholt commented 2 years ago

@CarpCarpKing I have previously been looking into performing Fourier transforms on spatially resolved data and I think something along the lines of the following might be a good starting point for you

drive = mic_d.Drive(name='standard_problem', number=?)
time_ft_field = []
for field in drive:
    time_ft_field.append(field.fftn.array)
f = np.fft.rfft(time_ft_field, axis=0)
CarpCarpKing commented 2 years ago

Thank you for your kind comments. Before applying it to my samples, I just wanted to simulate the sample of the paper mentioned by @Ayers6991. Finally, I could obtain the dispersion curve by using avf2odt in OOMMF as postprocessing. Thank you again for your help!

marijanbeg commented 2 years ago

Hi @CarpCarpKing, thank you for the update. If I understand correctly, you did not use Ubermag in the end? Is that correct?

CarpCarpKing commented 2 years ago

The simulation was operated in Ubermag. But I could not find the method to gain each m-component. So, by using OOMMF I was able to obtain the data from each TimeDriver-Magnetisation.omf file. The code which I tried is below

import micromagneticdata as md

data = md.Data(name=system.name) data.info drive = data[1] (data[1] is TimeDriver) drive.table

Then there are only average m-components in drive.table.

marijanbeg commented 2 years ago

Thank you for the clarification. Individual magnetisation fields can be accessed as:

data = md.Data(name=system.name)
drive = data[1]
drive[n]  # n is the time step (0, 1, 2, 3, 4, 5,...)