首页 >> 仿真软件说明 >>Materials studio >>Kinetix >> 蒙特卡洛方法模拟CO的氧化
详细内容

蒙特卡洛方法模拟CO的氧化

背景

Kinetix模块中的动力学蒙特卡罗(kMC)模拟是一种研究表面动力学的方法。它的特点是原子尺度的空间分辨率和时间尺度可与实验室中的动力学实验相媲美。它可以模拟长时间尺度的系统(大约比分子动力学模拟时间长九个数量级),因为它只模拟系统中原子和分子的反应。Kinetix模块使用CARLOS程序(http://www.win.tue.nl/~johanl/projects/nCarlos),该程序由埃因霍温技术大学开发,用于进行模拟。

Kinetix模拟中不包括原子和分子的精确位置及其速度。假设体系的构型接近其势能面的特定最小值。最终结果中,反应发生的确切时间以及发生的反应不能确定,但可以得到反应时间和所发生反应的概率分布。

介绍

一个完整的kMC模拟需要一个复杂的范式,其中规定了许多不同的反应,每个反应都需要详细的反应概率信息。

本教程中,将设置简单氧化/还原(ORR或redox)反应中涉及的过程,特别是Pt(1 1 1)表面上的CO氧化,使用一组简化的过程对反应进行建模。这类似于Ziff et al., 1986描述的Pt(100)晶格上CO氧化的模型,称为ZGB模型。

最少的一组过程包括:CO吸附、游离O2吸附、CO2形成和CO2解吸。最后两个过程可以结合起来,得到:

CO(gas) → CO(ads)

O2(gas) → 2O(ads)

CO(ads) + O(ads) → CO2(gas)


虽然更完整的反应建模将涉及其他过程,如扩散和O2解吸,但本教程仅限于研究上述三个过程。在本教程的后面部分,将添加进一步的过程,以使模拟更逼真。

Kinetix使用两种特定于此类模拟的文档类型。过程文档包含模拟中涉及的晶格和化合物范式,以及模拟过程中可能发生的反应和其他过程。构型文件包含模拟网格上化合物特定构型的描述。模拟使用流程文档中的详细信息对构型文档进行操作,以确定构型随时间演变的过程。

本教程包括如下部分:

开始

设置反应过程

创建初始构型

运行Kinetix模拟

分析Kinetix模拟的结果

添加更多反应过程

注意:为了和本教程中的参数保持一致,可以使用Settings Organizer对话框将工程中所有参数都设置为BIOVIA的默认值。


1、开始

首先启动Materials Studio并创建一个新工程。

打开New Project对话框,输入ORR_simple作为工程名,单击OK按钮。

新工程将以ORR_simple为工程名显示于Project Explorer中。将创建一个基本过程文档,描述需要模拟的晶格和化合物。

单击Modules工具条上的Kinetix按钮

从下拉菜单中选择Process Builder,

打开Kinetix Process Builder对话框。

该文本框可用于指定将执行模拟的晶格的几何构型。将使用六方晶格,因为每个单元仅使用一个晶格位置,所以应将对称性设置为最大可能。晶格尺寸对应于Pt晶体中的金属原子之间的距离,或者更具体地说,对应于从该晶体切割出的(1 1 1)表面中的金属原子之间的距离。

在Description文本框中输入Hexagonal ZGB model。将晶格的Type设置为Hexagonal,Symmetry设置为p 6 m m,Length设置为2.77 Å。单击Create按钮,关闭对话框。

这将创建一个新的过程文档,用于指定模拟中涉及的化合物和过程。

在Project Explorer中,右键单击KinetixProcesses.xkp并从快捷菜单中选择Rename。将名称更改为ZGBProcesses.xkp。

现在,将指定将在模拟中使用的化合物。请注意,总是有一个与空位相对应的定义(特定位置缺少任何化合物)。默认情况下,它的符号为V。

选择Species选项卡,在Name列的第一个空单元格中输入CO,然后按TAB键。在下一行中输入O,然后按TAB键。

本教程中使用化合物的默认属性(半径、电荷和颜色),但如果需要,可以在以后进行更改。


2、设置反应过程

由于Kinetix不能模拟气相,因此无法使用上述精确过程。Kinetix模拟对构型中的一个或多个特定位置的变化进行建模,说明过程前后该位置的化合物数量。某一位点没有任何化合物被描述为空位,用符号V表示。ORR过程可表示为:

V → CO

2V → 2O

CO + O → 2V

这个描述不考虑CO2,因为它是在最后一个过程中隐含的。由于该模型结合了CO2的形成及其瞬时解吸,因此未显式写明。

对于每个过程,将定义所涉及的反应和位置,以及反应速率的详细信息。反应速率可以显式指定,也可以使用Arrhenius表达式指定。在本教程中,将显式指定反应速率。

首先设置CO吸附过程。

选择ZGBProcesses的Processes选项卡。确保process of type设置为Adsorption,单击Add按钮。

一个新的名为NewProcess的过程将被添加到列表中,Process Details选项卡中可使用更多选项。

输入COAds作为Identifier,CO adsorption作为Description。

将Specification type更改为Rates,将Rate coefficient设置为0.55。在Process Sites选项卡中,从Adsorbate(s)下拉列表中选择CO。

接下来,将设置O2吸附过程。这与CO吸附过程不同,它是一个解离过程,当O2分子被吸附时,会产生两种不同种类的O原子片段。


在Processes选项卡中单击Add按钮,创建一个新的过程。

在Process Details选项卡中输入O2Ads作为Identifier,O2 adsorption作为Description。将Specification type更改为Rates,将Rate coefficient设置为0.15。

在Process Sites选项卡中,勾选Dissociative adsorption复选框。选择Site View选项卡查看位点设置:

image.png


显示解离吸附过程的位点视图


这是当前流程范式中使用的位点的视图,以及每个位点在流程中起到的作用。红色表示该位点的范式不完整或不正确。在当前情况下,这是因为尚未指定此吸附过程中涉及的化合物种类。

在Process Sites选项卡中,在Adsorbate(s)下拉列表中均选择O。

在Site View选项卡上,当指定吸附质时,位点的颜色将从红色变为白色。

在Site View中单击鼠标右键,然后从快捷菜单中选择Site View Colors,以打开Kinetix Site View Colors对话框。查看位点颜色,关闭对话框。

最后,将设置CO2的形成过程。此处使用了不同类型的过程和不同的设置过程速率的方法,表明在给定模式发生时应立即发生形成和解吸。另一种解决方法是将其视为具有无穷大速率系数的过程。


在Processes选项卡中,选择process of type为Desorption,单击Add按钮。在Process Details选项卡中输入CO2Des作为Identifier,CO2 formation and desorption作为Description。将Specification type更改为Immediate。

在Process Sites选项卡,勾选Associative desorption复选框,从Species下拉列表中选择CO和O。

现在已经设置了要在第一次模拟中使用的流程,应该在继续下一步之前检查这些流程是否合适。

在Site View选项卡上,单击Process index的箭头按钮以滚动浏览定义的流程。

检查是否存在进程显示为无效(由红色位点指示)。检查Multiplicity报告是否正确。对于COAds,该值应为1,对于O2Ads,该值应为3,对于CO2Des,该值应为6。

对于每个流程,查看Process Details和Process Sites选项卡,检查每个流程的详细信息。

在继续计算之前,应保存工程。

从菜单栏中选择File | Save Project。


3、创建初始构型

除了这些过程之外,还需要建立模拟的初始构型。构型是指吸附质分布在各个位点上的方式。每个位点的占用与否对于构型的完整规范是必要的。

应从一个空表面开始,其中所有位点都是未被占据的。可以使用Configuration Builder定义这样的构型。

单击Modules工具条上的Kinetix按钮

从下拉菜单中选择Configuration Builder,打开Kinetix Configuration Builder对话框。

这允许指定模拟体系的大小。更大的模拟体系将减少结果中的统计噪声,但会牺牲额外的计算时间。大型模拟体系不容易可视化(而且速度很慢),所以需要指定一个较小的总模拟显示范围。可以对显示的模拟部分进行操作,以查看结果并检查它们是否代表整个模拟。

将Configuration size更改为64 × 64,确保Type of configuration设置为Constant。在Species to fill部分,从Adsorption sites下拉列表中选择V。单击Create按钮,关闭对话框。

将创建一个新的文件,名为KinetixConfiguration.xkc。

将新创建的构型文件重命名为ZGB.xkc。从菜单栏中选择File | Save Project。


4、运行Kinetix模拟

单击Modules工具条上的Kinetix按钮

从下拉菜单中选择Calculation,或从菜单栏中选择Modules | Kinetix | Calculation。

打开Kinetix Calculation对话框,其中有多个模拟选项。可以对模拟长度进行控制,以及温度、压力和势能等参数随时间变化的情况。简单速率系数Rate coefficients被指定为每个过程的反应速率,而不是Arrhenius表达式,因此不依赖于温度、压力或势能。在这种情况下,应该使用Constant conditions任务。

确保ZGB.xkc是当前文档。在Kinetix Calculation对话框的Setup选项卡上,从Task下拉列表中选择Constant conditions。单击More...按钮打开Kinetix Constant Conditions对话框。

对于此模拟,Kinetix Constant Conditions对话框中需要研究的参数是Simulation time和Sampling interval。指定的速率系数意味着这些参数的默认值符合当前模拟的要求。

关闭Kinetix Constant Conditions对话框。

在Setup选项卡中,从Processes下拉列表中选择ZGBProcesses.xkp。

检查Kinetix Calculation对话框中其他选项卡中的内容,设置的所有默认值都适用于简单的初始模拟。

Processes选项卡列出所选流程文档中定义的流程,并允许用户决定将要使用的流程。使用不同的过程重复模拟可能很有用,例如使用吸附、扩散和解吸过程的初始模拟,以生成第二次模拟的实际起始构型,第二次模拟可能忽略吸附过程以模拟程序升温脱附。


Job Control选项卡控制有关计算任务运行位置和方式的详细信息。单击More...按钮打开Kinetix Job Control Options对话框,可利用该对话框在计算过程中控制服务器的更新等。

生成结果的频率由任务详细信息对话框上的Sampling interval和Configuration output every控制。创建两种类型的原始结果:一种包含浓度、过程速率等的摘要,另一种包含实际构型的轨迹文件。每个频率都是单独控制的。这些输出可用于分析,可以直接显示构型。如果发现初始模拟时间不够长,也可以使用它们重新启动模拟。

单击Run按钮,关闭对话框。

一个名为ZGB Kinetix ConstCond的新文件夹将在Project Explorer中打开。该计算将在一分钟之内完成。将在新文件夹中产生六个文件,如下:

ZGB - Calculation:包含当前应用程序状态副本的状态文件。

ZGBProcesses.xkp:原始流程文档的副本。

ZGB.kin:CARLOS程序的输入。

ZGB.kout:CARLOS程序的主要文本输出,包括了输入和模拟性能。还有其他输出文件,其中包含隐藏在Project Explorer中的更详细的结果,这些文件可由分析功能访问。

ZGB.xkc:模拟结束时的构型。

ZGBTraj.xkc:一个多帧文档,包含模拟期间各点的构型,由Kinetix Calculation对话框Output选项卡上的参数请求。


5、分析Kinetix模拟的结果

接下来,将生成平均浓度和反应速率随时间变化的图表。

在Project Explorer中,从结果文件夹中打开ZGB.kout文档。单击Modules工具条上的Kinetix按钮

选择Analysis,打开Kinetix Analysis对话框。

选择Concentrations并勾选CO和O Species的复选框。单击View按钮。

将显示一个图表文档,显示每种化合物的平均浓度与模拟时间的函数关系。(模拟是一个涉及随机选择的蒙特卡罗过程,因此得到的结果可能与此处展示的结果不同。)

image.png


在Kinetix Analysis对话框中选择Rates,并勾选COAds、O2Ads和CO2Des Reactions的复选框。单击View按钮。

将显示一个图表文档,显示每个过程的平均反应速率(以单位晶胞每秒的反应数为单位)与模拟时间的函数。

image.png

模拟过程中过程的平均反应速率


这些图表显示,O的浓度迅速增加到0.4左右,CO的浓度下降到一个较低的值,因此很快就达到了近似的稳定状态。COAds和CO2Des过程的反应速率大致相等,而O2Ads过程的反应速率约为其他过程的一半,这将保持稳定状态。

现在,需要了解构型随时间的变化过程。

在Project Explorer中,从结果文件夹中打开ZGBTraj.xkc。单击Configuration Viewer上的Play按钮

以显示轨迹动画。

单击Stop按钮

更改构型文档的显示样式有助于查看和解释结果。

在ZGBTraj.xkc中单击鼠标右键,然后从快捷菜单中选择Display Style,以打开Kinetix Configuration Display Style对话框。

在Options选项卡上,将Background color更改为white。在Style选项卡上,将Radius scale和Vacancy scale值更改为1.4,然后关闭对话框。

在Configuration View中,输入7作为Frame,然后按下TAB键。


ZGBTraj.xkc视图应如下所示:

查看构型发现,没有一种CO化合物与O化合物相邻。这与预期相一致,因为CO2Des过程被设置为在这样一对化合物相遇时立即发生。

构型视图中的化合物根据ZGBProcesses.xkp文档中最初定义的颜色进行着色,但如有需要,可以对其进行更改。

在ZGBTraj.xkc中单击鼠标右键,然后从快捷菜单中选择Properties,以打开Kinetix Configuration Properties对话框,显示使用的化合物及其颜色。更改其中一种的颜色Color并关闭对话框。

现在保存工程并关闭打开的文档。

从菜单栏中选择File | Save Project,然后选择Window | Close All。

image.png


6、添加更多反应过程

尽管到目前为止,所定义的模拟过程已经具有吸附CO和O2以及脱附CO2的必要过程,但它并不能正确地表示反应中涉及的全部过程。特别是那些关于CO和O化合物扩散的过程。扩散通常比吸附或解吸快得多。在选择参数时必须加以注意,以避免在扩散上花费太多的计算时间。

CO或O2的解吸(与吸附过程相反)也被省略。

吸附速率系数对温度的依赖性很弱,而解吸速率系数对温度的依赖性很强。

此处将首先添加一个过程来描述CO的扩散。

打开原始的ZGBProcesses.xkp文档,选择Processes选项卡。对新的过程类型选择Diffusion,单击Add按钮。

在Process Details选项卡中输入CODiff作为Identifier,CO diffusion作为Description。将Specification type更改为Rates,将Rate coefficient更改为25。

在Process Sites选项卡中,对Species选择CO。

扩散过程假设一个化合物从一个位置移动到另一个先前空置的位置,留下原始位置空置。

现在,将添加一个类似的过程来描述O的扩散。

在Processes选项卡中添加另一个Diffusion过程。

在Process Details选项卡中输入ODiff作为Identifier,O diffusion作为Description。将Specification type更改为Rates,将Rate coefficient更改为15。

在Process Sites选项卡中,对Species选择O。

通过选择25和15的速率系数,这些过程比CO和氧气的吸附要快得多。然而,CO2的形成目前是通过一个即时过程来描述的,因此,当CO化合物位于O化合物占据的位置附近时,就会发生CO2的形成。CO2的形成速率系数应介于吸附过程和扩散过程速率系数之间。

在Processes选项卡上,选择CO2Des过程。在Process Details选项卡上,将Specification type更改为Rates,将Rate coefficient更改为5。


现在需要添加CO和O2解吸过程,如下所示:

image.png


根据上表添加两个指定的新过程。

这将是本教程过程文档的最终形式。在继续之前,应该保存工程。

从菜单栏中选择File | Save Project。

现在将重新运行模拟,并将部分结果与上一次运行进行比较。

使ZGB.xkc成为当前文档。打开Kinetix Calculation对话框,确保已选择Constant conditions任务。单击Run按钮并关闭对话框。

一个名为ZGB Kinetix ConstCond (2)的新文件夹将添加到Project Explorer中。当计算任务结束后,将与之前的模拟相同,创建相同的一系列文件。


在Project Explorer中,从新的结果文件夹中打开ZGB.kout。打开Kinetix Analysis对话框,对CO和O化合物设置一个Concentrations分析。单击View按钮。

与第一次运行的等效图相比表明,O的稳态浓度比以前低,CO的浓度增加。

使用Kinetix Analysis对话框对所有Reactions执行Rates分析。单击View按钮。

由此产生的图表将立即显示,模拟主要由两个扩散过程主导。虽然CO扩散的速率系数比O扩散的速率系数更高,但O扩散在速率图中占主导地位,因为O的平均浓度更高。现在,将生成另一个没有扩散过程的速率图。

在Kinetix Analysis对话框中,取消勾选CODiff和ODiff复选框。单击View按钮并关闭对话框。

image.png

包括扩散在内的模拟过程中化合物的平均浓度


将该Rates图与第一次运行的速率图进行比较表明,三个主要关注的过程(COAds、O2Ads和CO2Des)的速率都略有上升,尽管它们显示的相对值相同。

正如预期的那样,由于为这些过程设置的速率系数非常低,CODes和O2Des过程的贡献可以忽略不计。

现在可查看新的构型演变。

在Project Explorer中,从新的结果文件夹中打开ZGBTraj.xkc。以与上一个构型文档相同的方式修改显示方式,并使用animation controls逐步遍历各帧。停止动画。

在Configuration View中,输入7作为Frame,然后按下TAB键。

image.png

包括扩散在内的模拟过程的平均反应速率


新的ZGBTraj.xkc视图应大致如下所示:

扩散过程的加入使得CO和O化合物能够在构型周围移动,而CO2过程的变化使用了5的速率系数,这意味着CO化合物有可能存在于O化合物附近的晶格位置。

尽管该模拟的第二个版本比最初的简单运行与真实过程更为接近,但由于包含了扩散和解吸过程,模型仍有改进的余地。

这些改进在Pt(1 1 1)表面上CO氧化的多位点模拟(Multi-site modeling of CO oxidation on a Pt(1 1 1) surface)教程中进行了讨论。

从菜单栏中选择File | Save Project,然后选择Window | Close All。

image.png

包含扩散过程的模拟期间的构型


最新评论
请先登录才能进行回复登录
技术支持: CLOUD | 管理登录
seo seo