Bohrium
robot
新建

空间站广场

论文
Notebooks
比赛
课程
Apps
我的主页
我的Notebooks
我的论文库
我的足迹

我的工作空间

任务
节点
文件
数据集
镜像
项目
数据库
公开
CALYPSO—电池实战之界面结构预测篇
CALYPSO
固态电解质
界面
CALYPSO固态电解质界面
zhanglinshuang
发布于 2023-10-27
推荐镜像 :CALYPSO:7.3.5.1
推荐机型 :c12_m24_cpu
赞 1
1
5
CALYPSO-Battery-Case(v5)

CALYPSO—电池实战之界面结构预测篇

代码
文本

©️ Copyright 2023 @ Authors
致谢:感谢吉林大学物理学院吕健教授、吉林大学材料学院高博教授、吉林大学物理学院博士生王振雨、吉林大学物理学院博士生罗啸山在本次Notebook制作中对案例中电池体系及计算方案、镜像打造和课件思路的全面指导和帮助。
作者: 吕健、高博、王振雨、罗啸山、张琳爽
日期:2023-10-25
共享协议:本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

🎯 本文档旨在结合ACS applied materials & interfaces 12.14 (2020): 16350-16358这篇于2020年发表的有关使用CALYPSO进行全固态电解质与锂电负极界面结构预测和研究的工作,详细介绍结构预测是如何结合固态电池界面稳定性研究发挥作用的。

你可以点击界面上方蓝色按钮 开始连接,选择 calypso-bohrium:7.3.5.1 镜像、c12_m24 节点配置、挂载'设置为挂载 CALYPSO-Battery-Case V5 稍等片刻即可运行。`

image.png

目标

上手使用CALYPSO_SaaS开展固态电解质的固-固界面结构预测。

在学习本教程后,你将能够:

  1. 结合结构预测软件CALYPSO了解结构预测参数的选择。
  2. 计算并绘制预测结构的能量,并进行能量排序。

阅读该教程【最多】约需 15 分钟, 若您希望一键运行,记得先点解目录中修改提交文件:machine.json,将文件中的email和passwd改成自己的账户密码,然后再一键执行哦~ 那让我们开始吧!

目录

代码
文本

背景介绍

储能电池技术现已是新能源产业链上不可或缺的一环,采用无机固态电解质的全固态电池相比于传统二次电池体系具备更高的安全性和能量密度,已被普遍认为是下一代候选电池体系。

全固态电池的发展亟需解决三个核心科学问题。

首先,由于固态电解质作为全固态电池的核心材料,研究其体相与表界面的锂离子输运机制至关重要。这是进一步提升离子导电率、创制新型固态电解质材料、改善全固态电池性能、推动固态离子学科发展的科学基础。

其次,高机械强度的固态电解质仍然难以抑制锂金属枝晶的生长,造成全固态电池的快速容量衰减与安全隐患。

不同于传统锂离子电池中的(脱)溶剂化与离子迁移过程,全固态体系中锂离子如何跨越固固界面发生电化学反应,又如何在固态电解质内部形核生长并刺穿固态电解质的呢?image.png

而围绕这三大科学问题,都离不开界面,因此表明界面稳定结构是深入理解此类问题的基础。

