# Material Studio 软件教程 ## 快捷键 1. `Alt+双击` 选中某个原子可以选择所有该元素对应的原子 2. `鼠标中键` 移动晶胞和所有原子 3. `Shift+鼠标中键` 移动选中的原子 ## 文件可视化 由于 MS 一些特定后缀的文件需要一些额外的操作才可进行可视化,故在此进行简要的介绍。 ### 轨迹文件(\*.arc) arc 文件记录了原子结构变化的轨迹信息,其详细文件格式可参看 MS 提供的离线手册,下面分步骤讲述如何查看 arc 文件的轨迹信息(以 CeO$_2$(111) 表面 H$_2$ 解离过渡态的振动轨迹为例,文件可在此处下载)。 1. 将 arc 文件拖到 MS 软件中,并根据个人习惯进行结构的调整; ```{image} freq1.png :width: 500 :align: center ``` 2. 初次导入 arc 文件时,需要将动画工具显示在工具栏处,选择 View-Toolbars-Animation 即可实现; ```{image} freq2.png :width: 500 :align: center ``` 3. 完成第二步时,便可在工具栏处找到`动画`相关的按钮选项,如上图红框所示; 4. 点击播放按钮,结构自己就会按照轨迹的运动方向循环播放,至此便完成了 arc 文件的查看。
### 电荷密度文件(\*.grd) grd 文件记录了电荷密度的信息,其详细文件格式可参看 MS 提供的离线手册,下面分步骤讲述如何查看 grd 文件的轨迹信息(以 CeO$_2$(111) 表面 H 吸附的模型为例)。 1. 导入已经优化好的 xsd 文件; ```{image} grd1.png :width: 500 :align: center ``` 2. 导入 grd 文件,选择 Edit-Insert From,弹出对话框,选择你想导入的 grd 文件; ```{image} grd2.png :width: 400 :align: center ``` 3. 首次导入 grd 文件时,需要将电荷密度工具显示在工具栏处,选择 View-Toolbars-Volume Visualization 即可实现; ```{image} grd3.png :width: 500 :align: center ``` 4. 完成第三步时,便可在工具栏处找到`电荷密度查看`相关的按钮选项,如上图红框所示; 5. 点击 Create Isosurfaces,即可将电荷密度映射到结构模型中; 6. 右键选择 Display Style-Isosurface, 调节合适的 isovalue 即可制作精美的电荷密度图(此处设置为 250)。 ```{image} grd4.png :width: 500 :align: center ``` ## Perl 接口 ### Perl 基础语法 - 遍历目录下的所有文件 ```perl my $dir="C:\\Users\\hui_zhou\\Documents\\Materials Studio Projects\\Default\\Documents\\catalysts"; opendir (DIR, $dir) or die "can't open the directory!"; my @dir = readdir DIR; ``` - 正则匹配文件后缀 ```perl $file =~ /\.xsd/ ``` - 变量替换 ```perl $prefix =~ s/\.xsd//; ``` ### MS 接口相关 - 引用 MS 接口 ```perl use MaterialsScript qw(:all); ``` - 打开结构文件并绑定到 doc 变量 ```perl my $doc = $Documents{"heterogenous\\$file"}; ``` - 取消结构的对称性 ```perl $doc->MakeP1; ``` - 设置边框的颜色 ```perl my $lattice=$doc->Lattice3D; $lattice->Color=16724923; ``` - 计算成键 ```perl $doc->CalculateBonds; ``` - 获得所有原子 ```perl my $atoms=$doc->UnitCell->Atoms; ``` - 更改原子的显示类型 ```perl $atom->Style = "Ball and stick"; ``` - 保存结构 ```perl $doc->Save; ``` - 将结构输出为 msi 格式 ```perl $doc->Export("$export_dir\\${prefix}.msi"); ``` - 关闭结构文件 ```perl $doc->Close; ``` ## 技巧 - 读取 `cif` 文件时,其 `_atom_site_label` 不能为数字