Zachary's Zone

Nothing down, nothing up!


  • 首页

  • 关于

  • 标签

  • 归档

  • 搜索

Cantera实用手册

发表于 2022-05-05

Cantera is an open-source suite of tools for problems involving chemical kinetics, thermodynamics, and transport processes.

cantera提供了多种语言的接口,支持包括C++、MATLAB和python等语言在内的主流语法。其中以MATLAB和python用户居多。本人主要基于python语法进行cantera的有关开发。

为什么选择cantera?

开源!免费!作为开源的资源库,cantera提供了基本的热力学、动力学以及反应器的类,我们可以在其基础上开发符合自己需求的模型,满足我们独特的需求。相对的,诸如chemkin这类封装完整的付费软件,用户自主修改的自由度几乎为零(当然,大部分情况下,该软件已经很成熟和稳定,不需要额外修改)。

对于非均相的体系,目前(截止2022年5月)没有比较成熟的模拟软件,尽管有KIT-Olaf团队的DetChem这类开发许久(20世纪90年代开始)的封装程序,但是仍然不成熟,在微分方程求解和反应器模拟中仍然有很多不足。cantera恰恰可以提供一个用户自己开发的途径。

cantera案例分析

燃烧反应动力学笔记

发表于 2022-04-25

参考:燃烧反应动力学(课程)(齐飞,李玉阳)和燃烧反应动力学(参考书)(齐飞,李玉阳,苑文浩)

C0-C4基础燃料反应机理

氢气机理

已经确认的比较重要的20个反应

自由基与分子置换反应:
$$
\ce{H + O2 = O + OH}\tag{1}
$$

$$
\ce{O + H2 = H + OH}\tag{2}
$$

$$
\ce{OH + H2 = H + H2O}\tag{3}
$$

$$
\ce{O + H2O = OH + OH}\tag{4}
$$

HO2的反应:
$$
\ce{H +O2 +M = HO2 +M}\tag{5}
$$

$$
\ce{HO2 +H = OH +OH}\tag{6}
$$

$$
\ce{HO2 +H = H2 +O2}\tag{7}
$$

$$
\ce{HO2 +H = H2O +O}\tag{8}
$$

$$
\ce{HO2 +O = OH +O2}\tag{9}
$$

$$
\ce{HO2 +OH = H2O +O2}\tag{10}
$$

H2O2的反应:
$$
\ce{HO2 +HO2 = H2O2 +O2}\tag{11}
$$

$$
\ce{OH +OH (+M) = H2O2 (+M)}\tag{12}
$$

$$
\ce{H2O2 +H = HO2 +H2}\tag{13}
$$

$$
\ce{H2O2 +H = H2O +OH}\tag{14}
$$

$$
\ce{H2O2 +OH = H2O +HO2}\tag{15}
$$

$$
\ce{H2O2 +O = OH +HO2}\tag{16}
$$

自由基与自由基的复合反应:
$$
\ce{H +OH +M = H2O +M}\tag{17}
$$

$$
\ce{H +H +M = H2 +M}\tag{18}
$$

$$
\ce{O +O +M = O2 +M}\tag{19}
$$

$$
\ce{H +O +M = OH +M}\tag{20}
$$

氢气机理解析

Combustion Chemistry of Aromatics

芳香族是输运替代燃料重要组成部分。

R:烷基

反应类型

高温反应类型:

  1. C-C和C-H键解离反应
  2. H原子提取和复分解反应
  3. 本位取代反应

win10环境下的VMware+Ubuntu虚拟机配置

发表于 2022-04-05

软件安装指南:

参照公众号指南:Vm虚拟机安装Linux系统教程

网络配置问题:

虚拟机运行后,很可能会出现网络无法使用的问题,此处陈列遇到的问题以及对应解决方法。
参考该文,重置网络配置解决,简单粗暴:解决VMware虚拟机无法联网问题

相关报错信息与解决方案:

报错:Ubuntu16.04安装vim出错:E: 软件包vim没有可供安装的候选者

解决:系统升级后再安装

1
2
sudo apt-get update
sudo apt-get upgrade

解决Ubuntu使用ROOT账户登录图形界面报错认证失败

  • 登录普通用户使用sudo或sudo -i切换到root用户打开终端执行命令

    输入sudo passwd root

    跟着命令提示,首先输入此账户的密码,再设定Root密码,确认Root密码

    然后使用su命令配合刚刚设定的密码登录root账户(必须)

  • 在终端中以文本模式修改配置文件,可使用vi/vim/gedit来操作,考虑到新系统没安装vim,同时Ubuntu的vi工具又贼难用,本文以gedit命令做示范,执行:

    gedit /etc/pam.d/gdm-autologin

    在打开的文本编辑器中使用”#”来注释掉下列命令(就是在前面加一个#号)

    auth required pam_succeed_if.so user != root quiet_success

    保存并退出,继续在终端执行

    gedit /etc/pam.d/gdm-password

    注释掉同一句话,保存并退出,继续在终端执行

    gedit /root/.profile

    将内容中的”mesg n || true”修改为

    tty -s&&mesg n || true

  • 终端执行reboot重启系统

    在登录账号选择界面选择未列出

    账户填root密码即为第一步设定的密码

linux常用命令

新建文件 :touch 文件名.txt
执行.pl文件:./文件名.pl
解压缩tar文件:tar -xf 文件名

虚拟机与主机实现交互(自由复制粘贴)

按照VMware提示安装好VMware Tools(必须弹出原有的CD占用)

安装完成后重启即可实现自由复制粘贴(在虚拟机复制–>在主机粘贴 或 在主机复制–>在虚拟机粘贴)

有用的网站

发表于 2022-04-04

催化反应动力学研究课题组:

KIT-Olaf团队
微观催化反应动力学多尺度建模

ivofilot团队
理论与计算化学

Schimdt团队
下一代从头计算力场开发
微观动力学模拟
金属有机骨架成核与结晶

Vlachos团队
循环经济和各种原料的衍生化,包括生物质、食物垃圾、其他废物流和塑料,以生产可再生燃料、化学品和绿色氨。它集成了分子水平催化、动力学和反应机理、催化剂信息学和硅材料预测、催化剂活性中心测定、连续强化化学处理和化学过程电气化。

Wintterlin团队
表面动力学
钴模型催化剂上的费托合成
银催化乙烯环氧化
金属表面外延石墨烯

实用工具:

多相催化反应机理自动生成工具:RMG-Cat

DetChem实用手册

发表于 2022-04-03

参数设置要点

TROE表述

机理文件中的速率方程不仅仅可以用常规阿累尼乌斯公式,也可以使用TROE表达方法。
详见:manual2.8 P29

机理文件

机理文件行和行之间留空行会导致报错!
Troe定义的时候务必记得露头出来(TROE空格一个即可写入第一个数据)

慎重用制表符!建议只使用多个空格键!

常见问题&解决方案

ERROR: multiple definition of collision efficiency

碰撞系数多重定义
暂时处理办法,通过测试删除一些较大的原子

不能算完整个管道

往往是pack的实验参数不合适

同时采用不绝热条件和非等温条件报错

形如No correlations available for Nu calculation:Re
考虑两点:

  • <wall></wall>中的三个参数是否进行设置,注意不能设置管壁厚度为0,否则绝热条件失效
  • 通过测试,particle_dia会显著影响是否能进行计算,目前的折中办法是考虑改变该参数数量级,减少小数位数

VASP实用手册

发表于 2022-04-03

报错时考虑的重要命令:dos2unix

POTCAR中常用参数说明:

  • VRHFIN 用来看元素的价电子排布,如果你元素周期表倒背如流,可以忽略这个参数;
  • LEXCH 表示这个POTCAR对应的是GGA-PBE泛函;如果INCAR中不设定泛函,则默认通过这个参数来设定
  • TITEL 就不用说了,指的是哪个元素,以及POTCAR发布的时间;
  • ZVAL 指的是实际上POTCAR中价电子的数目,尤其是做Bader电荷分析的时候,极其重要。
  • ENMAX 代表默认的截断能。与INCAR中的ENCUT这个参数相关。

如果想把体系从Cartesian转化为Direct,我们可以算一个单点。因为CONTCAR结果为Direct坐标系

电子结构优化:电子步
几何结构优化:离子步

电子步(SCF):EDIFF<=>NELM
离子步(结构优化):EDIFFG<=>NSW

