inputファイルの記述
# -*- coding: utf-8 -*- # 日本語のコメントに必要
from mumax2 import * # mumax2のインポート
# 細線+磁気異方性+磁場+温度
# セル数の設定
# 2のべき乗がベストです。
Nx = 512
Ny = 50
Nz = 1
setgridsize(Nx, Ny, Nz)
# セルサイズ
cellX = 3e-9
cellY = 3e-9
cellZ = 3.4e-9
setcellsize(cellX, cellY, cellZ)
# モジュールの読み込み
load('micromagnetism')
load('solver/rk12') # adaptive Euler-Heun solver
load('anisotropy/uniaxial') # 異方性を設定するために必要
load('temperature/brown') # 温度を設定するために必要
# solverの設定
setv('dt', 1e-15) # inital time step
setv('m_maxerror', 1./3000) # maximum error per step
# 物質定数の設定
setv('Msat', 6.6e5) # 飽和磁化 Msat
setv('Aex', 1e-11) # 交換定数 Aex
setv('alpha', 1) # ダンピング定数 α
setv('Ku', 4.1e5) # 磁気異方性定数 Ku
setv('anisU', [0,0,1]) # 磁化容易軸の方向ベクトル
setv('temp', 300) # 温度 300K
# 初期磁化の設定
m=[ [[[0]]], [[[0]]], [[[1]]] ]
setarray('m', m)
saveas("m", "png", [], "initial.png") # png形式で磁化配列mを保存
saveas("m", "omf", ["Text"], "initial.omf") # omf形式で磁化配列mを保存
# 静磁場を印加
setv('B_ext', [0, 0, -1]) # z方向に-1T磁場を印加
# 定期的に保存する設定
autosave("m", "png", [], 1e-11)
# 一定の時間までシミュレーションを走らせる
run(1.5e-10)
saveas("m", "png", [], "finish.png") # png形式で磁化配列mを保存
saveas("m", "omf", ["Text"], "finish.omf") # omf形式で磁化配列mを保存
# 終了
sync()
23行目:
load('temperature/brown') # 温度を設定するために必要
で温度を設定するモジュールを読み込みます。
35行目:
setv('temp', 300) # 温度 300K
で温度を設定します。
実行結果
initial.png
m000001.png (10ps)
m000002.png (20ps)
m000003.png (30ps)
m000004.png (40ps)
m000005.png (50ps)
m000006.png (60ps)
m000007.png (70ps)
m000008.png (80ps)
m000009.png (90ps)
m000010.png (100ps)
m000011.png (110ps)
m000012.png (120ps)
m000013.png (130ps)
m000014.png (140ps)
m000015.png (150ps)
finish.png
徐々に磁化反転していく様子を見ることができます。
最終更新:2012年09月28日 17:21