初期磁化をランダムにする」に磁場を加えてみます。

inputファイルの記述

  1. # -*- coding: utf-8 -*- # 日本語のコメントに必要
  2. from mumax2 import * # mumax2のインポート
  3. import random # randomのインポート
  4.  
  5. # 正方形+磁場
  6.  
  7. # セル数の設定
  8. # 2のべき乗がベストです。
  9. Nx = 128
  10. Ny = 128
  11. Nz = 1
  12. setgridsize(Nx, Ny, Nz)
  13.  
  14. # 試料サイズ(メートル)
  15. sizeX = 500e-9
  16. sizeY = 500e-9
  17. sizeZ = 50e-9
  18. setcellsize(sizeX/Nx, sizeY/Ny, sizeZ/Nz)
  19.  
  20. # モジュールの読み込み
  21. load('micromagnetism')
  22. load('solver/rk12') # adaptive Euler-Heun solver
  23.  
  24. # solverの設定
  25. setv('dt', 1e-15) # inital time step
  26. setv('m_maxerror', 1./3000) # maximum error per step
  27.  
  28. # 物質定数の設定
  29. setv('Msat', 800e3) # 飽和磁化 Msat
  30. setv('Aex', 1.3e-11) # 交換定数 Aex
  31. setv('alpha', 1) # ダンピング定数 α
  32.  
  33. # 初期磁化をランダムに設定
  34. mv = makearray(3, Nx, Ny, Nz)
  35. for m in range(Nx):
  36. for n in range(Ny):
  37. for o in range(Nz):
  38. mv[0][m][n][o] = random.uniform(-1, 1)
  39. mv[1][m][n][o] = random.uniform(-1, 1)
  40. mv[2][m][n][o] = random.uniform(-1, 1)
  41. setarray('m', mv)
  42.  
  43. saveas("m", "png", [], "initial.png") # png形式で磁化配列mを保存
  44. saveas("m", "omf", ["Text"], "initial.omf") # omf形式で磁化配列mを保存
  45.  
  46. # 静磁場を印加
  47. setv('B_ext', [0.02, 0, 0]) # x方向に0.02T磁場を印加
  48.  
  49. # 安定状態までシミュレーションを走らせる
  50. run_until_smaller('maxtorque', 1e-3 * gets('gamma') * gets('msat'))
  51.  
  52. saveas("m", "png", [], "finish.png") # png形式で磁化配列mを保存
  53. saveas("m", "omf", ["Text"], "finish.omf") # omf形式で磁化配列mを保存
  54.  
  55. # 終了
  56. sync()
ソースコードのダウンロード: square+field.py

46,47行に以下のコマンドが追加されています。
  1. #静磁場を印加
  2. setv('B_ext', [0.02, 0, 0]) #x方向に0.02T磁場を印加
setv関数の[]内に磁場のx成分、y成分、z成分をテスラ単位で記述します。

実行結果

initial.png
finish.png









タグ:

+ タグ編集
  • タグ:
最終更新:2012年09月27日 15:56