A magnetic vortex structure is created in a permalloy square. Then a spin-polarized alternating current is applied to the system. The frequency of the current matches the resonance frequency of the vortex. Thus the vortex is excited and switches.
from magnum import * from math import * from os import * # Set some Simulation Constants cells_x = 100 cells_y = 100 cells_z = 1 thickness = 2e-8 core_x = 1e-7 core_y = 1e-7 # Define a world made of permalloy mesh = RectangularMesh((cells_x, cells_y, cells_z), (2e-9, 2e-9, thickness)) world = World(mesh, Body('sample',Material.Py())) # Initialize Simulation: Set the magnetization to a predefined state # with a vortex and relax solver = create_solver(world, [StrayField, ExchangeField], log=True) solver.state.M = vortex.magnetizationFunction(core_x, core_y, 1) solver.state.alpha = 0.3 solver.relax() # save relaxed state for the next step mag = solver.state.M # Excite the vortex by an AC current solver = create_solver( world, [StrayField, ExchangeField, ExternalField], log=True) solver.state.M = mag solver.state.H_ext_amp = (10e-3/MU0, 0, 0) solver.state.H_ext_freq = (4.4e9, 0, 0) # Create step handler that finds and saves the position of the # vortex as well log = DataTableLog("data.odt") log.addColumn( ("Vortexcore X-pos.", "core_x"), ("Vortexcore Y-pos.", "core_y"), lambda state: vortex.findCore2(solver, core_x, core_y)) vtkh = VTKStorage("./","M") # Add the step handlers solver.addStepHandler(log, condition.EveryNthStep(10)) solver.addStepHandler(vtkh , condition.EveryNthStep(100)) # Simulate for 27 ns solver.solve(condition.Time(2.7e-8))
Due to the resonant excitation the vortex starts to gyrate and finally switches.
The time evolution of the z-Component of the magnetization rendered with ParaView