試料の形状を円盤、初期磁化を渦にします。

inputファイルの記述

  1. # -*- coding: utf-8 -*- # 日本語のコメントに必要
  2. from mumax2 import * # mumax2のインポート
  3. from mumax2_magstate import * # 初期磁化を渦にするために必要
  4. from mumax2_geom import * # 形状を(楕)円にするために必要
  5.  
  6. # 円盤
  7.  
  8. # セル数の設定
  9. # 2のべき乗がベストです。
  10. Nx = 128
  11. Ny = 128
  12. Nz = 1
  13. setgridsize(Nx, Ny, Nz)
  14.  
  15. # 試料サイズ(メートル)
  16. sizeX = 500e-9
  17. sizeY = 500e-9
  18. sizeZ = 50e-9
  19. setcellsize(sizeX/Nx, sizeY/Ny, sizeZ/Nz)
  20.  
  21. # モジュールの読み込み
  22. load('micromagnetism')
  23. load('solver/rk12') # adaptive Euler-Heun solver
  24.  
  25. # solverの設定
  26. setv('dt', 1e-15) # inital time step
  27. setv('m_maxerror', 1./3000) # maximum error per step
  28.  
  29. # 物質定数の設定
  30. Ms = 800e3 # 飽和磁化 Ms
  31. setv('Msat', Ms) # 飽和磁化を設定
  32. setv('Aex', 1.3e-11) # 交換定数 Aex
  33. setv('alpha', 1) # ダンピング定数 α
  34.  
  35. # 円盤形状の設定
  36. disk=ellipse() # 円盤の内部を1,外部を0に設定します。
  37. setmask('Msat', disk) # Msat is multiplied by the disk mask
  38.  
  39. # 初期磁化を渦にする
  40. m = vortex(1,1) # カイラリティ: 反時計回り、ポーラリティ: 上向き
  41. setarray('m', m)
  42.  
  43. saveas("m", "png", [], "initial.png") # png形式で磁化配列mを保存
  44. saveas("m", "omf", ["Text"], "initial.omf") # omf形式で磁化配列mを保存
  45.  
  46. # 安定状態までシミュレーションを走らせる
  47. run_until_smaller('maxtorque', 1e-3 * gets('gamma') * Ms)
  48.  
  49. saveas("m", "png", [], "finish.png") # png形式で磁化配列mを保存
  50. saveas("m", "omf", ["Text"], "finish.omf") # omf形式で磁化配列mを保存
  51.  
  52. # 終了
  53. sync()
ソースコードのダウンロード: disk.py

3,4行目: 各種モジュールをインポートします。
30,31行目: 変数Msに飽和磁化を代入してから、setvでセットしています。このようにしているのは47行目の都合です。
35~37行目: 試料形状を円盤形にします。具体的には、円盤の外側の飽和磁化を0にすることで円盤形を再現しています。
35~37行目: 初期磁化を渦構造にします。vortex関数の詳細は以下の通りです。
vortex(カイラリティ,ポーラリティ)
ここで、カイラリティは渦の回る方向、ポーラリティは渦中心の立ち上がり方向が上向きか下向きかを表しています。渦が反時計回りの時カイラリティが1、時計回りの時-1です。また、渦中心が上向きの場合ポーラリティが1、下向きの場合が-1です。

  ▲vortex(1,1)       ▲vortex(1,-1)      ▲vortex(-1,1)      ▲vortex(-1,-1)

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