电子迭代自洽算法:DAV(Blocked Davidson algorithm)、RMM(residual minimization scheme)、CG(conjugate-gradient algorithm)等等,在ICNAR中通过ALGO调整

自旋极化参数设置(ISPIN=1,不打开自旋极化;=2打开):
参照下列情况考虑自旋极化:

  • 单原子的计算
  • O2分子(基态为三重态)
  • 自由基相关的计算
  • 含Fe,Co, Ni 的体系
  • 要计算的体系具有磁性:顺磁,铁磁,反铁磁等,要打开自旋极化
  • 当关注体系的电子性质时,且自己不知道加或者不加的时候,建议加上

image-20220403213150046

改变晶胞对称性对于原子电子结构计算很重要,如果只用对称性参数(ISYM=0时,不考虑对称性)进行描述是不够的(只能起到有限的作用)

ISMEAR:
金属体系:
ISMEAR一般用ISMEAR=0 或者整数1,2即可。
SIGMA =0.1 足够
气相分子
ISMEAR=0
SIGMA=0.02参考值(要小一点)

EDIFF&EDIFFG:
分别对应电子步的收敛判据和离子步的收敛判据,其中EDIFFG取1e-5即可,EDIFFG小体系用力的判据,取-0.01即可(注意负号),大体系用能量作为判断依据(1e-4即可,电子步收敛精度*10)

IBRION:
进行分子优化时需要引入
一般来说,优化结构的时候有3个选择:
IBRION=3:你的初始结构很差的时候;
IBRION=2:共轭梯度算法,很可靠的一个选择,一般来说用它基本没什么问题。
IBRION=1:用于小范围内稳定结构的搜索

IBRION=5:振动频率计算,此时POTIM要使用更小的数值,EDIFF需要更严格的值,加上NFREE=2,表示在某方向正反方向运动要(注意:最好把NCORE注释掉,不然只能算一步!)

MAGMOM:
初始磁矩设置,简单的磁性体系,我们可以直接使用ISPIN=2, MAGMOM不必进行设置。不知道体系的磁矩是多少,可以根据原子所处的化学环境, 根据成键情况,大体推测有多少个未成对电子,然后将未成对电子数目*1.5(注意!前面是数目,后面是磁矩)
MAGMOM = 10*-2 ——有10个原子,每个原子的初始磁矩为 -2

POTIM:
计算离子间作用力时,控制优化步离子移动的大小。
应用前提是IBRION=2,如果初始结构较好则随意,初始结构较差需要设置小一点(POTIM=0.05可以作为参考值)

ENCUT:
1.3*EMAX即可

ISTART:
0 :自动生成波函数(轨道)
1 :读取WAVECAR中的轨道信息,读不到就自动生成,根据新的设定重新生成平面波基组。
2 :读取WAVECAR中的轨道信息,读不到就自动生成,使用旧的平面波基组。

NCORE:
大师兄经验:NCORE = 单个节点核数 / 2 的时候,运行最省时间,设置也最方便。上交超算用40/2=20。计算频率的时候注释掉!(不然只能算一步,原因不明)。(计算单点的时候也注释掉!不然会出问题)(慎重使用!建议不用!)

从chemspider获取PSOCAR的时候,注意给的坐标是笛卡尔(Cartesian)还是分数坐标(Direct),分数坐标各个元素均小于1。

原子固定操作:

  1. 元素数目之后加入select关键字S
  2. 通过对应原子坐标最后T/F的设置控制固定(F)与放松(T)

振动频率计算要点:

image-20220403213508984

conventional cell和primitive cell的区别:
conventional cell是搞晶体材料的经常用的,其特点是所选的cell在视觉上有非常好的对称性,但里面会存在重复的原子。也就是说,它不是晶体最小的重复单元。(一般用conventional cell)
primitive cell是晶体最小的重复单元。

关于K点设置的经验:
K * a = 45左右之间完全可以满足要求
image-20220403213605105

