命令行批量获取 bader¶
这是一个获取bader 电荷的示例。
使用 CMD¶
确保相关软件及相关输入无误 (仅第一次运行)。
1.1 设置 vasp INCAR 参数:
LCHARG = T
LWAVE = T
LAECHG= T
LORBIT= 11
1.2 确保每个案例下以下文件存在 [“AECCAR0”, “AECCAR2”, “CHGCAR”, “POTCAR”, “CONTCAR”] 。
1.3 安装软件 [“chgsum.pl”, “bader”], 并确保具有权限。
下载软件参考: 性质提取器。
使用
findpath命令获取所有子路径并输出到文件:findpath -if AECCAR2
调用fbx(featurebox)运行。
fbx bader -j 0
后续处理。
>>> # Ture to python code. >>> # More part: The following is not in command model. >>> # final treatment to extractor need message and formatting. >>> from featurebox.cli.vasp_bader import BaderStartInter, BaderStartSingleResult >>> # use BaderStartInter or BaderStartSingleResult rather than BaderStartZero to escape repetition calculation. >>> bsi = BaderStartInter() >>> res = pd.read_csv("bader_all.csv") >>> features = bsi.extract(res, atoms=[0,1,2,3], format_path=None) >>> print(type(result)) # return one formed pd.Dataframe with necessary message.
传统的python方式¶
确保相关软件及相关输入无误 (仅第一次运行)。
获取所有子路径。
>>> from mgetool.imports.batchfilematch import BatchFileMatch >>> bfm = BatchFileMatch(".") >>> bfm.filter_file_name(include="AECCAR2") >>> paths_list = bfm.merge() >>> paths_list = bfm.get_leaf_dir(paths_list) >>> print(paths_list)
调用featurebox运行。
>>> from featurebox.cli.vasp_bader import BaderStartZero >>> bsz = BaderStartZero(n_jobs=4, tq= True, store_single=True) >>> result = bsz.transform(paths_list) >>> print(type(result)) # return pd.Dataframe
后续处理。
>>> # More part: The following is not in command model. >>> # final treatment to extractor need message and formatting. >>> features = bsz.extract(res, atoms=[0,1,2,3],format_path=None) >>> print(type(features)) # return one formed pd.Dataframe with necessary message.