Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

《计算材料学 -- 从算法原理到代码实现》

单斌   陈征征   陈蓉   编著

华中科技大学出版社   2023

License: GPL v3 Language VASP LAMMPS


本仓库为教材《计算材料学——从算法原理到代码实现》的配套代码与算例资源,涵盖第一性原理计算、分子动力学、蒙特卡罗方法等计算材料学核心方法的算法实现与实例演示。

快速导航

章节 主题 代码
前置 Python 与科学计算基础 Prerequisite
第一章 数学基础 Chapter01
第三章 第一性原理的微观计算模拟 Chapter03
第四章 VASP 计算模拟实例 Chapter04
第六章 分子动力学方法 Chapter06
第七章 LAMMPS 分子动力学实例 Chapter07
第八章 蒙特卡罗方法 Chapter08

学习资源

下表整理了每章节配套的视频教程、Jupyter Notebook、计算代码与输入文件等学习资源。视频教程主要发布在 Bilibili,部分 Notebook 配有 Bohrium 在线运行镜像。

前置   Python 与科学计算基础
主题 资源
0.0 Python 与科学计算(上) Bohrium Notebook
0.1 Python 与科学计算(下) Bohrium Notebook
0.2 用 Python 探索分形几何 Notebook
第一章   数学基础
主题 资源
1.1.2 矩阵本征值计算 代码 eigenValue.py
1.1.3 矩阵 LU 分解 代码 LUdecomposition.py
1.1.3 矩阵奇异值分解 代码 SVD.py
1.3.1 最速下降法 视频 概念 · 视频 Python 实现 · Notebook
1.3.4 一维搜索算法 视频
1.3.6 线性回归与最小二乘 视频 概念 · 视频 Python 实现 · Notebook · Bohrium 镜像 · 数据 income.csv
1.3.6 高阶最小二乘 代码 PolyLeastSquaresFitting.py
1.5.3 辛普森积分法 代码 simpsonIntegral.py
第二章   量子力学和固体物理基础
主题 资源
2.1.2 薛定谔方程 视频
2.1.4 动量算符 视频
2.1.5 一维无穷深势阱 视频
2.1.5 一维势阱的节点定理 视频
第三章   第一性原理的微观计算模拟
主题 资源
3.1.4 多电子波函数与 Hartree 乘积 视频
3.1.4 Slater 行列式与交换关联 视频
3.1.4 单电子积分 视频
3.1.4 双电子积分 视频
3.1.5 HF 总能表达式 视频
3.1.5 库伦积分 J 与交换积分 K Notebook
3.1.5 非正则 Hartree-Fock 方程 视频
3.1.5 正则 Hartree-Fock 方程 视频
3.1.7 闭壳层体系中的 Hartree-Fock 方程 视频
3.1.9 Hartree-Fock-Roothaan 方程 视频
3.1.10 Koopmans 定理 视频
3.1.11 均匀电子气模型动能项 视频
3.1.12 Slater 基与 Gauss 基 视频 · Notebook · Bohrium 镜像
3.1.12 缩并高斯基与 STO-nG 命名法则 视频
3.1.12 缩并高斯基系数确定 Colab Notebook · Bohrium 镜像
3.8.3 RuO₂ 表面相图计算 视频 · VASP 输入 O-bri · O-cus · Ru-term
第四章   VASP 计算模拟实例
主题 资源
4.1 VASP 编译安装 视频 Ubuntu 编译 · 视频 Intel OneAPI 编译
4.2 辅助建模软件 ASE 视频 · Notebook
4.3 VASPKIT 软件介绍 视频
4.4 氢原子能量 VASP 计算 视频 · VASP 输入
4.4 氧原子能量 VASP 计算 视频 · VASP 输入
4.4 氧分子结合能与电荷重分布 视频 · VASP 输入
4.5.2 Jmol 可视化乙醇分子振动 视频
4.6 平衡晶格常数计算 bash 脚本
4.12 Materials Studio + ASE 建表面模型 视频
4.12 对称模型表面能 视频 · VASP 输入
4.12 非对称模型表面能 视频 · VASP 输入 非弛豫 · VASP 输入 弛豫
4.12 基于表面能的 Wulff 构建 视频
4.14 Pt 表面 CO 吸附能 视频 · VASP 输入
4.14 CO 吸附零点能校正 视频
4.14 气体吸附能热力学校正 视频
第六章   分子动力学方法
主题 资源
6.1 分子动力学简介 视频
6.1.1 分子动力学基本步骤 视频
6.1.2 Lyapunov 不稳定性 视频 · Notebook · Bohrium 镜像
6.1.2 各态历经假说 视频
6.1.3 周期性边界条件 视频 概念 · 视频 Python 实现 · Notebook
6.1.4 近邻列表算法 视频
6.2.1 Lennard-Jones 势 视频 LJ 势 · 视频 截断 · 视频 Python 实现 · Notebook · Bohrium 镜像 · 视频 局限性
6.3.1 前向 Euler 算法 视频 介绍 · 视频 Python 实现 · Notebook
6.3.2 Verlet 算法 视频 介绍 · 视频 精度 · 视频 Python 实现 · Notebook
6.3.3 速度 Verlet 算法 视频 · Notebook
6.3.4 蛙跳算法与积分算法综述 视频 蛙跳介绍 · Notebook 蛙跳 · 视频 时间可逆性 · 视频 辛结构 · Notebook 综合 · Bohrium 镜像
6.4.1 Berendsen 热浴 视频
第七章   LAMMPS 分子动力学实例
主题 资源
7.1 LAMMPS 安装 视频 本地 · 视频 Bohrium 平台
7.2 OVITO 安装 视频
7.3 惰性气体扩散 视频 LJ 单位制 · 视频 模拟 · LAMMPS 输入 · Notebook 晶格常数 · Bohrium 镜像
7.4 气体分子布朗运动 视频 · LAMMPS 输入
7.5 大质量粒子二维布朗运动 视频 · LAMMPS 输入
7.6 热膨胀系数 LAMMPS 输入
7.7 体积比热容 视频 比热容 · 视频 涨落-耗散定理 · LAMMPS 输入
7.8 声子谱计算 视频 PyLAMMPS 安装 · 视频 phonoLAMMPS+phonopy · 视频 Cu 声子谱
7.9 Ni 裂纹扩展 视频 · LAMMPS 输入与势文件
7.10 LiS 电池体积膨胀 视频
7.11 体相 Pt 熔点与 RDF 视频 · LAMMPS 输入与脚本
7.12 Pt 纳米颗粒熔点 (Lindemann 指数) 视频 · LAMMPS 输入 · Python 代码
7.14 氢在 BCC-Fe 中的扩散 视频 · LAMMPS 输入与势文件
7.16 SiGe 纳米线建模 视频 · Perl 脚本
7.17 多元合金 atomsk 建模 视频
7.20 机器学习势模拟 Pt/TiO₂ 烧结 视频 · Python 代码
7.21 纳米孔浸润过程 视频 · LAMMPS 输入与数据
第八章   蒙特卡罗方法
主题 资源
8.1 随机撒点与蒲丰投针 视频
8.2.2 重要性采样 视频 概念 · 视频 Python 实现 · Notebook · Bohrium 镜像
8.2.2 拒绝采样 视频 · Notebook · Bohrium 镜像
8.2.3 马尔科夫链 视频 概念 · 视频 Python 实现
8.2.3 Metropolis 采样 视频 算法 · 视频 Python 实现
8.5.2 二维 Ising 模型 视频 · Notebook · Bohrium 镜像
8.6.1 动力学 KMC 基本原理 视频
8.6.2 KMC 时间步长 视频
8.6.3 过渡态理论 视频
8.7 SPPARKS 程序安装 视频
8.7.4 合金纳米颗粒 MCMD 模拟 视频 · LAMMPS 输入 · EAM 势场

