Skip to content

stanfordbshan/CompMatBook

Repository files navigation

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

单斌   陈征征   陈蓉   编著

华中科技大学出版社   2023

License: GPL v3 Language VASP LAMMPS


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

快速导航

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

目录

前置: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 许可证。

About

Computational Materials Science(Book)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages