【VASP学习】在Ubuntu系统安装vasp.5.4.4的全过程(包括VASP官方学习资料、安装过程中相关编辑器的配置、VASP的编译及VASP的测试)
在Ubuntu系统安装vasp.5.4.4的全过程
- VASP的简介与相关学习资料
- 安装前的准备工作及说明
- 安装过程
- intel编译器的安装
- VASP的编译
- VASP的测试
- 参考来源
VASP的简介与相关学习资料
VASP(Vienna Ab initio Simulation Package)是基于第一性原理对原子尺度的材料进行模拟计算的软件。比如可以进行原子尺度材料的电子结构计算、分子动力学过程的模拟分析等。
官方网站提供了软件学习的examples与tutorials:
Examples:https://www.vasp.at/wiki/index.php/Category:Examples
Tutorials:https://www.vasp.at/wiki/index.php/Category:Tutorials
(从原子、分子到块体结构,再到表面结构)
安装前的准备工作及说明
【安装所处的环境】:linux环境;Ubuntu系统,版本为20.04.6 LTS
【安装包的准备】:(这部分的文件需要自己去找)
- intel编译器的安装包及Licenses文件,本文选择的版本是:
Intel® Parallel Studio XE 2020 Cluster Edition
- VASP的安装包,本文选择的版本为:
vasp.5.4.4.tar.gz
安装过程
intel编译器的安装
已知VASP的编译需要很多编译器,包括:
- Compilers for Fortran (at least F2008 compliant), C, and C++.
- Numerical libraries: FFTW, BLAS, LAPACK, and ScaLAPACK.
- An implementation of the Message Passing Interface (MPI).
因此我们可以去找已经把以上编译器和相关库组合好的软件,安装软件即可,这就是为什么安装Intel® Parallel Studio XE 2020的原因。
【安装过程】
- 解压Intel® Parallel Studio XE 2020的安装包,
tar -xzf 安装包名称
- 本文选择纯文本环境下安装,因此进入解压后的文件夹,
cd 解压后的安装包名称
- 进入文件夹后,执行
./install.sh
,启动安装程序,界面如下:
- 回车,输入空格到达底部,输入:
accept
,然后回车
- 同意软件收集系统的信息,输入:
1
,然后回车
- 安装过程识别了系统信息后,弹出以下界面,输入:
1
,然后回车
- 软件权限选择识别license file,因此先输入:
2
,然后回车
- 选择离线选择license file,输入:
1
,然后回车,然后输入你的license file所在路径(这里要自己去找这个软件的Licenses文件夹,路径就是这个文件夹所在的路径),回车
- 识别license成功后,弹出计划安装的配置选择,输入:
1
,然后回车;进入安装的组件选择,我们这里要选择自定义安装,只选择安装VASP编译所需要的组件,因此输入:2
,然后回车
- 取消勾选“IA-32”,保留“Intel® 64”的选择,因此输入:
1
,然后回车;继续回车,进入下一步的选择
- 进入具体组件的选择(Change components to install),因此输入:
3
,然后回车;
- 分别进入2-16的选项,仅保留以下组件的安装:
-
Intel C++ Compiler 19.1 Update 3
-
Intel Fortran Compiler 19.1 Update 3
-
Intel Math Kernel Library 2020 Update 4 for C/C++下的Intel MKL core libraries for C/C++和Cluster support for C/C++
-
Intel Math Kernel Library 2020 Update 4 for Fortran下的Intel MKL core libraries for Fortran、Cluster support for Fortran和Fortran 95 interfaces for BLAS and LAPACK
-
Intel Threading Building Blocks 2020 Update 3
-
Intel MPI Library 2019 Update 9下的Intel MPI Library for applications running on Intel® 64 Architecture
- 其他组件均不选择,最后的选择结果显示见下,选择结束后,进入回车然后进入下一步的安装
- 提示缺少32-bit libraries,选择跳过(Skip prerequisites),继续下一步,开始安装以上选择的组件,需要一点时间。出现以下界面即为安装成功。
- 下面配置Intel® Parallel Studio XE 2020的运行环境,找到安装该软件所在路径下的psxevars.sh,一般在intel文件夹下(如,我的路径是:/home/intel/parallel_studio_xe_2020/psxevars.sh)。接着将代码(source /home/intel/parallel_studio_xe_2020/psxevars.sh)加入到bashrc文件末尾。具体步骤为,先回到主目录下:
cd ~
,进入bashrc文件,vim .bashrc
,输入i
进入编辑模式,将代码source /home/intel/parallel_studio_xe_2020/psxevars.sh
复制在文件最后,输入Esc进入取消编辑状态,然后按住shift,输入:wq
,保存编辑并退出。回到命令行窗口,输入source .bashrc
,显示以下界面即可配置环境成功。
- 使用
cd
进入/home/intel/compilers_and_libraries_2020.4.304/linux/mkl/interfaces/fftw3xf所在目录,然后在命令行执行make libintel64
命令,运行后当前目录下会产生libfftw3xf_intel.a库文件。界面提示见下图。
- 将以上步骤严格执行后,便完成了intel编译器的安装!
VASP的编译
【安装步骤】
-
解压
vasp.5.4.4.tar.gz
安装包:tar -xzf vasp.5.4.4.tar.gz
-
进入解压后的文件夹:
cd vasp.5.4.4
-
继续进入该目录下的arch文件夹:
cd arch
-
复制该目录下的
makefile.include.linux_intel
文件到上一级目录,并改名为makefile.include
-
使用vim打开文件
makefile.include
:vim makefile.include
-
找到OFLAG参数,在其后面添加
-xhost
,保存并退出(vim的编辑与保存操作参考步骤15)
-
在此目录下,命令行窗口输入命令
make all
开始进行VASP的编译。
-
编译成功后,回到home目录
cd ~
,进入.bashrc文件vim .bashrc
,将路径代码(export PATH=$PATH:/home/vasp.5.4.4/bin)加入到.bashrc文件末尾,保存编辑并退出(vim的编辑与保存操作参考步骤15)。在命令行执行source .bashrc
,便可使用VASP。
VASP的测试
VASP安装成功后,在bin文件夹下产生三个可执行文件(vasp_gam、vasp_ncl、vasp_std),我们主要使用的是vasp_std。下面将调用vasp_std测试VASP的运行。
-
从VASP官网的Tutorial中找一个案例,比如我找的是Atoms and Molecules模块中的O atom(https://www.vasp.at/wiki/index.php/O_atom)。
-
下载其输入文件,解压文件夹,并进入该文件夹。在命令行执行
mpirun -np 4 vasp_std
开始vasp的计算,计算结束后产生一系列文件。
-
检查结果文件
OUTCAR
,计算过程完整且正常输出即说明vasp安装成功。
参考来源
本文主要是参考了卢天老师的博文:VASP最简单的安装方法(含全程视频演示)。在老师的指导下将过程详细记录,方便以后查阅。
相关文章:

【VASP学习】在Ubuntu系统安装vasp.5.4.4的全过程(包括VASP官方学习资料、安装过程中相关编辑器的配置、VASP的编译及VASP的测试)
在Ubuntu系统安装vasp.5.4.4的全过程 VASP的简介与相关学习资料安装前的准备工作及说明安装过程intel编译器的安装VASP的编译VASP的测试 参考来源 VASP的简介与相关学习资料 VASP(Vienna Ab initio Simulation Package)是基于第一性原理对原子尺度的材料进行模拟计算的软件。比…...

PyTorch|Dataset与DataLoader使用、构建自定义数据集
文章目录 一、Dataset与DataLoader二、自定义Dataset类(一)\_\_init\_\_函数(二)\_\_len\_\_函数(三)\_\_getitem\_\函数(四)全部代码 三、将单个样本组成minibatch(Data…...

4.6(信息差)
🌍 山西500千伏及以上输电线路工程首次采用无人机AI自主验收 🌋 中国与泰国将开展国际月球科研站等航天合作 ✨ 网页版微软 PowerPoint 新特性:可直接修剪视频 🍎 特斯拉开始在德国超级工厂生产出口到印度的右舵车 1.马斯克&…...

关于C#操作SQLite数据库的一些函数封装
主要功能:增删改查、自定义SQL执行、批量执行(事务)、防SQL注入、异常处理 1.NuGet中安装System.Data.SQLite 2.SQLiteHelper的封装: using System; using System.Collections.Generic; using System.Data.SQLite; using System.…...

LeetCode-79. 单词搜索【数组 字符串 回溯 矩阵】
LeetCode-79. 单词搜索【数组 字符串 回溯 矩阵】 题目描述:解题思路一:回溯 回溯三部曲。这里比较关键的是给board做标记,防止之后搜索时重复访问。解题思路二:回溯算法 dfs,直接看代码,很容易理解。visited哈希,防止…...

游戏引擎之高级动画技术
一、动画混合 当我们拥有各类动画素材(clips)时,要将它们融合起来成为一套完整的动画。 最经典的例子就是从走的动画自然的过渡到跑的动画。 1.1 线性插值 不同于上节课的LERP(同一个clip内不同pose之间)ÿ…...

Oracle 数据库中的全文搜索
Oracle 数据库中的全文搜索 0. 引言1. 整体流程2. 创建索引2-1. 创建一个简单的表2-2. 创建文本索引2-3. 查看创建的基础表 3. 运行查询3-1. 运行文本查询3-2. CONTAINS 运算符3-3. 混合查询3-4. OR 查询3-5. 通配符3-6. 短语搜索3-7. 模糊搜索(Fuzzy searches&…...

代码随想录阅读笔记-二叉树【二叉搜索树中的众数】
题目 给定一个有相同值的二叉搜索树(BST),找出 BST 中的所有众数(出现频率最高的元素)。 假定 BST 有如下定义: 结点左子树中所含结点的值小于等于当前结点的值结点右子树中所含结点的值大于等于当前结点的…...

AcWing-游戏
1388. 游戏 - AcWing题库 所需知识:博弈论,区间dp 由于双方都采取最优的策略来取数字,所以结果为确定的,有可能会有多个不同的过程,但是我们只需要关注最终结果就行了。 方法一: 定义dp[i][j] 表示区间…...

Mybatis——一对一映射
一对一映射 预置条件 在某网络购物系统中,一个用户只能拥有一个购物车,用户与购物车的关系可以设计为一对一关系 数据库表结构(唯一外键关联) 创建两个实体类和映射接口 package org.example.demo;import lombok.Data;import …...
Web 安全之 SSL 剥离攻击详解
目录 SSL/TLS简介 SSL 剥离攻击原理 SSL 剥离攻击的影响 SSL 剥离攻击的防范措施 小结 SSL 剥离攻击(SSL Stripping Attack)是一种针对安全套接层(SSL)或传输层安全性(TLS)协议的攻击手段,…...
数据结构——顺序表(C语言)
目录 一、顺序表概念 二、顺序表分类 1.静态顺序表 2.动态顺序表 三、顺序表的实现 1.顺序表的结构体定义 2. 顺序表初始化 3.顺序表销毁 4.顺序表的检验 5.顺序表打印 6.顺序表扩容 7.顺序表尾插与头插 8.尾删与头删 9.在pos处插入数据 10.在pos处删除数据 11.查找数据 …...

利用Idea实现Ajax登录(maven工程)
一、新建一个maven工程(不会建的小伙伴可以参考Idea引入maven工程依赖(保姆级)-CSDN博客),工程目录如图 js文件可以上up网盘提取 链接:https://pan.baidu.com/s/1yOFtiZBWGJY64fa2tM9CYg?pwd5555 提取码&…...

环信IM集成教程——Web端UIKit快速集成与消息发送
写在前面: 千呼万唤始出来,环信Web端终于出UIKit了!🎉🎉🎉 文档地址:https://doc.easemob.com/uikit/chatuikit/web/chatuikit_overview.html 环信单群聊 UIKit 是基于环信即时通讯云 IM SDK 开…...

Anaconda如何切换国内镜像源
一、anaconda如何切换阿里镜像源 在Anaconda中切换到阿里云镜像源可以通过以下步骤进行: 1、打开终端(Windows)或者命令行界面(macOS/Linux)。 2、执行以下命令来配置阿里云镜像源: conda config --add…...
Android 14.0 添加自定义服务,并生成jar给第三方app调用
1.概述 在14.0系统ROM产品定制化开发中,由于需要新增加自定义的功能,所以要增加自定义服务,而app上层通过调用自定义服务,来调用相应的功能,所以系统需要先生成jar,然后生成jar 给上层app调用,接下来就来分析实现的步骤,然后来实现相关的功能 从而来实现所需要的功能 …...

解决沁恒ch592单片机在tmos中使用USB总线时,接入USB Hub无法枚举频繁Reset的问题
开发产品时采用了沁恒ch592,做USB开发时遇到了一个奇葩的无法枚举问题。 典型症状 使用USB线直连电脑时没有问题,可以正常使用。 如果接入某些特定方案的USB Hub(例如GL3510、GL3520),可能会出现以下2种情况…...

nvm保姆级安装使用教程
✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: 开发环境篇 ✨特色专栏: M…...
大语言模型LLM《提示词工程指南》学习笔记02
文章目录 大语言模型LLM《提示词工程指南》学习笔记02设计提示时需要记住的一些技巧零样本提示少样本提示链式思考(CoT)提示自我一致性生成知识提示 大语言模型LLM《提示词工程指南》学习笔记02 设计提示时需要记住的一些技巧 指令 您可以使用命令来指…...

【realme x2手机解锁BootLoader(简称BL)】
realme手机解锁常识 https://www.realme.com/cn/support/kw/doc/2031665 realme手机解锁支持型号 https://www.realmebbs.com/post-details/1275426081138028544 realme x2手机解锁实践 参考:https://www.realmebbs.com/post-details/1255473809142591488 1 下载apk…...

RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...

定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...

ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心
当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...
08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险
C#入门系列【类的基本概念】:开启编程世界的奇妙冒险 嘿,各位编程小白探险家!欢迎来到 C# 的奇幻大陆!今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类!别害怕,跟着我,保准让你轻松搞…...

MyBatis中关于缓存的理解
MyBatis缓存 MyBatis系统当中默认定义两级缓存:一级缓存、二级缓存 默认情况下,只有一级缓存开启(sqlSession级别的缓存)二级缓存需要手动开启配置,需要局域namespace级别的缓存 一级缓存(本地缓存&#…...
学习一下用鸿蒙DevEco Studio HarmonyOS5实现百度地图
在鸿蒙(HarmonyOS5)中集成百度地图,可以通过以下步骤和技术方案实现。结合鸿蒙的分布式能力和百度地图的API,可以构建跨设备的定位、导航和地图展示功能。 1. 鸿蒙环境准备 开发工具:下载安装 De…...
WEB3全栈开发——面试专业技能点P7前端与链上集成
一、Next.js技术栈 ✅ 概念介绍 Next.js 是一个基于 React 的 服务端渲染(SSR)与静态网站生成(SSG) 框架,由 Vercel 开发。它简化了构建生产级 React 应用的过程,并内置了很多特性: ✅ 文件系…...
Pydantic + Function Calling的结合
1、Pydantic Pydantic 是一个 Python 库,用于数据验证和设置管理,通过 Python 类型注解强制执行数据类型。它广泛用于 API 开发(如 FastAPI)、配置管理和数据解析,核心功能包括: 数据验证:通过…...