kits for md or dft
Project description
mdkits
mdkits 提供了多种工具, 安装脚本:
pip install mdkits --upgrade
通用的选项参数类型
CELL TYPE: 指定晶胞参数, 如10,10,10,10,10,10,90,90,90等FRAME RANGE: 指定帧范围, 如1,1:10:2等--group和--surface: 按选择语言选取分析对象--update_water,--distance和--angle: 在分析轨迹的过程中开启动态更新水分子的功能
轨迹文件处理脚本
md为轨迹文件处理工具, 其中包含多个处理工具
密度分布
density用于分析体系中的某种元素沿z轴的密度分布, 如分析体系中的O元素沿z轴的密度分布:
mdkits md density [FILENAME] --group="name H" --cell [FILENAME]
这样会输出一个文件名为density_name_H.dat的文件, 第一列为z轴坐标, 第二列为浓度分布, 单位为 mol/L. 如果想输出为单位为 $g/cm^3$ 的密度分布, 可以指定--atomic_mass 选项, 如:
mdkits md density [FILENAME] --group="name H" --cell [FILENAME] --atomic_mass=1.00784
则输出单位为 $g/cm^3$ 的密度分布. 可以指定表面原子来将密度分布归一化到表面, 如:
mdkits md density [FILENAME] --group="name O" --cell 10,10,10 --atomic_mass=18.01528 --surface="name Pt and name Ru"
这样会将密度分布归一化到表面, 同时以O原子的位置作为水分子的位置分析处理水分子的密度分布. 对于体系中存在 $OH^-$ 离子的体系可以使用--update_water的选项在每一帧更新水分子的位置, 不需要额外指定元素, 如:
mdkits md density [FILENAME] --update_water --cell 10,10,10 --atomic_mass=18.01528 --surface="name Pt and name Ru"
输出的文件名为density_water.dat.
氢键
hb用于分析体系中的氢键, 如分析体系中的氢键在z轴上的分布:
mdkits md hb [FILENAME] --cell 10,10,40 --surface "prop z < 10" --update_water
或分析单个水分子的氢键:
mdkits md hb [FILENAME] --cell 10,10,40 --index 15
角度
angel用于分析水分子中的二分向量和OH向量与表面法向量的夹角的丰度分布, 如分析距离表面 5 Å 的水分子的角度丰度分布:
mdkits md angle [FILENAME] --cell 10,10,40 --surface "name Pt" --water_height 5
偶极分布
diople用于分析体系中的偶极($\cos \phi \rho_{H_2 O}$)分布, 如分析体系中的 $\cos \phi \rho_{H_2 O}$ 分布:
mdkits md diople [FILENAME] --cell 10,10,40 --surface "name Pt"
径向分布函数(RDF)
rdf用于分析两个group之间的径向分布函数, 如分析体系中的O元素与H元素之间的径向分布函数:
mdkits md rdf [FILENAME] --group "name O" "name H" --cell 10,10,40 --range 0.1 5
均方位移(MSD)
msd用于分析体系中某些原子的均方位移, 如分析体系中Li原子在z轴上的均方位移:
mdkits md msd [FILENAME] z "name Li"
监控
monitor用于监控体系中原子高度, 键长和键角的变化, 如监控index为0的原子的高度:
mdkits md monitor [FILENAME] --cell 10,10,40 --surface "name Pt" -i 0
会输出0距离表面的高度随每一帧的变化, 如监控0-1的键长:
mdkits md monitor [FILENAME] --cell 10,10,40 --surface "name Pt" -i 0 -i 1
会输出0和1距离表面的高度和0-1之间的键长随每一帧的变化, 如监控1-0-2的键角:
mdkits md monitor [FILENAME] --cell 10,10,40 --surface "name Pt" -i 1 -i 0 -i 2
会输出1, 0, 2距离表面的高度, 1-0和0-2的键长和1-0-2的键角随每一帧的变化, 注意位于角上的原子应该放在中间
位置归一化
wrap用于将轨迹文件中的原子位置进行归一化处理, 如将[FILENAME]中的原子位置归一化到晶胞中, 并输出为wrapped.xyz, 默认从cp2k的输出文件input_inp中读取ABC和ALPHA_BETA_GAMMA信息作为晶胞参数:
mdkits md wrap [FILENAME]
或指定cp2k的输入文件:
mdkits md wrap [FILENAME] --cp2k_input_file setting.inp
或指定晶胞参数:
mdkits md wrap [FILENAME] --cell 10,10,10
默认的[FILENAME]为*-pos-1.xyz
DFT 性质分析脚本
dft为DFT性质分析工具, 其中包含多个分析工具
PDOS
pdos用于分析体系中的pdos, 分析[FILENAME]的d轨道的dos:
mdkits dft pdos [FILENAME] -t d
CUBE 文件
cube用于处理cube格式的文件, 将其在z轴上进行平均:
mdkits dft cube [FILENAME]
分析好的数据会输出为cube.out, 可以同时计算一个区域内的平均值:
mdkits dft cube [FILENAME] -b 1 2
会将平均值打印在屏幕上, 同时记录在cube.out中的注释行.
建模
build为建模的工具, 其中包含多个建模工具
构建体相模型
bulk用于构建体相模型, 如构建Pt的fcc体相模型:
mdkits build bulk Pt fcc
构建为常胞模型:
mdkits build bulk Pt fcc --cubic
构建一个Caesium chloride结构的模型:
mdkits build bulk CsCl cesiumchloride -a 4.123
构建一个fluorite 结构的模型:
mdkits build bulk BaF2 fluorite -a 6.196
构建表面模型
surface用于构建常见的表面模型, 骑用法为:
mdkits build surface [ELEMENT] [SURFACE_TYPE] [SIZE]
如构建Pt的fcc111表面模型:
mdkits build surface Pt fcc111 2 2 3 --vacuum 15
构建石墨烯表面:
mdkits build surface C2 graphene 3 3 1 --vacuum 15
从现有结构中构建表面模型
cut用于从现有的结构中构建表面模型(模型必须为常胞模型), 如从Pt_fcc.cif中构建fcc331表面模型:
mdkits build cut Pt_fcc.cif --face 3 3 1 --size 3 3 5 --vacuum 15
在表面结构上添加吸附物
adsorbate用于在表面结构上添加吸附物, 如在surface.cif上添加H原子:
mdkits build adsorbate surface.cif H --select "index 0" --height 1
或在Pt_fcc111_335.cif上添加覆盖度为5的H原子:
mdkits build adsorbate Pt_fcc111_335.cif H --select "prop z > 16" --height 2 --cover 5
构建溶液相模型
solution用于构建溶液相模型, 初次使用时应先安装juliaup:
mdkits build solution --install_julia
然后安装Packmol:
mdkits build solution --install_packmol
成功安装后就可以使用solution功能了, 如构建一个32个水分子的水盒子:
mdkits build solution --water_number 32 --cell 9.86,9.86,9.86
或构建一个含有离子的溶液:
mdkits build solution li.xyz k.xyz --water_number 64 --tolerance 2.5 -n 25 -n 45 --cell 15,15,15
其中-n的个数必须与指定的溶剂分子种类数量一致, 用于分别指定添加的溶剂的数量. 或者从packmol的输入文件中构建溶液相模型:
mdkits build solution input.pm input2.pm --infile
构建界面模型
interface用于构建界面模型, 如构建一个没有真空的界面模型:
mdkits build interface --slab Pt_fcc100_555.cif --sol water_160.cif
或构建一个带有气相模型的界面:
mdkits build interface --slab Pt_fcc100_555.cif --sol water_160.cif --cap ne --vacuum 20
构建超胞模型
supercell用于构建超胞模型:
mdkits build supercell Li3PO4.cif 2 2 2
其他
轨迹提取
extract用于提取轨迹文件中的特定的帧, 如从frames.xyz中提取第 1000 帧到第 2000 帧的轨迹文件, 并输出为1000-2000.xyz, -r选项的参数与Python的切片语法一致:
mdkits extract frames.xyz -r 1000:2000 -o 1000-2000.xyz
或从cp2k的默认输出的轨迹文件*-pos-1.xyz文件中提取最后一帧输出为extracted.xyz(extract的默认行为):
mdkits extract
或每50帧输出一个结构到./coord目录中, 同时调整输出格式为cp2k的@INCLUDE coord.xyz的形式:
mdkits extract -cr ::50
结构文件转换
convert用于将结构文件从一种格式转换为另一种格式, 如将structure.xyz转换为out.cif(默认文件名为out), 对于不储存周期性边界条件的文件, 可以使用--cell选项指定PBC:
mdkits convert -c structure.xyz --cell 10,10,10
将structure.cif转换为POSCAR:
mdkits convert -v structure.cif
将structure.cif转换为structure_xyz.xyz:
mdkits convert -c structure.cif -o structure_xyz
数据处理
data用于对数据进行处理如:
--nor: 对数据进行归一化处理--gaus: 对数据进行高斯过滤--fold: 堆数据进行折叠平均--err: 计算数据的误差棒
等
绘图工具
plot用于绘制数据图, plot需要读取yaml格式的配置文件进行绘图, yaml文件的形式如下:
# plot mode 1
figure1:
data:
legend1: ./data1.dat
legend2: ./data2.dat
x:
0: x-axis
y:
1: y-axis
x_range:
- 5
- 15
# plot mode 2
figure2:
data:
y-xais: ./data.dat
x:
0: x-axis
y:
1: legend1
2: legend2
3: legend3
4: legend4
5: legend5
y_range:
- 0.5
- 6
legend_fontsize: 12
# plot mode error
12_dp_e_error:
data:
legend: ./error.dat
x:
0: x-axis
y:
1: y-axis
fold: dp
legend_fontsize: 12
如上plot支持三种绘图模式, mode 1, mode 2和mode error. mode 1用于绘制多组数据文件的同一列数据对比, mode 2用于绘制同一数据文件的不同列数据对比, mode error用于绘制均方根误差图.
plot可以同时处理多个yaml文件, 每个yaml文件可以包含多个绘图配置, mode 1和mode 2的绘图配置可以自动识别, 但是error模式需要而外指定, 如:
mdkits plot *.yaml
和:
mdkits plot *.yaml --error
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mdkits-0.2.1.tar.gz.
File metadata
- Download URL: mdkits-0.2.1.tar.gz
- Upload date:
- Size: 32.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.1 CPython/3.11.9 Windows/10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
88d3b8083f9a030a676c8e96ecfc94610397f221a8c9ebe5d36025c11b0875fd
|
|
| MD5 |
59578ec2838b3e52e07ecc4d79143060
|
|
| BLAKE2b-256 |
a21a827ad92bff6100190cfbd38da05c05bb04a3dd780c7782e1890dbed7f95d
|
File details
Details for the file mdkits-0.2.1-py3-none-any.whl.
File metadata
- Download URL: mdkits-0.2.1-py3-none-any.whl
- Upload date:
- Size: 45.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.1 CPython/3.11.9 Windows/10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5499a8c76ac035f1cb1b15ec1b3acfe98feda0a92f05b6410c34902b7f1f387f
|
|
| MD5 |
27ec2d6dc78dac37aa6276e1d8d04bbb
|
|
| BLAKE2b-256 |
f97884f3fa60458788bbcf59ceda0ee0317a7925daae2ea43583d96d208d9d83
|