探究
实验室
计算
公开
Hands-on to APEX (v1.2) on Bohrium
APEX
Workflow
Material
English
simulation
APEXWorkflowMaterialEnglishsimulation
zhuoyli@connect.hku.hk
更新于 2025-04-01
推荐镜像 :Basic Image:ubuntu22.04-py3.10
推荐机型 :c2_m4_cpu
赞 5
1
6
apex_demo(v3)

Hands-on to APEX (v1.2) on Bohrium

Open In Bohrium

©️ Copyright 2024 @ Authors
作者: zhuoyli@connect.hku.hk 📨
日期:2024-03-15
共享协议:本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
快速开始:点击上方的 开始连接 按钮,选择 APEX Demo 项目 ubuntu22.04-py3.10 镜像 和任意配置机型即可开始。

📖 Getting Started Guide
This document can be executed directly on the Bohrium Notebook. To begin, click the Connect button located at the top of the interface, then select APEX Demo project and the ubuntu22.04-py3.10 Image and choose your desired machine configuration to proceed.

This Bohrium notebook demonstrates how to perform alloy properties simulation workflow via APEX (v1.2). The dflow server and simulation resources of this case are based on the Bohrium.

If you have any problems about the APEX, issues are welcomed in GitHub repository

代码
文本

Installation

Installation of APEX can be easily achieved through pip install pydflow or directly from source code:

