lammps声子谱配置与计算
如果对lammps源码编译安装完全不懂,先看这个 Linux系统源码编译安装LAMMPS
其实也就是安装依赖
、下载源码
、散步编译
就ok,下面简单写一下
lammps依赖
为了能输出视频,对于ubuntu20.04需要安装依赖,顺带配置一下python支持,GPU就不配置了
1 | sudo -E apt-get install git python3-pip build-essential cmake automake libtool -y; |
lammps对python的支持
1 | sudo apt install python3-pip -y |
lammps视频输出
1 | sudo apt install ffmpeg gzip -y |
lammps并行支持
1 | sudo apt install libopenmpi-dev openmpi-bin openmpi-common openmpi-doc |
lammps声子依赖
1 | sudo apt install fftw3 libfftw3-dev libfftw3-bin -y |
其中岂不是还缺一些东西,我也记不清了,安装时出现报错了直接百度,基本能找到
编译安装lammps
下载源码
1 | git clone https://github.com/lammps/lammps.git |
编译
1 | cmake -D PKG_PHONON=on -D PKG_KSPACE=on -D PKG_MANYBODY=yes -D -D BUILD_SHARED_LIBS=on -D LAMMPS_EXCEPTIONS=on -D PKG_PYTHON=on ../cmake |
其中 PKG_MANYBODY
为我用的势能所需
声子色谱
我这里用的方法是上海交大的老师开源程序
lammps相关命令的接口为 fix_phonon
,也就是这个页面:PHONON,可以看到其中的说明,示例文件在这里 phonon,相关的开源主页在 lingtikong-phana,clone
下来
1 | git clone https://github.com/lingtikong/phana |
其实直接使用编译好的文件 precompiled/phana
也行,可以跳过安装,直接进入测试步骤:重复示例。(但是我喜欢自己编译)
安装
这个库,编译时依赖四个库 clapack/3.2.1
、tricubic/1.0
、spglib/1.9.7
、fftw/3.3.7
,其中 clapack
和 tricubic
是必须的
如果是mac,先自己百度把
brew
配置好,然后终端输入如下命令,安装gcc
、libtool
、automake
1 | brew install gcc libtool automake |
phana依赖
lib
文件夹里,直接按照 README
编译 clapack 和 tricubic
如果要修改依赖的安装路径,比如 MAC电脑,建议安装到
/usr/local/opt
而不要安装到/opt
:每个./configure
后面的安装路径修改一下,并且 Makefile 里面的/opt/
也对应修改一下
编译phana
如果是linux,这一步不建议,直接跳过自己编译,MAC电脑必须自己编译。
编译phana退项目根目录,只要两个必须库,需要注释掉几行代码,打开Makefile
,
注释掉spglib/1.9.7
、fftw/3.3.7
相关的
1 | # # spglib, used to get the irreducible q-points |
然后直接输入sudo make
等待生成phono
即可
高级
另外两个库spglib/1.9.7
、fftw/3.3.7
也可以编译进去
依赖
这个项目不支持最新版的spglib
,建议都按照对应的版本吧,版本信息都是在 Makefile
里查看到的
spglib
点我去这下载1.9.7,别问我怎么知道的,多学习git与github
1 | # 下载解压 |
fftw
去官网下载3.3.7版本
1 | wget https://fftw.org/pub/fftw/fftw-3.3.7.tar.gz |
完全编译
回到刚才项目的根目录,不要注释 之前的那几行了
然后 make
编译,直至结束并出现 phana
这个文件,此时安装的那些依赖已经不需要了,只要这个可执行文件就可以了
重复示例
把lammps
文件夹里的 examples/PACKAGES/phonon
复制到一个新的地方,然后打开
in.graphene: lammps脚本文件
SiC.tersoff:势能
data.pos:lammps模型(一个10*10菱形的石墨烯)
map.in:石墨烯模型的晶格划分,每一列的含义分别是:
这个晶胞位于x轴第几个 y轴第几个 z轴第几个 这个原子是这个晶胞的第几个原子 原子编号 0 0 0 0 1 0 0 0 1 2 1 0 0 0 3 1 0 0 1 4 2 0 0 0 5 in.disp: 刚才编译的phana用这个文件以及lmp模拟生成的文件可以生成disp.dat和pdisp.gnuplot,声子这一块我还没弄明白,后面学习一下再补充
就只有这5个文件需要,其他的都是生成的
你可以运行一下模拟,也可以只是测试一下方才编译的phana
模拟·
1 | lmp -in in.graphene |
这一步只是为了生成
测试
1 | phana Graphene.bin.6000000 < in.disp |
生成
1 | disp.dat和pdisp.gnuplot |
自动画图需要这个
1 | sudo apt install gnuplot |
然后
1 | gnuplot pdisp.gnuplot |
结束,生成图片 pdisp.eps
电脑一般都能打开,是个矢量图
本文作者:yuhldr
本文地址: https://yuhldr.github.io/posts/db8c1b0a.html
版权声明:转载请注明出处!