这篇文章主要完成了Vampire,vdc,Povray的安装,以及使用这些工具完成1. Ni的温度-磁化率quxian 2. FM-AFM双层sc结构的构造与磁矩模拟方法
Vampire是原子间尺度(Atomistic)磁性模拟软件,并非第一性原理计算(Ab-initio)软件。
安装Vampire
Vampire不像VASP是第一性原理计算,不需要VASP那样多使用服务器上的几十个Core并行运算,一般的家用PC就可以跑得动。
我使用的个人电脑均为Windows 10系统,而科学计算软件一般在Linux下都比较顺手,因此使用WSL(Windows Subsystem Linux)进行安装使用。
安装参考link,以及上面链接中Manual的推荐。在WSL的自己用户目录下(cd ~
)操作(或者你喜欢的目录):
1
| git clone git://github.com/richard-evans/vampire.git #这里可能有坑,看下面
|
将github上代码克隆下来准备编译。(没有git的请sudo apt-get install git
)
注意(这里貌似有坑): 上面使用git clone
编译后对后面的vdc功能似乎造成了影响,所以,建议使用download页面中的:Zip文件link 直接进行源码下载并编译!
(使用个人电脑进行运算,不需要并行。如果需要并行,我会安装在学校服务器上,并需要mpi环境)
以后如果需要运行Vampire,则在自己工作目录下,准备好相关的input
xxx.mat
文件后运行
1
| vampire目录/vampire-serial
|
实验一(Ni)
这里是尝试重复官网Workshop中Day1(PDF_link)的Ni磁化率曲线。
Vampire运行至少需要两个文件,input
与xxx.mat
(material意思)
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 29 30 31 32 33 34 35 36 37 38 39 40 41
| #----------------------------------------- # Creation attributes: #----------------------------------------- create:crystal-structure=fcc create:periodic-boundaries-x create:periodic-boundaries-y create:periodic-boundaries-z #----------------------------------------- # System Dimensions: #----------------------------------------- dimensions:unit-cell-size = 3.524 !A dimensions:system-size-x = 4.0 !nm dimensions:system-size-y = 4.0 !nm dimensions:system-size-z = 4.0 !nm #----------------------------------------- # Material Files: #----------------------------------------- material:file=Ni.mat #----------------------------------------- # Simulation attributes: #----------------------------------------- sim:temperature=300 sim:minimum-temperature=0 sim:maximum-temperature=800 sim:temperature-increment=25 sim:time-steps-increment=1 sim:equilibration-time-steps=1000 sim:loop-time-steps=1000 #----------------------------------------- # Program and integrator details #----------------------------------------- sim:program=curie-temperature sim:integrator=monte-carlo #----------------------------------------- # Data output #----------------------------------------- output:real-time output:temperature output:magnetisation output:magnetisation-length output:mean-magnetisation-length
|
Ni.mat
file
1 2 3 4 5 6 7 8 9 10 11 12 13
| #-------------------------------------------------- # Number of Materials #-------------------------------------------------- material:num-materials=1 #-------------------------------------------------- # Material 1 Nickel Generic #-------------------------------------------------- material[1]:material-name=Ni material[1]:damping-constant=0.01 material[1]:exchange-matrix[1]=2.757e-21 material[1]:atomic-spin-moment=0.606 !muB material[1]:uniaxial-anisotropy-constant=5.47e-26 material[1]:material-element=Ni
|
然后就可以运行:
1
| vampire目录/vampire-serial
|
output
file
得到的结果在output
中:
1 2 3 4 5 6 7 8 9 10 11 12
| #---------------------------------------------------------------------------------------------------------------------------------------------------------- # Output file for vampire simulation # time : 2020-03-04 15:41:45 process id : 1747 # hostname : 310Z-HK # path : /home/kaihuang/vampire-test # version : 5.0.1 # githash : 6dbac264cb70f1aa723736c1f7f1ef55aabcdef1 #---------------------------------------------------------------------------------------------------------------------------------------------------------- 2e-12 0 0 0 1 1 1 1 4e-12 25 -0.0110833 0.0279752 0.999547 0.9866 0.9866 0.986502 6e-12 50 -0.0428672 -0.0485014 0.997903 0.972436 0.972436 0.972492 ………………………………………………
|
可以看出,output
下部的每一行数据对应input
Data output
中的内容,
- 第1个:real time(对mont carlo方法,时间无意义)
- 第2个:temperature
- 第3-6个:3-5是magnetisation在三个方向的值(且是单位矢量),第6个是磁矩模长,(具体的看Manual)
- 第7个:还是磁矩模长,其实重复了
- 第8个:mean-magnetisation-length,具体的看Manual吧。
安装vdc
VDC: Vampire data convertor
在Vampire的主目录下,
完成后,使用方式即在工作目录下,运行
1
| vampire目录/util/vdc/vdc --xyz
|
这里--xyz
选项表示输出成.xyz
文件(一种三维物体文件格式),我目前知道还有标签--povray
。
若运行vampire目录/util/vdc/vdc
不加任何标签,同样可以得到.pov
文件。
**貌似有的坑:**已经在上面Vampire安装部分提到,如果用git clone
下载源码,可能导致编译出来vdc运行时报错,如:
碰到这种情况,建议就是通过Zip文件link 重新进行源码下载并编译!(反正挺快的)
安装POV-Ray
这里是尝试按照官网Workshop中Day2(PDF-link)最后几页slide,同时参考GitHub上POV-Ray的官方文档(link)
1 2 3 4 5
| git clone https://github.com/POV-Ray/povray.git
cd povray/ cd unix/ ./prebuild.sh
|
这里运行./prebuild.sh
发现缺少一些库,所以安装了:
1
| sudo apt-get install autoconf
|
而后,按照ReadMe-link的建议把下列库全部装上:
1 2 3 4 5 6 7 8
| libboost-dev libboost-date-time-dev libboost-thread-dev zlib1g-dev libpng12-dev #看下面 libjpeg8-dev #看下面 libtiff5-dev #看下面 libopenexr-dev
|
全部sudo apt-get install
了,但是注意libpng12-dev
貌似已经没有了(?),用libpng-dev
:
1 2 3 4 5
| sudo apt-get install libpng-dev
sudo apt-get update -y sudo apt-get install -y libjpeg-dev sudo apt-get install -y libtiff-dev
|
最后编译安装:
1 2 3 4
| cd .. ./configure COMPILED_BY="your name <email@address>" make sudo make install # 不加sudo又是一个坑。
|
实验二(制作bilayer)
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 29 30 31 32 33
| #--------------------------------------------------- #system dimensions #--------------------------------------------------- dimensions:system-size-x=4 !nm dimensions:system-size-y=4 !nm dimensions:system-size-z=10 !nm dimensions:unit-cell-size=3.5 !A #--------------------------------------------------- # Creation attributes #--------------------------------------------------- create:crystal-structure=sc create:periodic-boundaries-x create:periodic-boundaries-y #--------------------------------------------------- # Material files #--------------------------------------------------- material:file=bilayer.mat #--------------------------------------------------- # Simulation attributes #--------------------------------------------------- sim:temperature=0.1 sim:total-time-steps=11000 sim:time-steps-increment=1000 sim:program=time-series sim:integrator=monte-carlo #--------------------------------------------------- # Data output #--------------------------------------------------- output:time-steps output:temperature output:material-magnetisation config:atoms config:atoms-output-rate=10
|
config
的存在目的就是:输出计算过程中的磁矩结构(spin snapshot)
bilayer.mat
file
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 29 30
| #--------------------------------------------------- # Number of Materials #--------------------------------------------------- material:num-materials=2 #--------------------------------------------------- # Material 1 Ferromagnetic Layer #--------------------------------------------------- material[1]:material-name=FM material[1]:damping-constant=1.0 material[1]:exchange-matrix[1]=11.2e-21 material[1]:exchange-matrix[2]=11.2e-21 material[1]:atomic-spin-moment=2.0 !muB material[1]:uniaxial-anisotropy-constant=-1.0e-24 material[1]:material-element=Ag material[1]:minimum-height=0.0 material[1]:maximum-height=0.5 material[1]:initial-spin-direction=1,0,0 #--------------------------------------------------- # Material 2 Anti-ferromagnetic Layer #--------------------------------------------------- material[2]:material-name=FM material[2]:damping-constant=1.0 material[2]:exchange-matrix[1]=11.2e-21 material[2]:exchange-matrix[2]=-11.2e-21 material[2]:atomic-spin-moment=2.0 !muB material[2]:uniaxial-anisotropy-constant=-1.0e-24 material[2]:material-element=Fe material[2]:minimum-height=0.5 material[2]:maximum-height=1.0 material[2]:initial-spin-direction=random
|
material[2]:exchange-matrix[1]=11.2e-21
表示材料2对材料1的交换积分(1对2,2对1,都是一样的)
output
file
vdc
运行
如果这里你报错了,恭喜踩到坑,请不要git clone,而是Download页面下载源码重新编译。
使用vdc生成.xyz
文件,然后就能用VESTA打开啦!
Povray画图