目录

前置:Python 与科学计算基础
  • Python 与科学计算(上)
  • Python 与科学计算(下)
  • 用 Python 探索分形几何
第一章   数学基础
  • 1.1 矩阵运算
    • 1.1.1 行列式  |  1.1.2 矩阵的本征值问题  |  1.1.3 矩阵分解  |  1.1.4 幺正变换
  • 1.2 群论基础
    • 1.2.1 群的定义  |  1.2.2 子群、陪集、正规子群与商群  |  1.2.3 直积群  |  1.2.4 群的矩阵表示  |  1.2.5 三维转动反演群 O(3)
  • 1.3 最优化方法
    • 1.3.1 最速下降法  |  1.3.2 共轭梯度法  |  1.3.3 牛顿法与拟牛顿法  |  1.3.4 一维搜索  |  1.3.5 单纯形法  |  1.3.6 最小二乘法  |  1.3.7 拉格朗日乘子
  • 1.4 矢量正交化
    • 1.4.1 施密特正交化  |  1.4.2 正交多项式
  • 1.5 积分方法
    • 1.5.1 矩形积分法  |  1.5.2 梯形积分法  |  1.5.3 辛普森积分法  |  1.5.4 高斯积分法  |  1.5.5 蒙特卡罗积分方法
第二章   量子力学和固体物理基础
  • 2.1 量子力学
    • 2.1.1 量子力学简介  |  2.1.2 薛定谔方程  |  2.1.3 波函数的几率诠释  |  2.1.4 力学量算符和表象变换  |  2.1.5 一维方势阱  |  2.1.6 方势垒的隧穿  |  2.1.7 WKB 方法  |  2.1.8 传递矩阵法  |  2.1.9 氢原子  |  2.1.10 变分法
  • 2.2 晶体对称性
    • 2.2.1 晶体结构和点群  |  2.2.2 常见晶体结构和晶面  |  2.2.3 结构缺陷
  • 2.3 晶体的力学性质
    • 2.3.1 状态方程  |  2.3.2 应变与应力  |  2.3.3 弹性常数
  • 2.4 固体能带论
    • 2.4.1 周期边界、倒空间与 Bloch 定理  |  2.4.2 空晶格模型与第一布里渊区  |  2.4.3 近自由电子近似与能带间隙  |  2.4.4 晶体能带结构  |  2.4.5 介电函数
  • 2.5 晶格振动与声子谱
