当前位置:首页 > 技术分析 > 正文内容

CASTEP的Linux 安装

ruisui883周前 (05-28)技术分析18

CASTEP (http://www.castep.org/)是一款电子结构软件,可以计算Kohn-Sham框架下的平面波DFT,能够完成VASP能够完成的大部分计算。相比于VASP有几个优势

  1. 能够完成基本所有VASP能实现的功能和一些VASP不能实现的功能,比如path-integral MD

  2. 较高的并行效率,支持G-vector parallelism、k-points parallelism和band parallelism

  3. On-the-fly自动生成和泛函配套的赝势,所以大部分时候只要给元素和泛函就可以,省事

  4. 学术免费,这对于新成立的课题组极度友好,代码可以通过填表获取
    http://www.castep.org/CASTEP/GettingCASTEP

劣势主要是国内的文档,特别是中文文档严重不足。本文记录一下CASTEP并行版的安装过程(CASTEP 19.1 linux学术版本安装教程)。

本文的linux版本、编译环境版本如下:

  • Linux发行版本:Ubuntu20.04

  • CASTEP版本: 19.11

  • 编译器:gfortran9.3.0

  • 并行库:openmpi

安装前建议阅读安装指南,见代码主目录下的README.INSTALL

1. 安装gfortran,g++等编译器

打开terminal,输入

sudo apt install gfortransudo apt install g++sudo apt install gccsudo apt install build-essentialsudo apt install python

看一下gfortran的版本

gfortran --version

gfortran是9.3.0的,别的版本应该也可以。

2. 安装intel-mkl数学库

Intel-mkl的官方网址:

https://software.intel.com/content/www/us/en/develop/articles/installing-intel-free-libs-and-python-apt-repo.html

打开terminal,输入:

sudo bashcd /tmpwget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUBapt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUBrm GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUBexitsudo wget https://apt.repos.intel.com/setup/intelproducts.list -O /etc/apt/sources.list.d/intelproducts.listsudo apt install intel-mkl

如果出现以下内容,按esc键就会继续装了…

3. 安装openmpi并行库

Openmpi的官方网址:
https://www.open-mpi.org/software/ompi/v4.0/

tar -xzvf openmpi-4.0.4.tar.gzcd openmpi-4.0.4./configure --prefix=$HOME/openmpimake allmake install

打开.bashrc添加环境变量

gedit ~/.bashrc

在最后面加上,并保存

export PATH=$PATH:$HOME/openmpi/binexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/openmpi/lib

source一下~/.bashrc

source ~/.bashrc

看一下mpirun有没有装上

mpirun --version

4. 安装CASTEP

tar -xzvf CASTEP-19.11.tar.gzcd CASTEP-19.11

CASTEP会自动探测默认的编译环境,输入

bin/arch

得到

和之前安装的gfortran9 对得上

设置一下mkl的环境变量

export INCLUDE=/usr/include/mkl/

开始安装castep

make MATHLIBS=mkl10 FFT=mkl COMMS_ARCH=mpi SUBARCH=mpi

分别输入mkl的blas和mkl的fftw库位置

/usr/lib/x86_64-linux-gnu/mkl/usr/include/mkl/fftwmake MATHLIBS=mkl10 FFT=mkl COMMS_ARCH=mpi SUBARCH=mpi installmake MATHLIBS=mkl10 FFT=mkl COMMS_ARCH=mpi SUBARCH=mpi install install-tools

这里最终得到了一个在bin下面的文件加,叫做
bin/linux_x86_64_gfortran9.0--mpi,里面有castep的可执行文件castep.mpi

把CASTEP和常用工具二进制可执行文件添加到环境变量

gedit ~/.bashrc

添加以下到最后并保存

export PATH=/home/ziheng/Desktop/CASTEP-19.11/bin/linux_x86_64_gfortran9.0--mpi:$PATH

source一下

source ~/.bashrc

安装完成。

5. 安装验证

CASTEP准备了一套自带的安装检测,输入以下执行:

make MATHLIBS=mkl10 FFT=mkl COMMS_ARCH=mpi SUBARCH=mpi check

执行后会显示如下:

没有问题。

另外这里也准备了一个很简单的例子,大致展示一下castep的使用方法。

不同于VASP,CASTEP运行需要两个文件:

  • .cell文件:记录结构、symmetry、k点等,对于VASP用户来说类似于POSCAR和KPOINT的综合

  • .param文件:设置DFT参数,比如泛函的选择、截断能、收敛精度等等,对于VASP的用户来说类似于INCAR。这里没有和POTCAR对等的文件因为CASTEP的赝势是on-the-fly自动生成的。

这里我们拿Li3PO4晶体做一个简单的结构优化,首先我们来生成.cell文件,首先下载一个.cif文件保存成LPO.cif,具体文件内容见附录1。

用自带的cif2cell工具将cif文件转换为castep的.cell结构文件,输入

cif2cell LPO.cif -p CASTEP

得到Li3PO4.cell文件,这里稍微修改一下,让它自动识别空间群,并让它使用on-the-fly生成的norm-conserving赝势,具体见附件2。

继续建立Li3PO4 .param文件进行计算参数设置设置,这里用LBFGS方法进行一个结构优化,具体见附件3。

准备好运行Li3PO4 .param和Li3PO4.cell后开始执行castep计算,用4线程计算,输入:

mpirun -np 4 castep.mpi Li3PO4

这里注意castep不会屏幕输出,而是输出在.castep文件里,可以随时打开查看。

计算结束后得到以下几个文件:

其中.castep文件给出了scf收敛过程的等信息,类似于VASP的屏幕输出和vasprun.xml文件,而-out.cell文件给出的是最终的结构,用VESTA打开可以进行可视化。

关于CASTEP的使用,大部分时候可以用程序内置的文档,输入castep.mpi –help即可,以后有缘再说。希望这样的优秀的学术免费软件在国内能够有更大用户群!

6. 附录:

附件一、LPO.cif的内容

# generated using pymatgendata_Li3PO4_symmetry_space_group_name_H-M 'P 1'_cell_length_a 4.92244800_cell_length_b 5.29640200_cell_length_c 6.17613600_cell_angle_alpha 90.00000000_cell_angle_beta 90.00000000_cell_angle_gamma 90.00000000_symmetry_Int_Tables_number 1_chemical_formula_structural Li3PO4_chemical_formula_sum 'Li6 P2 O8'_cell_volume 161.01966865_cell_formula_units_Z 2loop_ _symmetry_equiv_pos_site_id _symmetry_equiv_pos_as_xyz 1 'x, y, z'loop_ _atom_site_type_symbol _atom_site_label _atom_site_symmetry_multiplicity _atom_site_fract_x _atom_site_fract_y _atom_site_fract_z _atom_site_occupancy Li Li0 1 0.50941700 0.84452000 0.00000000 1 Li Li1 1 0.00941700 0.15548000 0.50000000 1 Li Li2 1 0.50836300 0.32643400 0.25287300 1 Li Li3 1 0.00836300 0.67356600 0.24712700 1 Li Li4 1 0.00836300 0.67356600 0.75287300 1 Li Li5 1 0.50836300 0.32643400 0.74712700 1 P P6 1 0.50142000 0.82426100 0.50000000 1 P P7 1 0.00142000 0.17573900 0.00000000 1 O O8 1 0.10701000 0.31350900 0.79286200 1 O O9 1 0.60212600 0.10350800 0.50000000 1 O O10 1 0.18519100 0.81839600 0.50000000 1 O O11 1 0.68519100 0.18160400 0.00000000 1 O O12 1 0.60701000 0.68649100 0.29286200 1 O O13 1 0.10701000 0.31350900 0.20713800 1 O O14 1 0.10212600 0.89649200 0.00000000 1 O O15 1 0.60701000 0.68649100 0.70713800 1

附件2、Li3PO4.cell

%BLOCK LATTICE_CARTang # angstrom units 4.922448000000000 0.000000000000000 0.000000000000000 0.000000000000000 5.296402000000000 0.000000000000000 0.000000000000000 0.000000000000000 6.176136000000000%ENDBLOCK LATTICE_CART
%BLOCK POSITIONS_FRACP 0.501420000000000 0.824261000000000 0.500000000000000 P 0.001420000000000 0.175739000000000 0.000000000000000 O 0.107010000000000 0.313509000000000 0.792862000000000 O 0.602126000000000 0.103508000000000 0.500000000000000 O 0.185191000000000 0.818396000000000 0.500000000000000 O 0.685191000000000 0.181604000000000 0.000000000000000 O 0.607010000000000 0.686491000000000 0.292862000000000 O 0.107010000000000 0.313509000000000 0.207138000000000 O 0.102126000000000 0.896492000000000 0.000000000000000 O 0.607010000000000 0.686491000000000 0.707138000000000 Li 0.509417000000000 0.844520000000000 0.000000000000000 Li 0.009417000000000 0.155480000000000 0.500000000000000 Li 0.508363000000000 0.326434000000000 0.252873000000000 Li 0.008363000000000 0.673566000000000 0.247127000000000 Li 0.008363000000000 0.673566000000000 0.752873000000000 Li 0.508363000000000 0.326434000000000 0.747127000000000 %ENDBLOCK POSITIONS_FRAC
%BLOCK SPECIES_POTNCP%ENDBLOCK SPECIES_POT
SNAP_TO_SYMMETRYSYMMETRY_GENERATE
%BLOCK EXTERNAL_PRESSURE0 0 0 0 00%ENDBLOCK EXTERNAL_PRESSURE

附件三、Li3PO4.param文件

task : geometryoptimizationxc_functional : PBE spin_polarized : false fix_occupancy : false metals_method : dm mixing_scheme : pulay max_scf_cycles : 1000 cut_off_energy : 700 eVopt_strategy : speed page_wvfns : 0 num_dump_cycles : 0 backup_interval : 0 geom_method : LBFGS geom_max_iter : 500mix_history_length : 20 finite_basis_corr : 0fixed_npw : truewrite_cell_structure : truewrite_checkpoint : nonewrite_bib : falsewrite_otfg : falsewrite_cst_esp : falsewrite_bands : falsewrite_geom : falsebs_write_eigenvalues : falsecalculate_stress : true

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/4367.html

分享给朋友:

“CASTEP的Linux 安装” 的相关文章

10个实例小练习,快速入门熟练 Vue3 核心新特性(一)

作者:xuying 全栈修炼转发链接:https://mp.weixin.qq.com/s/_n2seDbbiO5hXQfuUGbUCQ前言Vue3.0 发 beta 版都有一段时间了,正式版也不远了,所以真的要学习一下 Vue3.0 的语法了。本篇文章总共分两部分,望小伙伴们认真阅读。下一篇:10...

前后端分离自动化运维平台开发

运维平台采用前后端分离:前端vue,框架vue-element-admin;后端python,框架django-rest-framework.目前运维平台模块如下:1、 CMDB管理应用管理、环境管理、开发语言管理、产品项目管理、资产管理2、 构建发布持续构建、持续部署、Jar工程依赖构建3、 容器...

HTML5学习笔记三:HTML5语法规则

1.标签要小写2.属性值可加可不加””或”3.可以省略某些标签 html body head tbody4.可以省略某些结束标签 tr td li例:显示效果:5.单标签不用加结束标签img input6.废除的标签font center big7.新添加的标签将在下一HTML5学习笔记中重点阐述。...

vue v-html动态生成的html怎么加样式/事件

1、动态生成的html,样式不生效//html 布局 <view v-html="html"> {{html}} </view> //动态生成的元素 <view class="btngo" @tap="handleLink...

关于Vue页面跳转传参,参数不同, 但页面只获取参数一次的问题

#头条创作挑战赛#1.问题描述问题描述: element 展示表格(页面A),点击表格的每一行的查看详情按钮,可以携带此行的信息参数跳转到另一个页面(页面B),但是从A页面到B页面,只有第一次跳转的时候B页面可以获取到A页面的参数,返回再次A->B ,B页面无法获取到参数。2.解决办法:方法一...

vue.js 双向绑定如何理解,有什么好处!#云南小程序开发

Vue.js 的双向数据绑定是借助于 JavaScript 的一些特性,如对象的属性 getter 和 setter 以及 Vue 的依赖追踪系统实现的。简单来说,双向数据绑定就是数据与视图间的双向通信,也就是说数据的改变会马上反映到视图中,视图的改变也会立刻改变数据。具体来说,当你改变了数据时,视...