試料の形状を円盤、初期磁化を渦にします。
inputファイルの記述
# -*- coding: utf-8 -*- # 日本語のコメントに必要
from mumax2 import * # mumax2のインポート
from mumax2_magstate import * # 初期磁化を渦にするために必要
from mumax2_geom import * # 形状を(楕)円にするために必要
# 円盤
# セル数の設定
# 2のべき乗がベストです。
Nx = 128
Ny = 128
Nz = 1
setgridsize(Nx, Ny, Nz)
# 試料サイズ(メートル)
sizeX = 500e-9
sizeY = 500e-9
sizeZ = 50e-9
setcellsize(sizeX/Nx, sizeY/Ny, sizeZ/Nz)
# モジュールの読み込み
load('micromagnetism')
load('solver/rk12') # adaptive Euler-Heun solver
# solverの設定
setv('dt', 1e-15) # inital time step
setv('m_maxerror', 1./3000) # maximum error per step
# 物質定数の設定
Ms = 800e3 # 飽和磁化 Ms
setv('Msat', Ms) # 飽和磁化を設定
setv('Aex', 1.3e-11) # 交換定数 Aex
setv('alpha', 1) # ダンピング定数 α
# 円盤形状の設定
disk=ellipse() # 円盤の内部を1,外部を0に設定します。
setmask('Msat', disk) # Msat is multiplied by the disk mask
# 初期磁化を渦にする
m = vortex(1,1) # カイラリティ: 反時計回り、ポーラリティ: 上向き
setarray('m', m)
saveas("m", "png", [], "initial.png") # png形式で磁化配列mを保存
saveas("m", "omf", ["Text"], "initial.omf") # omf形式で磁化配列mを保存
# 安定状態までシミュレーションを走らせる
run_until_smaller('maxtorque', 1e-3 * gets('gamma') * Ms)
saveas("m", "png", [], "finish.png") # png形式で磁化配列mを保存
saveas("m", "omf", ["Text"], "finish.omf") # omf形式で磁化配列mを保存
# 終了
sync()
3,4行目: 各種モジュールをインポートします。
30,31行目: 変数Msに飽和磁化を代入してから、setvでセットしています。このようにしているのは47行目の都合です。
35~37行目: 試料形状を円盤形にします。具体的には、円盤の外側の飽和磁化を0にすることで円盤形を再現しています。
35~37行目: 初期磁化を渦構造にします。vortex関数の詳細は以下の通りです。
47行目:
run_until_smaller('maxtorque', 1e-3 * gets('gamma') * Ms)
とあります。最後のMsは、以前のプログラムではgets('msat')となっていました。しかし、このプログラムでgets('msat')を使うとエラーとなってしまうため、これを回避するために変数Msを使っています。
実行結果
initial.png
finish.png
today: -
yesterday: -
total: -
Since 2014/01/06
最終更新:2014年01月06日 13:51