第三章   第一性原理的微观计算模拟
  • 3.1 分子轨道理论
    • 3.1.1 波恩-奥本海默近似  |  3.1.2 平均场的概念  |  3.1.3 电子的空间轨道与自旋轨道  |  3.1.4 Hartree-Fock 方法  |  3.1.5 HF 近似下的单电子自洽方程  |  3.1.6 Hartree-Fock 单电子波函数的讨论  |  3.1.7 闭壳层体系中的 HF 方程  |  3.1.8 开壳层体系中的 HF 方程  |  3.1.9 HF 方程的矩阵表达  |  3.1.10 Koopmans 定理  |  3.1.11 均匀电子气模型  |  3.1.12 HF 方程的数值求解和基组选取  |  3.1.13 Xα 方法和超越 HF 近似
  • 3.2 密度泛函理论
    • 3.2.1 托马斯-费米-狄拉克近似  |  3.2.2 Hohenberg-Kohn 定理  |  3.2.3 Kohn-Sham 方程  |  3.2.4 交换关联能概述  |  3.2.5 局域密度近似  |  3.2.6 广义梯度近似  |  3.2.7 混合泛函  |  3.2.8 强关联与 LDA+U 方法
  • 3.3 赝势
    • 3.3.1 正交化平面波  |  3.3.2 模守恒赝势  |  3.3.3 赝势的分部形式  |  3.3.4 超软赝势
  • 3.4 平面波赝势方法
    • 3.4.1 布里渊区积分——特殊 k 点  |  3.4.2 布里渊区积分——四面体法  |  3.4.3 平面波-赝势框架下体系的总能  |  3.4.4 自洽场计算的实现  |  3.4.5 利用共轭梯度法求解广义本征值  |  3.4.6 迭代对角化方法  |  3.4.7 Hellmann-Feynman 力
  • 3.5 缀加平面波 (APW) 方法及其线性化
    • 3.5.1 APW 方法的理论基础及公式推导  |  3.5.2 APW 方法的线性化处理  |  3.5.3 关于势函数的讨论
  • 3.6 过渡态
    • 3.6.1 拖曳法与 NEB 方法  |  3.6.2 Dimer 方法
  • 3.7 电子激发谱与准粒子近似
    • 3.7.1 基本图像  |  3.7.2 格林函数理论与 Dyson 方程  |  3.7.3 GW 方法  |  3.7.4 Bethe-Salpeter 方程
  • 3.8 应用实例
    • 3.8.1 缺陷形成能  |  3.8.2 表面能  |  3.8.3 表面巨势  |  3.8.4 集团展开与二元合金相图
