-
Couldn't load subscription status.
- Fork 3
Open
Description
dear ubermag team
i had simulated the below code for dispersion relation in mumax after obtain magnetization Now, for post-processing, I am using ubermag
mumax code
//mumax 3.10 [windows_amd64 go1.11.6(gc) CUDA-11.0]
//GPU info: NVIDIA GeForce GTX 1080(8191MB), CUDA Driver 12.2, cc=6.1, using cc=61 PTX
//(c) Arne Vansteenkiste, Dynamat LAB, Ghent University, Belgium
//This is free software without any warranty. See license.txt
//********************************************************************//
// If you use mumax in any work or publication, //
// we kindly ask you to cite the references in references.bib //
//********************************************************************//
//output directory: swd.out/
setgridsize(384, 384, 1)
setcellsize(3.125e-9, 3.125e-9, 20e-9)
setPBC(4, 4, 0)
//resizing...
Aex = 13e-12
alpha = 0.01
Msat = 800e3
waveguide := square(1200e-9)
antenna := rect(1200e-9, 20e-9)
Py_waveguide := waveguide.add(antenna)
setgeom(Py_waveguide)
DefRegion(1, waveguide)
DefRegion(2, antenna)
save(regions)
m = randomMag()
B_ext = vector(0.08, 0, 0)
relax()
minimize()
save(m)
saveas(m, "final_static_Py_film")
snapshotas(m, "final_static_conf_PY_waveguide.jpg")
f0 := 2 * pi * 30e9
t0 := 5e-9
B0 := 0.01
B_ext.setRegion(2, vector(0.08, B0*sinc(f0*(t-t0)), 0))
autosave(m, 10e-12)
tableadd(B_ext)
tableautosave(10e-12)
run(15e-9)
saveas(m, "m_final")
snapshotas(m, "m_final.jpg")
//********************************************************************//
//Please cite the following references, relevant for your simulation. //
//See bibtex file in output folder for justification. //
//********************************************************************//
// * Vansteenkiste et al., AIP Adv. 4, 107133 (2014).
// * Exl et al., J. Appl. Phys. 115, 17D118 (2014).
for dispersion relations, i only use my magnetisation in this
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# Constants and dimensions
time_steps = 1500
nx = 2048
ny = 2048
nz = 1
dx = 1200e-9 / nx
dt = 10e-12
fmax = 30e9
kc = (2 * np.pi) / (2 * dx)
# Load the data for 't' and 'my' using pandas
t = np.loadtxt('C:/Users/HP/t.csv')
my_data = pd.read_csv('C:/Users/HP/my.csv', header=None)
# Convert to numpy array
my = my_data.to_numpy()
# Inspect the shape of the loaded data
print(f"Shape of t: {t.shape}")
print(f"Shape of my: {my.shape}")
# Verify the expected size
expected_size_my = time_steps * nx * ny * nz
actual_size_my = my.size
actual_size_t = t.size
if actual_size_my == expected_size_my and actual_size_t == time_steps:
# Reshape 'my' data
my = my.reshape((time_steps, nx, ny, nz))
print("Reshape successful!")
else:
raise ValueError(f"Expected size for 'my': {expected_size_my}, but got actual size: {actual_size_my}. "
f"Expected size for 't': {time_steps}, but got actual size: {actual_size_t}")
# Select the slice at y = ny//2 (midpoint)
y_index = ny // 2
# Initialize an array to store the slice data
y_slice = np.zeros((time_steps, nx))
# Extract the slice data
for t_idx in range(time_steps):
for x_idx in range(nx):
y_slice[t_idx, x_idx] = my[t_idx, x_idx, y_index, 0]
# Perform 2D FFT
my_fft = np.fft.fft2(y_slice)
my_fft_shifted = np.fft.fftshift(my_fft)
# Calculate frequency and wave vector ranges
freqs = np.fft.fftfreq(time_steps, d=dt)
k_space = np.fft.fftfreq(nx, d=dx)
# Shift zero frequency component to the center
freqs_shifted = np.fft.fftshift(freqs)
k_space_shifted = np.fft.fftshift(k_space)
# Plot the results
plt.figure(figsize=(10, 4))
extent = [k_space_shifted[0], k_space_shifted[-1], freqs_shifted[0], freqs_shifted[-1]]
plt.imshow(np.abs(my_fft_shifted)**2, extent=extent, aspect='auto', origin='lower', cmap='bwr')
plt.xlim([-kc, kc])
plt.ylim([0, fmax])
plt.xlabel('Wave Vector $k$ (1/m)')
plt.ylabel('Frequency $f$ (Hz)')
plt.title('Spin Wave Dispersion')
plt.colorbar(label='Intensity')
plt.show()
while i run this code in jupyter lab i gives following error
ValueError Traceback (most recent call last)
Cell In[13], line 36
34 print("Reshape successful!")
35 else:
---> 36 raise ValueError(f"Expected size for 'my': {expected_size_my}, but got actual size: {actual_size_my}. "
37 f"Expected size for 't': {time_steps}, but got actual size: {actual_size_t}")
39 # Select the slice at y = ny//2 (midpoint)
40 y_index = ny // 2
ValueError: Expected size for 'my': 6291456000, but got actual size: 1500. Expected size for 't': 1500, but got actual size: 1500
please help me out
Metadata
Metadata
Assignees
Labels
No labels