Atmospheric Cluster Dynamics Code(ACDC)使用教程
!先大致列个框架,之后有时间再来补细节
介绍
大气团簇动力学代码(ACDC),是研究气相分子形成大气新粒子的工具。ACDC通过生成和求解给定环境条件下的簇出生-死亡方程来模拟分子簇和小纳米簇颗粒的动力学,从而产生簇浓度和形成速率的时间演变。
ACDC可用于:
a.使用量子化学计算得出的数据模拟不同化合物的簇形成
b.研究簇增长过程的细节(eg:增长路径)
c.通过生成合成测试数据来评估解释测量分子簇数据的实验方法
d.生成用于大规模模型的纳米颗粒形成速率数据
Run之前的准备工作
软件需求
- Perl(为code运行提供语言环境)
- Either Matlab or Fortran
可以使用Fortran或者Matlab来执行ACDC code,但是Matlab可执行的功能全一些,所以这里只介绍Matlab。(不详细解释软件的安装以及使用)
code获取
在文尾的github链接中获取ACDC的code我们主要使用目录ACDC-main\ACDC_Matlab_standard下的内容
Running the Matlab-ACDC
Matlab的工作包中包含主要程序run_steadystate_ABB.m和rates_and_deltags_ABe.m。
程序的输入参数的文件官方给了example:input_example_run_steadystate_ABB.m 和 input_example_rates_and_deltags_ABe.m,并且每一个设置都给了说明。
此外,我们还需要团簇能量文件(Energy_and_rate_files)和团簇设定文件(Cluster_set_files)。
团簇设定文件
团簇设定文件主要涉及组成团簇分子性质以及模拟本系统允许团簇长大流出的标准。
a.定义分子类型
以#(注释)开头的第一行为分子的完整名称
2-10行定义分子的名称和性质,如果非酸非碱则定义为0,碱性为-1,酸性为+1,但是这个值是相对值,酸性更强则2、3都可。
b.定义团簇
接下来的内容都是定义模拟中的分子数量,一行中不能超过一个分子的数量是范围值。
如果特定的团簇不蒸发,则在行首添加关键词:“no evap”
c.定义团簇流出体系的标准
如20、30和38行,可能有分子流进系统,也有可能有分子蒸发。不合理的生长准则选择可能会使模拟结果失真。
d.定义冷凝下沉团簇
主要针对流出模拟体系的团簇,为了防止过高估计团簇的生成速率。与外部冷凝下沉团簇不同,这主要针对体系内的团簇。
团簇能量文件
1行:计算能量时每个分子和簇类型的分压(Pa),与ACDC模拟对应的压力无关。
2行:计算能量时的温度(K)。
团簇的名称(需要与团簇设定文件里面的一致),后面接的是吉布斯自由能(kcal/mol),或者为相应的焓(kcal/mol)和熵(cal/mol K)。(G=H-TS)
!当研究只涉及中性团簇时,可以将团簇设定文件中涉及带电离子的团簇comment掉,可不注释带电离子的性质,因为如果团簇组成被#,带电离子就不会在程序中读取。
input_example_run_steadystate_ABB.m 和 input_example_rates_and_deltags_ABe.m文件里面都有设置说明,根据自己的需要修改就好。(有空再来补充)
Run
在Matlab中进入’\ACDC-main-tutorial\ACDC-main\ACDC_Matlab_standard\ACDC_main\‘路径下
输入rates_and_deltags_ABe(‘input_rates_and_deltags_ABe.m’)得到ΔG、蒸发速率等图像,出生-死亡方程(equations acdc.m)、速率常数(get coll.m, get evap.m etc)、运行模拟命令(driver acdc.m)。
输入run_steadystate_ABB(‘input_run_steadystate_ABB.m‘)得到不同浓度下的形成速率、团簇的生长路径等。
Citation
- This repository (https://github.com/tolenius/ACDC)
- Olenius et al.: Free energy barrier in the growth of sulfuric acid–ammonia and sulfuric acid–dimethylamine clusters, J. Chem. Phys. 139, 084312 (2013), https://doi.org/10.1063/1.4819024