第四章   VASP 计算模拟实例
  • 4.1 VASP 程序介绍
  • 4.2 辅助建模软件 Atomsk
  • 4.3 后处理程序 VASPKIT
  • 4.4 小分子气体能量计算
  • 4.5 C₂H₅OH 的振动模式与频率计算
  • 4.6 材料平衡晶格常数计算
  • 4.7 堆垛层错能的计算
  • 4.8 多元合金的弹性性能计算
  • 4.9 空位形成能和间隙能计算
  • 4.10 晶体 Si 的能带结构计算
  • 4.11 基于 HSE06 的态密度与能带计算
  • 4.12 表面能的计算
  • 4.13 缺陷石墨烯的 STM 图像计算模拟
  • 4.14 Pt 表面简单物种的吸附能计算
  • 4.15 Pt(111) 表面羟基解离的过渡态搜索
  • 4.16 Pt 表面的 ORR 催化路径
第五章   紧束缚方法
  • 5.1 建立 Hamiltonian 矩阵
    • 5.1.1 双原子分子  |  5.1.2 原子轨道线性组合方法  |  5.1.3 Slater-Koster 双中心近似  |  5.1.4 哈密顿矩阵元的普遍表达式  |  5.1.5 对自旋极化的处理  |  5.1.6 光吸收谱
  • 5.2 体系总能与计算原子受力
  • 5.3 自洽紧束缚方法
    • 5.3.1 Harris-Foulkes 非自洽泛函  |  5.3.2 电荷自洽紧束缚方法
  • 5.4 应用实例
    • 5.4.1 闪锌矿的能带结构  |  5.4.2 石墨烯和碳纳米管的能带结构
第六章   分子动力学方法
  • 6.1 简介
    • 6.1.1 分子动力学基本步骤  |  6.1.2 系综平均与时间平均  |  6.1.3 周期性边界条件  |  6.1.4 近邻列表算法
  • 6.2 原子间相互作用势
    • 6.2.1 对势  |  6.2.2 晶格反演势  |  6.2.3 嵌入原子势 (EAM)  |  6.2.4 改良型嵌入原子势 (MEAM)  |  6.2.5 机器学习势
  • 6.3 微正则系综分子动力学
    • 6.3.1 前向欧拉算法  |  6.3.2 Verlet 算法  |  6.3.3 速度 Verlet 算法  |  6.3.4 蛙跳算法  |  6.3.5 预测-校正算法
  • 6.4 正则系综
    • 6.4.1 热浴和正则系综  |  6.4.2 NPT 系综
  • 6.5 第一原理分子动力学
    • 6.5.1 波恩-奥本海默分子动力学  |  6.5.2 Car-Parrinello 分子动力学
  • 6.6 分子动力学的应用
