def excite_system(mesh): # Specify the stt dynamics in the simulation sim = Sim(mesh, name='dyn2', driver='llg_stt') sim.driver.set_tols(rtol=1e-12, atol=1e-14) sim.driver.alpha = 0.2 sim.driver.gamma = 2.211e5 sim.Ms = 8.6e5 # sim.set_m(init_m) sim.set_m(np.load('m0.npy')) # Energies A = 1.3e-11 exch = UniformExchange(A=A) sim.add(exch) anis = UniaxialAnisotropy(5e4) sim.add(anis) # dmi = DMI(D=8e-4) # sim.add(dmi) # Set the current in the x direction, in A / m # beta is the parameter in the STT torque def jx_func(pos, t): T = 1e-9 return (-1e12 + -0.1e12 * np.sin(t / T)) sim.driver.jx_function = jx_func sim.driver.beta = 0.01 # The simulation will run for 5 ns and save # 500 snapshots of the system in the process ts = np.linspace(0, 10e-9, 1001) for t in ts: print('time', t) sim.driver.run_until(t) print('j = {}'.format(sim.driver._jx[0])) sim.save_vtk() sim.save_m()
def excite_system(mesh, time=5, snaps=501): # Specify the stt dynamics in the simulation sim = Sim(mesh, name='dyn', driver='llg_stt') # Set the simulation parameters sim.set_tols(rtol=1e-12, atol=1e-14) sim.alpha = 0.05 sim.gamma = 2.211e5 sim.Ms = 8.6e5 # Load the initial state from the npy file saved # in the realxation sim.set_m(np.load('m0.npy')) # Add the energies A = 1.3e-11 exch = UniformExchange(A=A) sim.add(exch) anis = UniaxialAnisotropy(5e4) sim.add(anis) # dmi = DMI(D=8e-4) # sim.add(dmi) # Set the current in the x direction, in A / m # beta is the parameter in the STT torque sim.jx = -1e12 sim.beta = 1 # The simulation will run for x ns and save # 'snaps' snapshots of the system in the process ts = np.linspace(0, time * 1e-9, snaps) for t in ts: print 'time', t sim.run_until(t) sim.save_vtk() sim.save_m()
def excite_system(mesh, time=5, snaps=501): # Specify the stt dynamics in the simulation sim = Sim(mesh, name='dyn', driver='llg_stt') # Set the simulation parameters sim.driver.set_tols(rtol=1e-12, atol=1e-14) sim.driver.alpha = 0.05 sim.gamma = 2.211e5 sim.Ms = 8.6e5 # Load the initial state from the npy file saved # in the realxation sim.set_m(np.load('m0.npy')) # Add the energies A = 1.3e-11 exch = UniformExchange(A=A) sim.add(exch) anis = UniaxialAnisotropy(5e4) sim.add(anis) # dmi = DMI(D=8e-4) # sim.add(dmi) # Set the current in the x direction, in A / m # beta is the parameter in the STT torque sim.driver.jx = -1e12 sim.driver.beta = 1 # The simulation will run for x ns and save # 'snaps' snapshots of the system in the process ts = np.linspace(0, time * 1e-9, snaps) for t in ts: print('time', t) sim.driver.run_until(t) sim.save_vtk() sim.save_m()
tenergy.set_text('Energy: {:.6e} ns'.format(sim.compute_energy())) # fig.show() fig.canvas.draw() else: # Fidimag automatically saves the last state sim.do_precession = False sim.relax(dt=1e-13, stopping_dmdt=args.stopping_dmdt, max_steps=args.max_steps, save_m_steps=args.save_files, save_vtk_steps=args.save_files) # Save final states sim.save_m() sim.save_vtk() # ------------------------------------------------------------------------- # Files ------------------------------------------------------------------- # ------------------------------------------------------------------------- npy_dir = 'npys/' vtk_dir = 'vtks/' txt_dir = 'txts/' if not os.path.exists(npy_dir): os.makedirs(npy_dir) if not os.path.exists(vtk_dir): os.makedirs(vtk_dir) if not os.path.exists(txt_dir):
ttime.set_text('Time: {:.4f} ns'.format(time * 1e9)) tenergy.set_text('Energy: {:.6e} ns'.format(sim.compute_energy())) # fig.show() fig.canvas.draw() else: # Fidimag automatically saves the last state sim.do_precession = False sim.relax(dt=1e-13, stopping_dmdt=args.stopping_dmdt, max_steps=args.max_steps, save_m_steps=args.save_files, save_vtk_steps=args.save_files) # Save final states sim.save_m() sim.save_vtk() # ------------------------------------------------------------------------- # Files ------------------------------------------------------------------- # ------------------------------------------------------------------------- npy_dir = 'npys/' vtk_dir = 'vtks/' txt_dir = 'txts/' if not os.path.exists(npy_dir): os.makedirs(npy_dir) if not os.path.exists(vtk_dir): os.makedirs(vtk_dir)