命令行批量获取 bader

这是一个获取bader 电荷的示例。

使用 CMD

  1. 确保相关软件及相关输入无误 (仅第一次运行)。

1.1 设置 vasp INCAR 参数:

LCHARG = T
LWAVE = T
LAECHG= T
LORBIT= 11

1.2 确保每个案例下以下文件存在 [“AECCAR0”, “AECCAR2”, “CHGCAR”, “POTCAR”, “CONTCAR”] 。

1.3 安装软件 [“chgsum.pl”, “bader”], 并确保具有权限。

下载软件参考: 性质提取器

../_images/bader_1.png
  1. 使用 findpath 命令获取所有子路径并输出到文件:

    findpath -if AECCAR2
    
../_images/bader_2.png
  1. 调用fbx(featurebox)运行。

    fbx bader -j 0
    
../_images/bader_3.png
  1. 后续处理。

    >>> # 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方式

  1. 确保相关软件及相关输入无误 (仅第一次运行)。

  2. 获取所有子路径。

    >>> 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)
    
  3. 调用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
    
  4. 后续处理。

    >>> # 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.