第七章   LAMMPS 分子动力学实例
  • 7.1 LAMMPS 程序介绍
  • 7.2 可视化程序 OVITO
  • 7.3 惰性气体的扩散运动与平衡速率分布
  • 7.4 气体分子的布朗运动
  • 7.5 大质量粒子的二维布朗运动
  • 7.6 材料的热膨胀系数计算
  • 7.7 体积热容的计算
  • 7.8 Cu 的声子谱计算
  • 7.9 Ni 裂纹扩展机理计算
  • 7.10 LiS 锂硫电池体积膨胀的模拟
  • 7.11 体相 Pt 的熔点与径向分布函数计算
  • 7.12 Pt 纳米颗粒的熔点与表面熔化
  • 7.13 Pt 纳米颗粒的烧结
  • 7.14 氢原子在 BCC-铁中的扩散
  • 7.15 Ni 纳米线的屈服机制
  • 7.16 SiGe 纳米线的热导率计算
  • 7.17 多晶四元合金的切削分子动力学模拟
  • 7.18 Si 表面的薄膜沉积
  • 7.19 Hybrid 势模拟石墨烯对金属纳米线的卷绕过程
第八章   蒙特卡罗方法
  • 8.1 蒙特卡罗方法基本原理
  • 8.2 计算函数积分与采样策略
    • 8.2.1 简单采样  |  8.2.2 重要性采样  |  8.2.3 Metropolis 采样
  • 8.3 几种重要的算法与模型
    • 8.3.1 NVT 正则系综的 MC 算法  |  8.3.2 NPT 正则系综的 MC 算法  |  8.3.3 巨正则系综的 MC 算法  |  8.3.4 Ising 模型  |  8.3.5 格子气模型  |  8.3.6 Potts 模型  |  8.3.7 XY 模型
  • 8.4 Gibbs 系综
    • 8.4.1 随机事件及其接受几率  |  8.4.2 GEMC 算法实现
  • 8.5 统计力学中的应用
    • 8.5.1 随机行走  |  8.5.2 利用 Ising 模型观察铁磁-顺磁相变  |  8.5.3 逾渗问题
  • 8.6 动力学蒙特卡罗方法 (KMC)
    • 8.6.1 KMC 方法的基本原理  |  8.6.2 指数分布与 KMC 方法的时间步长  |  8.6.3 计算跃迁速率  |  8.6.4 KMC 几种不同的实现算法  |  8.6.5 低势垒问题与小概率事件  |  8.6.6 实体动力学蒙特卡洛方法  |  8.6.7 KMC 的若干进展
  • 8.7 KMC 的应用
    • 8.7.1 表面迁移  |  8.7.2 晶体生长  |  8.7.3 模拟程序升温脱附过程
第九章   附录
  • 9.1 角动量算符在球坐标中的表达式
  • 9.2 拉普拉斯算符在球坐标中的表达式
  • 9.3 勒让德多项式、球谐函数与角动量耦合
  • 9.4 三次样条
  • 9.5 傅里叶变换
    • 9.5.1 基本概念  |  9.5.2 离散傅里叶变换  |  9.5.3 快速傅里叶变换
  • 9.6 结构分析
    • 9.6.1 辨别 BCC、FCC 以及 HCP 结构  |  9.6.2 中心对称参数  |  9.6.3 Voronoi 算法构造多晶体系
  • 9.7 NEB 常用的优化算法
    • 9.7.1 Quick-Min 算法  |  9.7.2 FIRE 算法
  • 9.8 Pulay 电荷更新
  • 9.9 最近邻原子的确定

环境与工具

工具 用途
Python / Jupyter 算法原理演示与数值实现
VASP 第一性原理电子结构计算 (第四章)
LAMMPS 经典分子动力学模拟 (第七章)
OVITO 分子动力学可视化后处理
VASPKIT / Atomsk / ASE 建模与后处理辅助工具

许可证

本项目采用 GPL-3.0 许可证。