LREAL:
确定投影在实空间求值(Auto等)还是在倒易空间(.FALSE.)求值
我们建议对包含20个以上原子的系统使用实空间投影方案。我们还建议只使用LREAL=Auto(对于版本VASP.4.4和更新的版本)和LREAL=On(对于所有其他版本)…通常使用LREAL=Auto可以获得最佳性能,但如果性能不是那么重要,也可以使用LREAL=.TRUE。
计算时要根据原子数的多少,以及后续的计算选择LREAL的值。不能拿LREAL=.FALSE.和LREAL=ON/.TRUE.计算的结果进行能量比较。

NELM:
设置电子SC(自一致性)步骤的最大数量(默认60)。通常,不需要更改默认值:如果自一致性循环在60个步骤内没有收敛,它可能根本不会收敛。在这种情况下,您应该重新考虑标记IALGO或ALGO、LSUBROT和混合参数。

ALGO:
指定电子最小化算法。或选择GW计算的类型。计算不收敛的时候多尝试修改这个参数。

ISIF:
是否计算应力张量。常用ISIF=2/3,使用时候需要增加ENCUT来减少误差【针对晶格常数!】。
image-20220403213652763

一旦我们计算完成晶格常数的计算后,可以在此结果基础上,统一使用其他的ENCUT值进行计算。也就是只有确定晶格常数的这一步是个例外,其他情况还是用原来的值。使用ISIF = 3 时,你脑子第一反应就是疯狂地增加ENCUT,600不够,上700, 700感觉不够,上800,在计算承受的范围之内,越大越好! 因此ISIF = 3 和 ENCUT两个参数必须同时出现。
晶胞优化的时候,一般用ISIF=3;
slab 模型优化的时候,我们用ISIF =2 ,也就是VASP的默认值,不用设置。

Slab模型说明:
Slab模型有两种,一种是上下表面对称的,一种是非对称的。对称性结构往往需要很多层,体系较大。 非对称的结构体系较小,但存在偶极矩的影响,要注意加LDIPOL 和IDIPOL这两个参数来消除:
块体材料计算时,为了后续计算其他性质,常常要求整个计算中使用相同的ENCUT,ENAUG, PREC, LREAL, ROPT。
一般来说用Conventional cell, FCC的金属可以用Primitive Cell 但对于其他体系,通过Primitive Cell切出来表面模型有问题。
偶极矫正:LDIPOL = .TRUE. ; IDIPOL = 3 Slab模型一般都需要加上这个参数
优化模型的时候需要考虑固定底层原子!在真实的环境下,催化剂体相看做是不变的,只有表面的原子参与催化反应。

Slab固定说明:
VASP中固定原子需要在POSCAR中进行操作。有两个关键点:
1)在POSCAR的第7行后添加一行,改行内容为Selective Dynamics,VASP只认第一个字母,你可以直接在这一行只加 S或者s。也可以换成其他的S开头的单词,比如SB,Sexy BigBro , Super BigBro等等;
2)在原子坐标后面加上 F 或者 T 表示固定或者放开,因为坐标有xyz三个数值,因此我们需要三个F或者T。我们可以通过设置允许原子在某一方向上移动,而其他方向上固定。
F F F表示xyz全部固定;
T T T 表示xyz全部放开,
F F T 表示 xy方向固定,只允许原子在z方向上移动。

PREC:
确定计算的精度模式,常常与ENCUT兼容使用。PREC=High;ENCUT=1.3Emax;
计算频率的时候 PREC=Normal(vasp5.默认)

ICHARG:
ICHARG确定VASP如何构造初始电荷密度。
Default: ICHARG = 2 if ISTART=0

LCHARG&LWAVE:
LCHARG determines whether the charge densities (files CHGCAR and CHG) are written.
LWAVE determines whether the wavefunctions are written to the WAVECAR file at the end of a run.

常用公式测试

发表于 2022-04-03

常用公式测试

  • 数学公式

    $A_1^2+B_2^2=C_3^2$

博客常用命令

发表于 2022-04-02

github+hexo静态网页常用命令

hexo clean 清除缓存
hexo g 生成(hexo generation)
hexo s 启动服务预览(hexo server)
hexo d 部署到网站(hexo deploy)
hexo n "My_Blog" 新建文章(*hexo new “My_Blog”*)

8 日志
9 标签
GitHub E-Mail
友情链接
  • 燃烧与能源研究团队
  • KIT-ITCP团队
0%
© 2022 Zachary