代码
文本
[1]
!if [ -e APEX ];then rm -rf APEX; fi; # remove APEX package if exist
代码
文本
[2]
!git clone https://github.com/deepmodeling/APEX.git # clone APEX source code from GitHub repository
Cloning into 'APEX'...
remote: Enumerating objects: 3946, done.
remote: Counting objects: 100% (957/957), done.
remote: Compressing objects: 100% (318/318), done.
remote: Total 3946 (delta 713), reused 678 (delta 639), pack-reused 2989 (from 3)
Receiving objects: 100% (3946/3946), 18.94 MiB | 4.20 MiB/s, done.
Resolving deltas: 100% (2657/2657), done.
代码
文本
[3]
!pip install pip --upgrade -i https://pypi.tuna.tsinghua.edu.cn/simple # upgrade pip
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Requirement already satisfied: pip in /opt/mamba/lib/python3.10/site-packages (22.3)
Collecting pip
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/c9/bc/b7db44f5f39f9d0494071bddae6880eb645970366d0a200022a1a93d57f5/pip-25.0.1-py3-none-any.whl (1.8 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 2.2 MB/s eta 0:00:0000:0100:01m
Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 22.3
    Uninstalling pip-22.3:
      Successfully uninstalled pip-22.3
Successfully installed pip-25.0.1
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
代码
文本
[4]
pip install APEX/ -i https://pypi.tuna.tsinghua.edu.cn/simple # install apex-flow (APEX)
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Processing /APEX
  Preparing metadata (setup.py) ... done
Requirement already satisfied: numpy<2.0.0 in /opt/mamba/lib/python3.10/site-packages (from apex-flow==1.2.14) (1.24.2)
Collecting pydflow>=1.7.83 (from apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/4b/2b/a46efe175cf28e87fcb7cbe3884d0e8e7303658b800a53b387d521a6fc52/pydflow-1.8.108-py3-none-any.whl (179 kB)
Collecting pymatgen>=2023.8.10 (from apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/28/04/5a46a6af231bf6a5a155367fe983a2b2ee724bb8319d026b98c0b6f47dbc/pymatgen-2025.3.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.0 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.0/5.0 MB 1.8 MB/s eta 0:00:00a 0:00:01
Collecting pymatgen-analysis-defects>=2023.8.22 (from apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/88/dd/280c024402a36c6e7c1f7dd026f92136cf5fcd6f079938c9ffcf9148d859/pymatgen_analysis_defects-2025.1.18-py3-none-any.whl (79 kB)
Collecting dpdata==0.2.17 (from apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/d0/cc/aa3d3922f257106912d45eec0f9fcd0ffc2e25528c054c849690058c8c9d/dpdata-0.2.17-py3-none-any.whl (139 kB)
Requirement already satisfied: dpdispatcher in /opt/mamba/lib/python3.10/site-packages (from apex-flow==1.2.14) (0.5.3)
Collecting phonopy (from apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/b8/25/279a8e53311c03409b9fc6aec5ed12ef5564f25d99aef2300e17c498e429/phonopy-2.38.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (593 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 593.8/593.8 kB 2.0 MB/s eta 0:00:00m-:--:--
Collecting plotly (from apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/02/65/ad2bc85f7377f5cfba5d4466d5474423a3fb7f6a97fd807c06f92dd3e721/plotly-6.0.1-py3-none-any.whl (14.8 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 14.8/14.8 MB 1.5 MB/s eta 0:00:00a 0:00:01
Collecting dash (from apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/3f/a8/979f501f01a3bbc223c8b26b96db2b51bd45a8fc47de52e749aedeece7af/dash-3.0.1-py3-none-any.whl (8.0 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 8.0/8.0 MB 2.4 MB/s eta 0:00:00a 0:00:01
Collecting dash_bootstrap_components (from apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/f0/4c/8835f86877e2f8fce87acddea10677a9e5c035a8b11495a052a1a685c5a3/dash_bootstrap_components-2.0.0-py3-none-any.whl (202 kB)
Collecting seekpath (from apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/30/2c/fcb31e185a3a74d4098d9c44ac108ddcf1a4c88d7d3cea5a569dd812c62b/seekpath-2.1.0-py2.py3-none-any.whl (77 kB)
Collecting fpop>=0.0.7 (from apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/ff/f6/ad4e7c8a0e4f0a15bb581372f9ac7cd2bb13bf00b11a73147e5562120f50/fpop-0.0.8-py3-none-any.whl (38 kB)
Collecting boto3 (from apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/2d/fa/8ea42eff98e02962473f60c11663282cd8b8c04cc66eab954184325516ac/boto3-1.37.24-py3-none-any.whl (139 kB)
Collecting pymongo (from apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/68/57/e3d5508fa8ff8a536f1dfbcefe4ac18d954c0b8d67eb05b8aadddb0b51b5/pymongo-4.11.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 1.9 MB/s eta 0:00:00a 0:00:01
Requirement already satisfied: monty in /opt/mamba/lib/python3.10/site-packages (from dpdata==0.2.17->apex-flow==1.2.14) (2022.9.9)
Requirement already satisfied: scipy in /opt/mamba/lib/python3.10/site-packages (from dpdata==0.2.17->apex-flow==1.2.14) (1.10.1)
Requirement already satisfied: h5py in /opt/mamba/lib/python3.10/site-packages (from dpdata==0.2.17->apex-flow==1.2.14) (3.8.0)
Requirement already satisfied: wcmatch in /opt/mamba/lib/python3.10/site-packages (from dpdata==0.2.17->apex-flow==1.2.14) (8.4.1)
Requirement already satisfied: lbg in /opt/mamba/lib/python3.10/site-packages (from fpop>=0.0.7->apex-flow==1.2.14) (1.2.17)
Collecting ase (from fpop>=0.0.7->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/1f/cd/b1253035a1da90e89f31947e052c558cd83df3bcaff34aa199e5e806d773/ase-3.24.0-py3-none-any.whl (2.9 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.9/2.9 MB 2.7 MB/s eta 0:00:00a 0:00:01
Requirement already satisfied: dargs in /opt/mamba/lib/python3.10/site-packages (from fpop>=0.0.7->apex-flow==1.2.14) (0.3.4)
Requirement already satisfied: six in /opt/mamba/lib/python3.10/site-packages (from pydflow>=1.7.83->apex-flow==1.2.14) (1.16.0)
Requirement already satisfied: python-dateutil in /opt/mamba/lib/python3.10/site-packages (from pydflow>=1.7.83->apex-flow==1.2.14) (2.8.2)
Requirement already satisfied: urllib3 in /opt/mamba/lib/python3.10/site-packages (from pydflow>=1.7.83->apex-flow==1.2.14) (1.26.11)
Requirement already satisfied: certifi in /opt/mamba/lib/python3.10/site-packages (from pydflow>=1.7.83->apex-flow==1.2.14) (2022.9.24)
Collecting argo-workflows==5.0.0 (from pydflow>=1.7.83->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/b1/6a/8f13d5124b111e8e054594d23782ea9c5dadda0517d1dd9ad08c7c055732/argo_workflows-5.0.0-py3-none-any.whl (452 kB)
Collecting jsonpickle (from pydflow>=1.7.83->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/dc/1b/0e79cf115e0f54f1e8f56effb6ffd2ef8f92e9c324d692ede660067f1bfe/jsonpickle-4.0.5-py3-none-any.whl (46 kB)
Collecting minio (from pydflow>=1.7.83->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/fb/6f/3690028e846fe432bfa5ba724a0dc37ec9c914965b7733e19d8ca2c4c48d/minio-7.2.15-py3-none-any.whl (95 kB)
Collecting kubernetes (from pydflow>=1.7.83->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/08/10/9f8af3e6f569685ce3af7faab51c8dd9d93b9c38eba339ca31c746119447/kubernetes-32.0.1-py2.py3-none-any.whl (2.0 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.0/2.0 MB 2.4 MB/s eta 0:00:00a 0:00:01
Requirement already satisfied: pyyaml in /opt/mamba/lib/python3.10/site-packages (from pydflow>=1.7.83->apex-flow==1.2.14) (6.0)
Collecting cloudpickle==2.2.0 (from pydflow>=1.7.83->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/cf/26/cd6c4177273ee35f7a31245893489c68bc340988f12ca315b392f1f18a93/cloudpickle-2.2.0-py3-none-any.whl (25 kB)
Requirement already satisfied: requests in /opt/mamba/lib/python3.10/site-packages (from pydflow>=1.7.83->apex-flow==1.2.14) (2.28.1)
Requirement already satisfied: tqdm in /opt/mamba/lib/python3.10/site-packages (from pydflow>=1.7.83->apex-flow==1.2.14) (4.64.1)
Requirement already satisfied: psutil in /opt/mamba/lib/python3.10/site-packages (from pydflow>=1.7.83->apex-flow==1.2.14) (5.9.4)
Collecting filelock (from pydflow>=1.7.83->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/4d/36/2a115987e2d8c300a974597416d9de88f2444426de9571f4b59b2cca3acc/filelock-3.18.0-py3-none-any.whl (16 kB)
Collecting joblib>=1 (from pymatgen>=2023.8.10->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/91/29/df4b9b42f2be0b623cbd5e2140cafcaa2bef0759a00b7b70104dcfe2fb51/joblib-1.4.2-py3-none-any.whl (301 kB)
Collecting matplotlib>=3.8 (from pymatgen>=2023.8.10->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/12/87/9472d4513ff83b7cd864311821793ab72234fa201ab77310ec1b585d27e2/matplotlib-3.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.6 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 8.6/8.6 MB 1.1 MB/s eta 0:00:0000:0100:01
Collecting monty (from dpdata==0.2.17->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/eb/df/b3a36544734be3ac0eacf11bcfb8609464dd07d8bad0dff6e46109c68002/monty-2025.3.3-py3-none-any.whl (51 kB)
Collecting networkx>=2.7 (from pymatgen>=2023.8.10->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/b9/54/dd730b32ea14ea797530a4479b2ed46a6fb250f682a9cfb997e968bf0261/networkx-3.4.2-py3-none-any.whl (1.7 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.7/1.7 MB 1.5 MB/s eta 0:00:00a 0:00:01
Collecting palettable>=3.3.3 (from pymatgen>=2023.8.10->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/cf/f7/3367feadd4ab56783b0971c9b7edfbdd68e0c70ce877949a5dd2117ed4a0/palettable-3.3.3-py2.py3-none-any.whl (332 kB)
Collecting pandas>=2 (from pymatgen>=2023.8.10->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/44/50/7db2cd5e6373ae796f0ddad3675268c8d59fb6076e66f0c339d61cea886b/pandas-2.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (13.1 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 13.1/13.1 MB 1.2 MB/s eta 0:00:00a 0:00:01
Collecting pybtex>=0.24.0 (from pymatgen>=2023.8.10->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/ad/5f/40d8e90f985a05133a8895fc454c6127ecec3de8b095dd35bba91382f803/pybtex-0.24.0-py2.py3-none-any.whl (561 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 561.4/561.4 kB 3.1 MB/s eta 0:00:00a 0:00:01
Collecting requests (from pydflow>=1.7.83->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl (64 kB)
Collecting ruamel.yaml>=0.17.0 (from pymatgen>=2023.8.10->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/c2/36/dfc1ebc0081e6d39924a2cc53654497f967a084a436bb64402dfce4254d9/ruamel.yaml-0.18.10-py3-none-any.whl (117 kB)
Collecting scipy (from dpdata==0.2.17->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/de/3c/c96d904b9892beec978562f64d8cc43f9cca0842e65bd3cd1b7f7389b0ba/scipy-1.15.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (37.6 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 37.6/37.6 MB 1.5 MB/s eta 0:00:0000:0100:01
Collecting spglib>=2.5 (from pymatgen>=2023.8.10->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/e1/65/453e04e8311ccb65794aae8550934b405d19e883956904358f92ba061206/spglib-2.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (809 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 809.0/809.0 kB 894.5 kB/s eta 0:00:00a 0:00:01
Collecting sympy>=1.3 (from pymatgen>=2023.8.10->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/99/ff/c87e0622b1dadea79d2fb0b25ade9ed98954c9033722eb707053d310d4f3/sympy-1.13.3-py3-none-any.whl (6.2 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.2/6.2 MB 1.1 MB/s eta 0:00:00a 0:00:010m
Collecting tabulate>=0.9 (from pymatgen>=2023.8.10->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/40/44/4a5f08c96eb108af5cb50b41f76142f0afa346dfa99d5296fe7202a11854/tabulate-0.9.0-py3-none-any.whl (35 kB)
Collecting uncertainties>=3.1.4 (from pymatgen>=2023.8.10->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/fa/fc/97711d2a502881d871e3cf2d2645e21e7f8e4d4fd9a56937557790cade6a/uncertainties-3.2.2-py3-none-any.whl (58 kB)
Collecting numpy<2.0.0 (from apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/4b/d7/ecf66c1cd12dc28b4040b15ab4d17b773b87fa9d29ca16125de01adb36cd/numpy-1.26.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (18.2 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 18.2/18.2 MB 1.7 MB/s eta 0:00:0000:0100:01
Collecting narwhals>=1.15.1 (from plotly->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/41/c1/e9bc6b67c774e7c1f939c91ea535f18f7644fedc61b20d6baa861ad52b34/narwhals-1.33.0-py3-none-any.whl (322 kB)
Requirement already satisfied: packaging in /opt/mamba/lib/python3.10/site-packages (from plotly->apex-flow==1.2.14) (23.0)
Collecting scikit-image>=0.19.3 (from pymatgen-analysis-defects>=2023.8.22->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/96/08/916e7d9ee4721031b2f625db54b11d8379bd51707afaa3e5a29aecf10bc4/scikit_image-0.25.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (14.8 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 14.8/14.8 MB 1.5 MB/s eta 0:00:0000:0100:01
Collecting mp-pyrho>=0.4.4 (from pymatgen-analysis-defects>=2023.8.22->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/6b/13/c95ef0ded603781142acce1046d37a46ade928ac3608189f0794587717d3/mp_pyrho-0.4.5-py3-none-any.whl (18 kB)
Collecting botocore<1.38.0,>=1.37.24 (from boto3->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/15/60/85f9dfdb94e58a5aab83e4a29773948b74989ce477de61e946732fb0ed69/botocore-1.37.24-py3-none-any.whl (13.5 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 13.5/13.5 MB 1.4 MB/s eta 0:00:0000:0100:01
Requirement already satisfied: jmespath<2.0.0,>=0.7.1 in /opt/mamba/lib/python3.10/site-packages (from boto3->apex-flow==1.2.14) (0.10.0)
Collecting s3transfer<0.12.0,>=0.11.0 (from boto3->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/86/62/8d3fc3ec6640161a5649b2cddbbf2b9fa39c92541225b33f117c37c5a2eb/s3transfer-0.11.4-py3-none-any.whl (84 kB)
Collecting Flask<3.1,>=1.0.4 (from dash->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/61/80/ffe1da13ad9300f87c93af113edd0638c75138c42a0994becfacac078c06/flask-3.0.3-py3-none-any.whl (101 kB)
Collecting Werkzeug<3.1 (from dash->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/6c/69/05837f91dfe42109203ffa3e488214ff86a6d68b2ed6c167da6cdc42349b/werkzeug-3.0.6-py3-none-any.whl (227 kB)
Collecting importlib-metadata (from dash->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/79/9d/0fb148dc4d6fa4a7dd1d8378168d9b4cd8d4560a6fbf6f0121c5fc34eb68/importlib_metadata-8.6.1-py3-none-any.whl (26 kB)
Collecting typing-extensions>=4.1.1 (from dash->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/e0/86/39b65d676ec5732de17b7e3c476e45bb80ec64eb50737a8dce1a4178aba1/typing_extensions-4.13.0-py3-none-any.whl (45 kB)
Collecting retrying (from dash->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/8f/04/9e36f28be4c0532c0e9207ff9dc01fb13a2b0eb036476a213b0000837d0e/retrying-1.3.4-py3-none-any.whl (11 kB)
Requirement already satisfied: nest-asyncio in /opt/mamba/lib/python3.10/site-packages (from dash->apex-flow==1.2.14) (1.5.6)
Requirement already satisfied: setuptools in /opt/mamba/lib/python3.10/site-packages (from dash->apex-flow==1.2.14) (65.5.0)
Requirement already satisfied: paramiko in /opt/mamba/lib/python3.10/site-packages (from dpdispatcher->apex-flow==1.2.14) (3.0.0)
Collecting symfc>=1.3 (from phonopy->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/90/e1/e2360717bec4f0935bf15430f938dc8ba2557f72db4215e924332e2301be/symfc-1.3.4-py3-none-any.whl (84 kB)
Collecting dnspython<3.0.0,>=1.16.0 (from pymongo->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/68/1b/e0a87d256e40e8c888847551b20a017a6b98139178505dc7ffb96f04e954/dnspython-2.7.0-py3-none-any.whl (313 kB)
Requirement already satisfied: Jinja2>=3.1.2 in /opt/mamba/lib/python3.10/site-packages (from Flask<3.1,>=1.0.4->dash->apex-flow==1.2.14) (3.1.2)
Collecting itsdangerous>=2.1.2 (from Flask<3.1,>=1.0.4->dash->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/04/96/92447566d16df59b2a776c0fb82dbc4d9e07cd95062562af01e408583fc4/itsdangerous-2.2.0-py3-none-any.whl (16 kB)
Collecting click>=8.1.3 (from Flask<3.1,>=1.0.4->dash->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/7e/d4/7ebdbd03970677812aac39c869717059dbb71a4cfc033ca6e5221787892c/click-8.1.8-py3-none-any.whl (98 kB)
Collecting blinker>=1.6.2 (from Flask<3.1,>=1.0.4->dash->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/10/cb/f2ad4230dc2eb1a74edf38f1a38b9b52277f75bef262d8908e60d957e13c/blinker-1.9.0-py3-none-any.whl (8.5 kB)
Collecting contourpy>=1.0.1 (from matplotlib>=3.8->pymatgen>=2023.8.10->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/a9/57/86c500d63b3e26e5b73a28b8291a67c5608d4aa87ebd17bd15bb33c178bc/contourpy-1.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (324 kB)
Collecting cycler>=0.10 (from matplotlib>=3.8->pymatgen>=2023.8.10->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl (8.3 kB)
Collecting fonttools>=4.22.0 (from matplotlib>=3.8->pymatgen>=2023.8.10->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/46/d0/0004ca8f6a200252e5bd6982ed99b5fe58c4c59efaf5f516621c4cd8f703/fonttools-4.56.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.6 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.6/4.6 MB 1.6 MB/s eta 0:00:00a 0:00:010m
Collecting kiwisolver>=1.3.1 (from matplotlib>=3.8->pymatgen>=2023.8.10->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/de/c6/7b9bb8044e150d4d1558423a1568e4f227193662a02231064e3824f37e0a/kiwisolver-1.4.8-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (1.6 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.6/1.6 MB 1.7 MB/s eta 0:00:00a 0:00:01
Collecting pillow>=8 (from matplotlib>=3.8->pymatgen>=2023.8.10->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/84/7a/cd0c3eaf4a28cb2a74bdd19129f7726277a7f30c4f8424cd27a62987d864/pillow-11.1.0-cp310-cp310-manylinux_2_28_x86_64.whl (4.5 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.5/4.5 MB 2.0 MB/s eta 0:00:00a 0:00:01
Collecting pyparsing>=2.3.1 (from matplotlib>=3.8->pymatgen>=2023.8.10->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/05/e7/df2285f3d08fee213f2d041540fa4fc9ca6c2d44cf36d3a035bf2a8d2bcc/pyparsing-3.2.3-py3-none-any.whl (111 kB)
Requirement already satisfied: pytz>=2020.1 in /opt/mamba/lib/python3.10/site-packages (from pandas>=2->pymatgen>=2023.8.10->apex-flow==1.2.14) (2022.7.1)
Collecting tzdata>=2022.7 (from pandas>=2->pymatgen>=2023.8.10->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/5c/23/c7abc0ca0a1526a0774eca151daeb8de62ec457e77262b66b359c3c7679e/tzdata-2025.2-py2.py3-none-any.whl (347 kB)
Collecting latexcodec>=1.0.4 (from pybtex>=0.24.0->pymatgen>=2023.8.10->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/b0/bf/ea8887e9f31a8f93ca306699d11909c6140151393a4216f0d9f85a004077/latexcodec-3.0.0-py3-none-any.whl (18 kB)
Requirement already satisfied: charset-normalizer<4,>=2 in /opt/mamba/lib/python3.10/site-packages (from requests->pydflow>=1.7.83->apex-flow==1.2.14) (2.1.1)
Requirement already satisfied: idna<4,>=2.5 in /opt/mamba/lib/python3.10/site-packages (from requests->pydflow>=1.7.83->apex-flow==1.2.14) (3.4)
Collecting ruamel.yaml.clib>=0.2.7 (from ruamel.yaml>=0.17.0->pymatgen>=2023.8.10->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/35/6d/ae05a87a3ad540259c3ad88d71275cbd1c0f2d30ae04c65dcbfb6dcd4b9f/ruamel.yaml.clib-0.2.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (722 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 722.2/722.2 kB 2.4 MB/s eta 0:00:00m-:--:--
Collecting imageio!=2.35.0,>=2.33 (from scikit-image>=0.19.3->pymatgen-analysis-defects>=2023.8.22->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/cb/bd/b394387b598ed84d8d0fa90611a90bee0adc2021820ad5729f7ced74a8e2/imageio-2.37.0-py3-none-any.whl (315 kB)
Collecting tifffile>=2022.8.12 (from scikit-image>=0.19.3->pymatgen-analysis-defects>=2023.8.22->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/6e/be/10d23cfd4078fbec6aba768a357eff9e70c0b6d2a07398425985c524ad2a/tifffile-2025.3.30-py3-none-any.whl (226 kB)
Collecting lazy-loader>=0.4 (from scikit-image>=0.19.3->pymatgen-analysis-defects>=2023.8.22->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/83/60/d497a310bde3f01cb805196ac61b7ad6dc5dcf8dce66634dc34364b20b4f/lazy_loader-0.4-py3-none-any.whl (12 kB)
Collecting mpmath<1.4,>=1.1.0 (from sympy>=1.3->pymatgen>=2023.8.10->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/43/e3/7d92a15f894aa0c9c4b49b8ee9ac9850d6e63b03c9c32c0367a13ae62209/mpmath-1.3.0-py3-none-any.whl (536 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 536.2/536.2 kB 2.3 MB/s eta 0:00:00m-:--:--
Requirement already satisfied: MarkupSafe>=2.1.1 in /opt/mamba/lib/python3.10/site-packages (from Werkzeug<3.1->dash->apex-flow==1.2.14) (2.1.2)
Collecting zipp>=3.20 (from importlib-metadata->dash->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/b7/1a/7e4798e9339adc931158c9d69ecc34f5e6791489d469f5e50ec15e35f458/zipp-3.21.0-py3-none-any.whl (9.6 kB)
Collecting google-auth>=1.0.1 (from kubernetes->pydflow>=1.7.83->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/9d/47/603554949a37bca5b7f894d51896a9c534b9eab808e2520a748e081669d0/google_auth-2.38.0-py2.py3-none-any.whl (210 kB)
Requirement already satisfied: websocket-client!=0.40.0,!=0.41.*,!=0.42.*,>=0.32.0 in /opt/mamba/lib/python3.10/site-packages (from kubernetes->pydflow>=1.7.83->apex-flow==1.2.14) (1.5.1)
Collecting requests-oauthlib (from kubernetes->pydflow>=1.7.83->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/3b/5d/63d4ae3b9daea098d5d6f5da83984853c1bbacd5dc826764b249fe119d24/requests_oauthlib-2.0.0-py2.py3-none-any.whl (24 kB)
Collecting oauthlib>=3.2.2 (from kubernetes->pydflow>=1.7.83->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl (151 kB)
Collecting durationpy>=0.7 (from kubernetes->pydflow>=1.7.83->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/4c/a3/ac312faeceffd2d8f86bc6dcb5c401188ba5a01bc88e69bed97578a0dfcd/durationpy-0.9-py3-none-any.whl (3.5 kB)
Requirement already satisfied: oss2 in /opt/mamba/lib/python3.10/site-packages (from lbg->fpop>=0.0.7->apex-flow==1.2.14) (2.16.0)
Requirement already satisfied: requests-toolbelt in /opt/mamba/lib/python3.10/site-packages (from lbg->fpop>=0.0.7->apex-flow==1.2.14) (0.10.1)
Requirement already satisfied: aliyun-python-sdk-core in /opt/mamba/lib/python3.10/site-packages (from lbg->fpop>=0.0.7->apex-flow==1.2.14) (2.13.36)
Requirement already satisfied: aliyun-python-sdk-kms in /opt/mamba/lib/python3.10/site-packages (from lbg->fpop>=0.0.7->apex-flow==1.2.14) (2.16.0)
Requirement already satisfied: aliyun-python-sdk-sts in /opt/mamba/lib/python3.10/site-packages (from lbg->fpop>=0.0.7->apex-flow==1.2.14) (3.1.0)
Requirement already satisfied: pytimeparse in /opt/mamba/lib/python3.10/site-packages (from lbg->fpop>=0.0.7->apex-flow==1.2.14) (1.1.8)
Requirement already satisfied: colorama in /opt/mamba/lib/python3.10/site-packages (from lbg->fpop>=0.0.7->apex-flow==1.2.14) (0.4.6)
Requirement already satisfied: readchar in /opt/mamba/lib/python3.10/site-packages (from lbg->fpop>=0.0.7->apex-flow==1.2.14) (4.0.3)
Requirement already satisfied: pyreadline in /opt/mamba/lib/python3.10/site-packages (from lbg->fpop>=0.0.7->apex-flow==1.2.14) (2.1)
Requirement already satisfied: pyreadline3 in /opt/mamba/lib/python3.10/site-packages (from lbg->fpop>=0.0.7->apex-flow==1.2.14) (3.4.1)
Requirement already satisfied: validators in /opt/mamba/lib/python3.10/site-packages (from lbg->fpop>=0.0.7->apex-flow==1.2.14) (0.20.0)
Requirement already satisfied: pyhumps in /opt/mamba/lib/python3.10/site-packages (from lbg->fpop>=0.0.7->apex-flow==1.2.14) (3.8.0)
Requirement already satisfied: argcomplete in /opt/mamba/lib/python3.10/site-packages (from lbg->fpop>=0.0.7->apex-flow==1.2.14) (2.0.0)
Requirement already satisfied: argon2-cffi in /opt/mamba/lib/python3.10/site-packages (from minio->pydflow>=1.7.83->apex-flow==1.2.14) (21.3.0)
Requirement already satisfied: pycryptodome in /opt/mamba/lib/python3.10/site-packages (from minio->pydflow>=1.7.83->apex-flow==1.2.14) (3.17)
Requirement already satisfied: bcrypt>=3.2 in /opt/mamba/lib/python3.10/site-packages (from paramiko->dpdispatcher->apex-flow==1.2.14) (4.0.1)
Requirement already satisfied: cryptography>=3.3 in /opt/mamba/lib/python3.10/site-packages (from paramiko->dpdispatcher->apex-flow==1.2.14) (38.0.2)
Requirement already satisfied: pynacl>=1.5 in /opt/mamba/lib/python3.10/site-packages (from paramiko->dpdispatcher->apex-flow==1.2.14) (1.5.0)
Requirement already satisfied: bracex>=2.1.1 in /opt/mamba/lib/python3.10/site-packages (from wcmatch->dpdata==0.2.17->apex-flow==1.2.14) (2.3.post1)
Requirement already satisfied: cffi>=1.12 in /opt/mamba/lib/python3.10/site-packages (from cryptography>=3.3->paramiko->dpdispatcher->apex-flow==1.2.14) (1.15.1)
Collecting cachetools<6.0,>=2.0.0 (from google-auth>=1.0.1->kubernetes->pydflow>=1.7.83->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/72/76/20fa66124dbe6be5cafeb312ece67de6b61dd91a0247d1ea13db4ebb33c2/cachetools-5.5.2-py3-none-any.whl (10 kB)
Collecting pyasn1-modules>=0.2.1 (from google-auth>=1.0.1->kubernetes->pydflow>=1.7.83->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/47/8d/d529b5d697919ba8c11ad626e835d4039be708a35b0d22de83a269a6682c/pyasn1_modules-0.4.2-py3-none-any.whl (181 kB)
Collecting rsa<5,>=3.1.4 (from google-auth>=1.0.1->kubernetes->pydflow>=1.7.83->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl (34 kB)
Requirement already satisfied: argon2-cffi-bindings in /opt/mamba/lib/python3.10/site-packages (from argon2-cffi->minio->pydflow>=1.7.83->apex-flow==1.2.14) (21.2.0)
Requirement already satisfied: crcmod>=1.7 in /opt/mamba/lib/python3.10/site-packages (from oss2->lbg->fpop>=0.0.7->apex-flow==1.2.14) (1.7)
Requirement already satisfied: decorator>=3.4.0 in /opt/mamba/lib/python3.10/site-packages (from validators->lbg->fpop>=0.0.7->apex-flow==1.2.14) (5.1.1)
Requirement already satisfied: pycparser in /opt/mamba/lib/python3.10/site-packages (from cffi>=1.12->cryptography>=3.3->paramiko->dpdispatcher->apex-flow==1.2.14) (2.21)
Collecting pyasn1<0.7.0,>=0.6.1 (from pyasn1-modules>=0.2.1->google-auth>=1.0.1->kubernetes->pydflow>=1.7.83->apex-flow==1.2.14)
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/c8/f1/d6a797abb14f6283c0ddff96bbdd46937f64122b8c925cab503dd37f8214/pyasn1-0.6.1-py3-none-any.whl (83 kB)
Building wheels for collected packages: apex-flow
  Building wheel for apex-flow (setup.py) ... done
  Created wheel for apex-flow: filename=apex_flow-1.2.14-py3-none-any.whl size=171191 sha256=494eb333ddd560a70e1b4190b1fa227f18c6d7659b09f1992bad613ce8a1ab54
  Stored in directory: /tmp/pip-ephem-wheel-cache-xxh4xj89/wheels/88/65/50/7017379d41529d9ea1670c181562ee9b970ff0d621000443c0
Successfully built apex-flow
Installing collected packages: mpmath, durationpy, argo-workflows, zipp, Werkzeug, uncertainties, tzdata, typing-extensions, tabulate, sympy, ruamel.yaml.clib, retrying, requests, pyparsing, pyasn1, pillow, palettable, oauthlib, numpy, networkx, narwhals, lazy-loader, latexcodec, kiwisolver, jsonpickle, joblib, itsdangerous, fonttools, filelock, dnspython, cycler, cloudpickle, click, cachetools, blinker, tifffile, spglib, scipy, ruamel.yaml, rsa, requests-oauthlib, pymongo, pybtex, pyasn1-modules, plotly, pandas, importlib-metadata, imageio, Flask, contourpy, botocore, symfc, seekpath, scikit-image, s3transfer, monty, matplotlib, google-auth, dash, pymatgen, phonopy, minio, kubernetes, dpdata, dash_bootstrap_components, boto3, ase, pydflow, mp-pyrho, pymatgen-analysis-defects, fpop, apex-flow
  Attempting uninstall: requests
    Found existing installation: requests 2.28.1
    Uninstalling requests-2.28.1:
      Successfully uninstalled requests-2.28.1
  Attempting uninstall: numpy
    Found existing installation: numpy 1.24.2
    Uninstalling numpy-1.24.2:
      Successfully uninstalled numpy-1.24.2
  Attempting uninstall: scipy
    Found existing installation: scipy 1.10.1
    Uninstalling scipy-1.10.1:
      Successfully uninstalled scipy-1.10.1
  Attempting uninstall: pandas
    Found existing installation: pandas 1.5.3
    Uninstalling pandas-1.5.3:
      Successfully uninstalled pandas-1.5.3
  Attempting uninstall: monty
    Found existing installation: monty 2022.9.9
    Uninstalling monty-2022.9.9:
      Successfully uninstalled monty-2022.9.9
  Attempting uninstall: dpdata
    Found existing installation: dpdata 0.2.14
    Uninstalling dpdata-0.2.14:
      Successfully uninstalled dpdata-0.2.14
Successfully installed Flask-3.0.3 Werkzeug-3.0.6 apex-flow-1.2.14 argo-workflows-5.0.0 ase-3.24.0 blinker-1.9.0 boto3-1.37.24 botocore-1.37.24 cachetools-5.5.2 click-8.1.8 cloudpickle-2.2.0 contourpy-1.3.1 cycler-0.12.1 dash-3.0.1 dash_bootstrap_components-2.0.0 dnspython-2.7.0 dpdata-0.2.17 durationpy-0.9 filelock-3.18.0 fonttools-4.56.0 fpop-0.0.8 google-auth-2.38.0 imageio-2.37.0 importlib-metadata-8.6.1 itsdangerous-2.2.0 joblib-1.4.2 jsonpickle-4.0.5 kiwisolver-1.4.8 kubernetes-32.0.1 latexcodec-3.0.0 lazy-loader-0.4 matplotlib-3.10.1 minio-7.2.15 monty-2025.3.3 mp-pyrho-0.4.5 mpmath-1.3.0 narwhals-1.33.0 networkx-3.4.2 numpy-1.26.4 oauthlib-3.2.2 palettable-3.3.3 pandas-2.2.3 phonopy-2.38.0 pillow-11.1.0 plotly-6.0.1 pyasn1-0.6.1 pyasn1-modules-0.4.2 pybtex-0.24.0 pydflow-1.8.108 pymatgen-2025.3.10 pymatgen-analysis-defects-2025.1.18 pymongo-4.11.3 pyparsing-3.2.3 requests-2.32.3 requests-oauthlib-2.0.0 retrying-1.3.4 rsa-4.9 ruamel.yaml-0.18.10 ruamel.yaml.clib-0.2.12 s3transfer-0.11.4 scikit-image-0.25.2 scipy-1.15.2 seekpath-2.1.0 spglib-2.6.0 symfc-1.3.4 sympy-1.13.3 tabulate-0.9.0 tifffile-2025.3.30 typing-extensions-4.13.0 tzdata-2025.2 uncertainties-3.2.2 zipp-3.21.0
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager, possibly rendering your system unusable. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv. Use the --root-user-action option if you know what you are doing and want to suppress this warning.
Note: you may need to restart the kernel to use updated packages.
代码
文本

Check whether APEX is properly installed by version check:

代码
文本
[5]
!apex --version
APEX v1.2.14
代码
文本

LAMMPS Case Demonstration

1. Prepare work directory

Here we will use a DP potential [1] of titanium to do MD calculation for elastic properties and equation of state curve (EOS) of Ti for HCP, FCC and BCC phase respectively with one joint APEX workflow.

Firstly, change to the prepared example work directory:

代码
文本
[6]
!cp -r /bohr/apex-demo-kaay/v3/DP_Ti_case . # copy example work directory (DP_Ti_case)
代码
文本
[7]
cd ./DP_Ti_case
/DP_Ti_case
代码
文本

Use tree to see current file structure:

代码
文本
[8]
!sudo apt install tree # install tree command
/usr/bin/sh: 1: sudo: not found
代码
文本
[9]
!tree
.
├── Ti_frozen_model.pb
├── confs
│   ├── std-bcc
│   │   └── POSCAR
│   ├── std-fcc
│   │   └── POSCAR
│   └── std-hcp
│       └── POSCAR
├── global_bohrium.json
└── param_joint.json

4 directories, 6 files
代码
文本

As seen from tree output above, four elements are prepared under current work directory:

  • confs: contains sub-pathes for initial POSCAR for HCP, FCC and BCC Ti seperately.
  • Ti_frozen_model.pb: DP potential file of Ti [1] for MD simulation
  • global_bohrium.json: JSON parameter file for global configuration settings including image name, machine info, computing resources and run command et al. (Note: a temporary Bohrium account has been configured only for demonstration. One can also substitute to use their own account and project of Bohrium platform)
  • param_joint.json: JSON parameter file for specific calculation settings of the joint workflow

we can cat to see them one by one (detailed parameter introduction can be found at GitHub repository):

代码
文本
[10]
!cat global_bohrium.json # browse global_bohrium.json
{
    "dflow_host": "https://workflows.deepmodeling.com",
    "k8s_api_server": "https://workflows.deepmodeling.com",
    "email": "a931126924@outlook.com",
    "password": "1tmpaccountpasswd!",
    "program_id": 26924,
    "apex_image_name":"registry.dp.tech/dptech/prod-11045/apex-dependency:1.2.0",
    "lammps_image_name": "registry.dp.tech/dptech/prod-11045/deepmdkit-phonolammps:2.1.1",
    "group_size": 3,
    "pool_size": 1,
    "run_command":"lmp -in in.lammps",
    "batch_type": "Bohrium",
    "context_type": "Bohrium",
    "scass_type":"c16_m62_1 * NVIDIA T4"
}
代码
文本

Before Submission: Please input your Bohrium account information and valid program_id with enough remaining balance by running following python code:

代码
文本
[11]
import os
import json
import getpass
from monty.serialization import loadfn, dumpfn

j = loadfn('global_bohrium.json')

j['email'] = getpass.getpass("Email: ")
j['phone'] = getpass.getpass("Phone: ")
j['password'] = getpass.getpass("Password: ")
j['program_id'] = int(os.environ.get("BOHRIUM_PROJECT_ID"))

j['scass_type'] = "1 * NVIDIA P100_16g"

with open('global_bohrium.json', 'w') as f: json.dump(j, f, indent=4)
Email:
Phone:
Password:
代码
文本
[12]
!cat param_joint.json # browse param_joint.json
{
    "structures":            ["confs/std-*"],
    "interaction": {
            "type":           "deepmd",
            "model":          "Ti_frozen_model.pb",
            "type_map":       {"Ti": 0}
	},
    "relaxation": {
            "cal_setting":   {"etol":       0,
                              "ftol":     1e-10,
                              "maxiter":   5000,
                              "maximal":  500000}
},
    "properties": [
        {
         "type":         "eos",
         "skip":         false,
         "vol_start":    0.6,
         "vol_end":      1.4,
         "vol_step":     0.05,
	 "cal_setting":  {"etol": 0,
                         "ftol": 1e-10}
        },
        {
         "type":         "elastic",
	 "skip":         false,
         "norm_deform":  1e-2,
         "shear_deform": 1e-2,
	 "cal_setting":  {"etol": 0,
                         "ftol": 1e-10}
        }
        ]
}
代码
文本

2. Submit workflow

Since eos and elastic has been turned on, we can directly submit a joint workflow by passing two parameter files to apex submit command:

Note:

  • Once the workflow is submitted, one can monitor it on the Argo UI via the workflow link.
  • DO NOT directly click the workflow link as it may override current page. Please open it in a new page (You may required to input account email and password again to access the Argo workflow)
  • Once a sub-workflow finished, its results will be retrieved automatically to local.
  • Wait for all seven sub-workflows to complete (totally takes about 5 - 10 minutes)
代码
文本
[13]
!apex submit param_joint.json -c global_bohrium.json # run the command to submit the workflow
---------------------------------------------------------------
░░░░░░█▐▓▓░████▄▄▄█▀▄▓▓▓▌█░░░░░░░░░░█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█░░░░░
░░░░░▄█▌▀▄▓▓▄▄▄▄▀▀▀▄▓▓▓▓▓▌█░░░░░░░░░█░░░░░░░░▓░░▓░░░░░░░░█░░░░░
░░░▄█▀▀▄▓█▓▓▓▓▓▓▓▓▓▓▓▓▀░▓▌█░░░░░░░░░█░░░▓░░░░░░░░░▄▄░▓░░░█░▄▄░░
░░█▀▄▓▓▓███▓▓▓███▓▓▓▄░░▄▓▐██░░░▄▀▀▄▄█░░░░░░░▓░░░░█░░▀▄▄▄▄▄▀░░█░
░█▌▓▓▓▀▀▓▓▓▓███▓▓▓▓▓▓▓▄▀▓▓▐█░░░█░░░░█░░░░░░░░░░░░█░░░░░░░░░░░█░
▐█▐██▐░▄▓▓▓▓▓▀▄░▀▓▓▓▓▓▓▓▓▓▌█░░░░▀▀▄▄█░░░░░▓░░░▓░█░░░█▒░░░░█▒░░█
█▌███▓▓▓▓▓▓▓▓▐░░▄▓▓███▓▓▓▄▀▐█░░░░░░░█░░▓░░░░▓░░░█░░░░░░░▀░░░░░█
█▐█▓▀░░▀▓▓▓▓▓▓▓▓▓██████▓▓▓▓▐█░░░░░▄▄█░░░░▓░░░░░░░█░░█▄▄█▄▄█░░█░
▌▓▄▌▀░▀░▐▀█▄▓▓██████████▓▓▓▌██░░░█░░░█▄▄▄▄▄▄▄▄▄▄█░█▄▄▄▄▄▄▄▄▄█░░
▌▓▓▓▄▄▀▀▓▓▓▀▓▓▓▓▓▓▓▓█▓█▓█▓▓▌██░░░█▄▄█░░█▄▄█░░░░░░█▄▄█░░█▄▄█░░░░
█▐▓▓▓▓▓▓▄▄▄▓▓▓▓▓▓█▓█▓█▓█▓▓▓▐█░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
---------------------------------------------------------------
        AAAAA         PPPPPPPPP     EEEEEEEEEE  XXX       XXX
       AAA AAA        PPP     PPP   EEE           XXX   XXX
      AAA   AAA       PPP     PPP   EEE            XXX XXX
     AAAAAAAAAAA      PPPPPPPPP     EEEEEEEEE       XXXXX
    AAA       AAA     PPP           EEE            XXX XXX
   AAA         AAA    PPP           EEE           XXX   XXX
  AAA           AAA   PPP           EEEEEEEEEE  XXX       XXX
---------------------------------------------------------------
==>> Alloy Property EXplorer using simulations (v1.2.14)
Please cite DOI: 10.48550/arXiv.2404.17330
Li et al, An extendable cloud-native alloy property explorer (2024).
See https://github.com/deepmodeling/APEX for more information.
---------------------------------------------------------------
Checking input files...
-------Submit Workflow Mode-------
Running APEX calculation via lammps
Submitting joint workflow...
INFO:root:Working on: /DP_Ti_case
Workflow has been submitted (ID: dp-ti-case-joint-w5sg6, UID: 3d4020a6-130d-4684-8105-571d7a2a3b4b)
Workflow link: https://workflows.deepmodeling.com/workflows/argo/dp-ti-case-joint-w5sg6
Waiting for relaxation result...
代码
文本

3. Check results

Once all workflows finished, all results will be archived to all_result.json under current directory by default.

we can tree again to see if all finished tasks are back to local directory:

代码
文本
[ ]
!tree -L 4
代码
文本

One can download all_result.json to local computer with interactive UI interface to call APEX visualization report function by apex report -w all_result.json.

Here we will just use some simple scripts to check the results:

代码
文本
[ ]
elastic_hcp = 'confs/std-hcp/elastic_00/result.out'
elastic_bcc = 'confs/std-bcc/elastic_00/result.out'
elastic_fcc = 'confs/std-fcc/elastic_00/result.out'
with open(elastic_hcp, 'r') as f1: print(f1.read())
with open(elastic_bcc, 'r') as f1: print(f1.read())
with open(elastic_fcc, 'r') as f1: print(f1.read())
代码
文本
[ ]
import numpy as np
import matplotlib.pyplot as plt
from scipy import interpolate

# read & prepare data
def prep(l):
line = np.loadtxt(l, dtype=float, skiprows=2)
x = line[4:-4, 0]
y = line[4:-4, 1]
x_m = np.linspace(line[0, 0], line[-1, 0], 100)
Spline = interpolate.make_interp_spline(x, y)
y_m = Spline(x_m)
return x_m, y_m

eos_hcp = 'confs/std-hcp/eos_00/result.out'
eos_bcc = 'confs/std-bcc/eos_00/result.out'
eos_fcc = 'confs/std-fcc/eos_00/result.out'
hcp_x, hcp_y = prep(eos_hcp)
bcc_x, bcc_y = prep(eos_bcc)
fcc_x, fcc_y = prep(eos_fcc)

# plot figures
plt.figure(figsize=(25, 5))
plt.subplot(1,3,1)
plt.plot(hcp_x, hcp_y, 'g-')
plt.xlabel('volume per atom $(\AA^3)$')
plt.ylabel('Energy per atom E (eV/atom)')
plt.title('HCP')
plt.subplot(1,3,2)
plt.plot(bcc_x, bcc_y, 'r-')
plt.xlabel('volume per atom $(\AA^3)$')
plt.ylabel('Energy per atom E (eV/atom)')
plt.title('BCC')
plt.subplot(1,3,3)
plt.plot(fcc_x, fcc_y, 'b-')
plt.xlabel('volume per atom $(\AA^3)$')
plt.ylabel('Energy per atom E (eV/atom)')
plt.title('FCC')

# Adjust subplot spacing
plt.subplots_adjust(wspace=0.2)

plt.show()
代码
文本

Reference

[1] T. Wen, R. Wang, L. Zhu, L. Zhang, H. Wang, D. J. Srolovitz, and Z. Wu, Specialising neural network potentials for accurate properties and application to the mechanical response of titanium, npj Computational Materials 7, 206 (2021).

代码
文本
APEX
Workflow
Material
English
simulation
APEXWorkflowMaterialEnglishsimulation
已赞5
本文被以下合集收录
👀
caic@bjaisi.com
更新于 2024-12-16
1 篇0 人关注
APEX
zhuoyli@connect.hku.hk
更新于 2024-03-17
1 篇0 人关注