TL;DR ¶
マイクロマグネティックシミュレーションのソフトウェアmumaxの簡単な説明・インストールの手順・とりあえず動かしてみるところまで.
mumaxとは ¶
mumaxを使うための準備 ¶
- nvidia のGPUを搭載した計算機を用意する.
- 最新の ubuntu を入れる.Windowsでもよい.macOSには対応していない模様.
- cuda と nvidiaドライバをインストールする.
- mumax3 をダウンロードしてくる.
-
bash
1
|
tar zxvf mumax3.10_linux_cuda*.tar.gz
|
で展開する.*
の部分はバージョンによって変わる.
- 個人的には
/opt/mumax3/
において ~/.bashrc
的なところに
bash
1
2
|
alias mumax3='/opt/mumax3/mumax3'
alias mumax3-convert='/opt/mumax3/mumax3-convert'
|
とか書いておくとよいと思う.もちろんPATHを通してもよい.
~/.bashrc
に書き込んだら~/.bashrc
を読み込む.
これでmumax3
, mumax3-convert
が任意のディレクトリで実行できるようになる.
mumax の基本的な使い方 ¶
mumaxは主にGolangで書かれているので,Golangでスクリプトを書く.
1
2
3
4
5
6
7
8
9
10
|
// saturation magnetization
Msat = 5e6
// declare new variable
Freq := 1e9
for i:=0; i<10; i++ {
print(i)
}
if 1+8 == 9 {
print(“Of course 1+8=9”)
}
|
Golang Tips ¶
- 1行コメントは //
- 複数行コメントは /* */
- 変数の定義は := を使う
- 変数の大文字小文字は区別しない
- Golang では1行で変数を複数定義できるが,mumax3のスクリプトとしては許可されていないようだ.
mumaxの実行の仕方 ¶
myfile.mx3 というのを用意したら,
で実行する.すると,myfile.out/
というディレクトリができてそこに色々入っている.
ブラウザで http://127.0.0.1:35367/
を開くと実行中の結果がリアルタイムで表示される.
とりあえずサンプルを実行してみる ¶
example1.mx3
というファイルに
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
SetGridsize(128, 32, 1)
SetCellsize(500e-9/128, 125e-9/32, 3e-9)
Msat = 800e3
Aex = 13e-12
alpha = 0.02
m = uniform(1, .1, 0)
relax()
save(m) // relaxed state
autosave(m, 200e-12)
tableautosave(10e-12)
B_ext = vector(-24.6E-3, 4.3E-3, 0)
run(1e-9)
|
という内容を書き込んでみて,
で実行してみて,以下のような画面出力が出ればうまく動いている.
bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
//mumax 3.10 [linux_amd64 go1.14(gc) CUDA-11.0]
//GPU info: NVIDIA T1000 8GB(7972MB), CUDA Driver 12.0, cc=7.5, using cc=75 PTX
//(c) Arne Vansteenkiste, Dynamat LAB, Ghent University, Belgium
//This is free software without any warranty. See license.txt
//********************************************************************//
// If you use mumax in any work or publication, //
// we kindly ask you to cite the references in references.bib //
//********************************************************************//
//output directory: example1.out/
//starting GUI at http://127.0.0.1:35367
SetGridsize(128, 32, 1)
SetCellsize(500e-9/128, 125e-9/32, 3e-9)
Msat = 800e3
Aex = 13e-12
alpha = 0.02
m = uniform(1, .1, 0)
relax()
//Using cached kernel: /tmp/mumax3kernel_[128 32 1]_[0 0 0]_[3.90625e-09 3.90625e-09 3e-09]_6_
save(m)
autosave(m, 200e-12)
tableautosave(10e-12)
B_ext = vector(-24.6E-3, 4.3E-3, 0)
run(1e-9)
//********************************************************************//
//Please cite the following references, relevant for your simulation. //
//See bibtex file in output folder for justification. //
//********************************************************************//
// * Vansteenkiste et al., AIP Adv. 4, 107133 (2014).
|
次の記事:mumaxの使い方② 基礎