结合基于群体智能算法的CALYPSO界面结构预测板块(详见 http://www.calypso.cn ),能够有效地对全固态电池界面处原子结构有深刻的认识,在此基础上进行相关电化学特性研究,揭示界面离子稳定及离子迁移机制,为实验上进行材料优化提供理论基础

CALYPSO是我国自主创新发展的方法和软件,仅依据材料的化学组分即可开展材料微观原子结构的预测,已经广泛应用于晶体、表面(含二维单/多层材料)、界面、团簇和过渡态的创新性设计,并能开展功能导向(如能隙、硬度和电子密度等)的逆向材料设计。

alt image.png

代码
文本

1. 界面结构预测的准备文件

1.1 准备输入文件

我们已经为大家准备好了快速上手的案例,大家可以直接使用cp -r 命令来下载数据集,此处我们下载到/data盘。

注意:从数据集需要在开机前挂载在当前节点下,如果没有挂载数据集的同学需要断开当前节点,重新连接。

温馨提示:命令行状态正在进行则会显示 如:image.png 如果运行完成,则会显示数字image.png 🎯 `运行下列命令行 下载数据集

🎯 `此时执行test -e 检查下载的数据集CALYPSO-Battery-Case是否在/data盘中,如果成功下载,则会显示文件夹已存在

🎯 `查看数据集内包含的文件

代码
文本
代码
文本
[164]
%%bash
cp -r /bohr/CALYPSO-bc-8n08/v5/* /data/
test ! -e /data/CALYPSO-Battery-Case || echo "文件夹已存在"
ls /data/CALYPSO-Battery-Case/
文件夹已存在
Case
Case_results
代码
文本

该目录下包含两个文件夹

  1. /Case,用VASP作为第一性原理计算软件进行CALYPSO界面结构预测的输入文件
  2. /Case_results ,用VASP作为第一性原理计算软件进行CALYPSO界面结构预测的输入和输出文件

🎯 `运行下列命令行 查看/Case文件夹内,解读CALYPSO界面结构预测时需要的所有输入文件和参数。

代码
文本
[165]
!ls /data/CALYPSO-Battery-Case/Case
INCAR-1
INCAR-2
POTCAR-La
POTCAR-Li
POTCAR-O
POTCAR-Zr
SUBSTRATE
SUBSTRATE2
input.dat
machine.json
resources.json
run.sh
submit.sh
0
代码
文本

该目录中包含

  1. CALYPSO及VASP的输入文件:
    • input.dat,CALYPSO的控制文件,(详细的参数说明请参考文档说明)
    • INCAR-1INCAR-2, 各结构逐次进行VASP优化的控制文件 #注意,和晶体不同,这里的INCAR使用的是短横线而不是下划线
    • POTCAR-OPOTCAR-Ti, VASP赝势
    • SUBSTRATE, SUBSTRATE1, 衬底文件,cif格式
    • submit.sh, 文件中应写出运行第一性原理软件的命令,如mpirun -n 16 vasp_std > fp.log 2>&1
  2. 计算资源配置文件:
    • machine.json,dpdispatcher的参数文件,包含bohrium的账号信息及相关镜像的选择等
    • resources.json,dpdispatcher的参数文件,控制每个机器运行任务的个数
  3. 辅助控制文件:
    • run.sh,CALYPSO-SaaS的任务提交脚本

alt image.png

代码
文本

🎯 `运行下列命令行 查看/Case文件夹内,解读CALYPSO的输入文件input.data,了解参数含义。

代码
文本
[166]
cat /data/CALYPSO-Battery-Case/Case/input.dat
LSurface         = T #surface flag
ICode            = 1 #1-vasp
Rand_Scheme = 0 # 产生结构方式:0完全随机,1二维对称性限制,3原子成键特征限制
System_type = INTERFACE # 界面结构预测
Kgrid         = 0.1 #结构弛豫过程K点的间隔
PopSize     =  5 
MaxStep     = 1 
Pre_surf_relax=F #是否先对界面进行预弛豫
SPACESAVING = T 
InterfaceAuto = T 
InterfaceTranslation = ab #基底平移方向a或者b
Interface_thickness = 2.0   #界面厚度
NumberOfParallel = 5 
@SURFACE_ATOMS #|atomic symbol|count|
 Li  0 #界面内的元素名称、原子数
@END
#used to build the surface from bulk info
#reconstruction symmetry
Substrate        =   SUBSTRATE #基底结构文件
Substrate2     = SUBSTRATE2 #基底结构文件2
Twin_Interface = 1 #界面模型,0薄板模型,1中心对称模型,2镜面对称模型
#Twin_Surface = 1
Split = T 
代码
文本

🎯 `注意:了解了基底文件和CALYPSO基本设置后,我们对本次上机唯一需要修改的machine.json进行修改。先用cat命令查看。

machine.json 进行修改,将其中的email,passwd,project-id以及镜像image_name进行相应修改(如果您希望使用vasp进行能量计算,请与bohrium工作人员联系获取vasp的镜像)CALYPSO-SaaS的任务提交和回收全部由dpdispatcher完成,因此需要对dpdispatcher的配置文件。

machine.json文件修改(注意,这是本次上机唯一需要修改的文件哦!)

代码
文本
[5]
%%bash
cd /data/CALYPSO-Battery-Case/Case/
cat /data/CALYPSO-Battery-Case/Case/machine.json
{
  "batch_type": "Lebesgue",
  "context_type": "LebesgueContext",
  "local_root": "./",
  "remote_profile": {
    "email": "youremail", 
    "password": "yourpasswd",
    "program_id": 19696, 
    "_keep_backup": true,
    "input_data": {
      "job_name": "calypso-saas-interface",
      "image_name": "registry.dp.tech/dptech/vasp:5.4.4-calypso",
      "job_type": "indicate",
      "log_file": "log",
      "grouped": true,
      "disk_size": 200,
      "max_run_time": 15, 
      "machine_type": "c64_m64_cpu",
      "platform": "ali",
      "on_demand": 0,
      "out_files": ["OUTCAR", "CONTCAR", "OSZICAR", "fp.log", "log", "err"]
    }
  }
}
代码
文本

🎯 `注意!我们在下列命令行中需要对machine.json里的账号和密码更换成我们自己的Bohurium账号密码

🎯 `否则会导致任务失败!!其中email、password、都需要大家自行调整。

代码
文本
[169]
%%writefile machine.json
{
"batch_type": "Lebesgue",
"context_type": "LebesgueContext",
"local_root": "./",
"remote_profile": {
"email": "youremail",
"password": "yourpasswd",
"program_id": 19696,
"_keep_backup": true,
"input_data": {
"job_name": "calypso-saas-interface",
"image_name": "registry.dp.tech/dptech/vasp:5.4.4-calypso",
"job_type": "indicate",
"log_file": "log",
"grouped": true,
"disk_size": 200,
"max_run_time": 15,
"machine_type": "c64_m64_cpu",
"platform": "ali",
"on_demand": 0,
"out_files": ["OUTCAR", "CONTCAR", "OSZICAR", "fp.log", "log", "err"]
}
}
}
Overwriting machine.json
代码
文本
[170]
cat /data/CALYPSO-Battery-Case/Case/resources.json #这个文件是激活运行环境,不需要修改
{
        "group_size": 1,
        "local_root":"./",
        "source_list": ["/opt/intel/oneapi/setvars.sh"]
}
代码
文本

1.2 提交结构预测任务

代码
文本

🎯 `machine.json修改完成后,先进入放置了输入文件的文件夹

🎯 `为准备好的任务提交脚本run.sh,运行该脚本即可提交任务

注意!目前界面结构预测只能使用VASP作为能量计算软件

代码
文本
[171]
!cd /data/CALYPSO-Battery-Case/Case
0
代码
文本
[172]
import os
get_ipython().system = os.system
!nohup run_calypso --dft vasp > out 2>&1 &
0
代码
文本

1.3 查案任务状态

🎯 `** 我们在镜像中提供了命令查看任务showjob,可直接在命令行运行即可**

代码
文本
[173]
!showjob
name                                PID                          work_path   
run_calypso                        2732               /data/CALYPSO-Battery-Case/Case   
0
代码
文本

🎯 `或者可以实时的查看任务的日志文件,在此次上上机中我们共提交了1代共5个计算任务,每个任务的计算时长上限为15min。 image.png

代码
文本
[174]
!tail -n 5 /data/CALYPSO-Battery-Case/Case/out
0
代码
文本

2. 任务的结果分析

🎯 `由于需要等待十五分钟,查看刚刚上交的结构预测优化的结果,因此本次上机分析结果时采用案例库中已经完成计算的任务进行展示。

🎯 `该案例文件是开展了5代结构搜索,每代共搜索预测了20个结构,优化时长均控制在1h内完成。

待任务结束后,我们在镜像中准备了更新的结构预测结果分析脚本cak3.py,目前该脚本除基础功能外,还支持对结构预测演化的进程可视化分析,以及对变组分结构预测的convexhull进行可视化分析。

代码
文本

2.1 普通分析

🎯 `查看已计算完成案例的文件/results/

代码
文本
[175]
ls /data/CALYPSO-Battery-Case/Case_results/results
Analysis_Output.dat*
CALYPSO.log*
CALYPSO_input.dat*
Generation_1/
Generation_2/
Generation_3/
Generation_4/
Generation_5/
dir_origin/
代码
文本
  • struct.dat为保存的所有结构信息
  • CALYPSO.log Local_Structure_List.dat为CALYPSO运行的日志文件与临时文件

🎯 `在results/文件夹内执行cak.py,得到输出文件Analysis_Output.dat

代码
文本
[176]
%%bash
cd /data/CALYPSO-Battery-Case/Case_results/results
pwd
cak.py --vasp -a
cat /data/CALYPSO-Battery-Case/Case_results/results/Analysis_Output.dat
/data/CALYPSO-Battery-Case/Case_results/results
        No.      Enthalpy
   1 (  47)   -2159.64453
   2 (  97)   -2159.28722
   3 (  77)   -2159.15938
   4 (  69)   -2158.74478
   5 (  53)   -2158.65249
   6 (  99)   -2158.38120
   7 (   8)   -2156.96046
   8 (  80)   -2156.95963
   9 (  82)   -2156.89749
  10 (  94)   -2156.85372
  11 (  20)   -2156.83395
  12 (  36)   -2156.72645
  13 (  23)   -2156.72645
  14 (  30)   -2156.72645
  15 (  32)   -2156.72645
  16 (  40)   -2156.72645
  17 (  62)   -2156.72645
  18 (  71)   -2156.72645
  19 (  79)   -2156.72645
  20 (  25)   -2156.72645
  21 (  26)   -2156.72645
  22 (  18)   -2156.59701
  23 (  67)   -2156.51927
  24 (  66)   -2156.51439
  25 (  41)   -2156.48388
  26 (   6)   -2156.45679
  27 (  27)   -2156.45367
  28 (  33)   -2156.45367
  29 (  37)   -2156.45367
  30 (  38)   -2156.45367
  31 (  61)   -2156.45367
  32 (  73)   -2156.45367
  33 (   3)   -2156.44517
  34 (  16)   -2156.41963
  35 (  13)   -2156.40968
  36 (  98)   -2156.36908
  37 (  28)   -2156.32197
  38 (   7)   -2156.32156
  39 (  24)   -2156.32144
  40 (  59)   -2156.29289
  41 (   5)   -2156.25920
  42 (  90)   -2156.25509
  43 (  10)   -2156.22305
  44 (  17)   -2156.22298
  45 (  51)   -2156.21817
  46 (  12)   -2156.19671
  47 (  14)   -2156.16082
  48 (   9)   -2156.13416
  49 (  84)   -2156.13118
  50 (  63)   -2156.11631
  51 (  35)   -2156.03523
  52 (  42)   -2156.02809
  53 (  95)   -2156.02456
  54 (  85)   -2155.97143
  55 (  72)   -2155.94401
  56 (  78)   -2155.94048
  57 (  34)   -2155.88508
  58 (  44)   -2155.86685
  59 (  88)   -2155.81429
  60 (  22)   -2155.72129
  61 (  31)   -2155.71275
  62 (  49)   -2155.70171
  63 (  39)   -2155.65153
  64 (  70)   -2155.56552
  65 (  15)   -2155.52897
  66 (  19)   -2155.46438
  67 (  55)   -2155.41882
  68 (   2)   -2155.33734
  69 (  96)   -2155.20432
  70 (  21)   -2155.17091
  71 (  68)   -2155.13562
  72 (   1)   -2155.08163
  73 (  54)   -2154.87900
  74 (  57)   -2154.01505
  75 (  89)   -2153.54830
  76 (  45)   -2151.30316
  77 (  50)   -2149.40502
  78 (  56)   -2140.19443
  79 (  11)   -2135.54190
  80 (   4)          NULL
  81 (  29)          NULL
  82 (  43)          NULL
  83 (  46)          NULL
  84 (  48)          NULL
  85 (  52)          NULL
  86 (  58)          NULL
  87 (  60)          NULL
  88 (  64)          NULL
  89 (  65)          NULL
  90 (  74)          NULL
  91 (  75)          NULL
  92 (  76)          NULL
  93 (  81)          NULL
  94 (  83)          NULL
  95 (  86)          NULL
  96 (  87)          NULL
  97 (  91)          NULL
  98 (  92)          NULL
  99 (  93)          NULL
 100 ( 100)          NULL
代码
文本

🎯 `在results/对Analysis_Output.dat中预测得到100个构型结构优化后的能量进行分析;

代码
文本
[1]
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np

# 读取数据
data = pd.read_csv('/data/CALYPSO-Battery-Case/Case_results/results/Analysis_Output.dat', delim_whitespace=True, header=0, usecols=[2, 3], names=['No', 'Enthalpy'])

# 去掉第三列中的括号
data['No'] = data['No'].str.strip(')').astype(int)
# 过滤掉第四列为NULL的行
data = data[data['Enthalpy'] != 'NULL']
data['Enthalpy'] = data['Enthalpy'].astype(float)
# 显示前5行数据
print(data.head())
# 使用第三列和第四列绘制图形
fig, ax = plt.subplots()
scatter = ax.scatter(data['No'], data['Enthalpy'], c=data['Enthalpy'], cmap='viridis', edgecolor='k')
# 设置图形标题和坐标轴标签
plt.title('Scatter plot of Number vs Enthalpy')
plt.xlabel('Number')
plt.ylabel('Enthalpy')
# 添加颜色条
cbar = plt.colorbar(scatter)
cbar.set_label('Enthalpy')

# 显示图形
plt.show()
代码
文本

🎯 `dir_origin中包含生成的100个vaso格式的结构文件

代码
文本
[178]
ls /data/CALYPSO-Battery-Case/Case_results/results/dir_origin
OCell_1.vasp
OCell_10.vasp
OCell_100.vasp
OCell_11.vasp
OCell_12.vasp
OCell_13.vasp
OCell_14.vasp
OCell_15.vasp
OCell_16.vasp
OCell_17.vasp
OCell_18.vasp
OCell_19.vasp
OCell_2.vasp
OCell_20.vasp
OCell_21.vasp
OCell_22.vasp
OCell_23.vasp
OCell_24.vasp
OCell_25.vasp
OCell_26.vasp
OCell_27.vasp
OCell_28.vasp
OCell_29.vasp
OCell_3.vasp
OCell_30.vasp
OCell_31.vasp
OCell_32.vasp
OCell_33.vasp
OCell_34.vasp
OCell_35.vasp
OCell_36.vasp
OCell_37.vasp
OCell_38.vasp
OCell_39.vasp
OCell_4.vasp
OCell_40.vasp
OCell_41.vasp
OCell_42.vasp
OCell_43.vasp
OCell_44.vasp
OCell_45.vasp
OCell_46.vasp
OCell_47.vasp
OCell_48.vasp
OCell_49.vasp
OCell_5.vasp
OCell_50.vasp
OCell_51.vasp
OCell_52.vasp
OCell_53.vasp
OCell_54.vasp
OCell_55.vasp
OCell_56.vasp
OCell_57.vasp
OCell_58.vasp
OCell_59.vasp
OCell_6.vasp
OCell_60.vasp
OCell_61.vasp
OCell_62.vasp
OCell_63.vasp
OCell_64.vasp
OCell_65.vasp
OCell_66.vasp
OCell_67.vasp
OCell_68.vasp
OCell_69.vasp
OCell_7.vasp
OCell_70.vasp
OCell_71.vasp
OCell_72.vasp
OCell_73.vasp
OCell_74.vasp
OCell_75.vasp
OCell_76.vasp
OCell_77.vasp
OCell_78.vasp
OCell_79.vasp
OCell_8.vasp
OCell_80.vasp
OCell_81.vasp
OCell_82.vasp
OCell_83.vasp
OCell_84.vasp
OCell_85.vasp
OCell_86.vasp
OCell_87.vasp
OCell_88.vasp
OCell_89.vasp
OCell_9.vasp
OCell_90.vasp
OCell_91.vasp
OCell_92.vasp
OCell_93.vasp
OCell_94.vasp
OCell_95.vasp
OCell_96.vasp
OCell_97.vasp
OCell_98.vasp
OCell_99.vasp
代码
文本

🎯 `从dir_origin/中挑选部分构型用于展示:

alt image.png

进一步阅读

如果您希望更深入学习CALYPSO,本节提供有关该主题的更多资源。

CALYPSO项目

代码
文本

Open In Bohrium

代码
文本
CALYPSO
固态电解质
界面
CALYPSO固态电解质界面
已赞1
本文被以下合集收录
good notebooks collected by Taiping Hu
TaipingHu
更新于 2024-09-10
33 篇14 人关注
电池计算
微信用户70yQ
更新于 2024-09-06
8 篇1 人关注
推荐阅读
公开
AI+电芯 | 基于LSTM模型和脉冲电信号的电芯EIS预测
AI4SEISAI4SCUP-EIS
AI4SEISAI4SCUP-EIS
JiaweiMiao
发布于 2023-10-22
5 赞40 转存文件
公开
Uni-Mol预测液流电池溶解度
AI4S经验分享Uni-MolHackathon
AI4S经验分享Uni-MolHackathon
zmz
发布于 2023-09-07
9 赞12 转存文件