Critic2专题

Critic2 脚本与多标量场

用真实密度演示变量、表达式、命名场、参考场及属性提取。

更新于 2026-10-30约 4 分钟阅读按任务与环境选择适用配置
阅读本篇目录

下载本篇配套操作包,解压后进入包目录。包中有23个Critic2短例子、输入、原始结果与7张高清图。它复用Critic2第一次计算中的真实水二聚体波函数和集群已有NaCl密度,不重新进行DFT。

1. 从一个最短输入开始#

在操作包根目录执行:

bash run.sh 1
cat work/language/out.cro

输入如下,可以直接修改数值:

echo BEGIN_ARITHMETIC
a=2
b=3
a+b
a^b
sqrt(9)
sin(pi/2)
exp(0)
3%2
2>=3
abs(-4)
clear a b
list
echo END_ARITHMETIC
end

a=2、b=3定义变量,单独写表达式就输出结果。上面依次得到5、8、3、1、1、1、0、4;比较表达式 2>=3 为假,返回0。#用于注释,长行可用反斜杠续行。clear a b清除变量,list显示当前状态;end与exit结束输入。

2. 将同一真实密度读成多个场#

bash run.sh 2
grep -n 'Field\|double\|cancel' work/field-algebra/out.cro
molecule ../../data/water.wfx
load ../../data/water.wfx
reference 1
load copy 1 name rho
load as "$1*2" name twice
load as "$2-$1" name zero
list
pointprop double "$3"
pointprop cancel "$4"
point 0.4 0.3 0.2 all
pointprop clear
reference 2
point 0.4 0.3 0.2
unload 2
unload all
list

默认 $0 是原子密度叠加的前分子模型;第一个实际加载的水二聚体波函数是 $1。load copy 1 name rho建立同一密度的命名副本 $2;load as建立按需计算的表达式场,本例 $3 是两倍密度,$4 是两个相同真实密度的差。

在坐标(0.4,0.3,0.2)Å,真实密度为0.04709908170 e/bohr³,两倍值为0.09419816341 e/bohr³,相同场相减为0。这里的零场是帮助理解表达式的对照,不是计算得到了物理电荷转移。

reference 2决定后续默认操作使用哪个场。pointprop添加点处属性,point ... all同时显示多个场。unload卸载实际加载的场,内置前分子场保留;使用新的独立输入可以清楚地重新设置属性与参考场。

3. 换成电荷差分时要满足什么#

真正的差分密度需要总体系和各片段在相同晶胞、网格、坐标、电子密度定义下计算。不能直接把不同晶胞或不同归一化单位的密度相减。先看密度格式和周期网格操作,再将表达式换成自己的已对齐数据。

4. 查询泛函与重置状态#

bash run.sh 23
less work/libxc-list/out.cro
bash run.sh 22

编号23执行 libxc names flags,列出本程序链接的Libxc泛函与标志,列出名称不表示已经用该泛函重新计算密度。编号22演示 root、units、reset和exit;root控制自动生成文件的前缀,reset清掉当前结构与场后再读取另一体系。

molecule ../../data/water.wfx
load ../../data/water.wfx
reference 1
root my-water
units bohr
point 0.4/0.52917720859 0.3/0.52917720859 0.2/0.52917720859
reset
crystal ../../data/NaCl.cube
load ../../data/NaCl.cube
reference 1
sum 1
exit

提取数据与重新画图#

只想看配套结果,先在新解压目录执行:

bash analyze.sh
ls analysis-reference
ls figures-reference

该命令从 reference/work/ 提取数据,并生成全部7张图。若要重做后处理,在另一份新解压目录执行:

bash list.sh
bash run-all.sh
ls work analysis figures

顺序是准备真实密度 → 生成周期傅里叶网格 → 运行23个Critic2输入 → 提取表格 → 画图。结果写入 runtime-data/、work/、analysis/、figures/;已有结果目录时使用新解压目录,避免混用。只运行单个编号后,不要对不完整的 work/ 调用整包分析。

重算应使用账户分配的CPU资源。包内 run.slurm 按CPU分区整节点56核规则准备,可用 sbatch run.slurm 提交;教学流程实际单线程,申请56核不表示做过并行性能测试。CPU资源暂不可分配时,先使用已有结果提取与画图。

本例程序是 critic2/1.4,固定提交内部版本1.4.155;GCC/GFortran13.3、双精度/OpenMP,LAPACK3.12.1、Readline8.2、NLopt2.10.0、Libxc7.0.0及Libcint标签6.1.2。辅助脚本使用集群已有ASE3.29.0、NumPy、SciPy和Matplotlib环境,脚本已选定解释器。没有GUI、tblite或libxtb接口要求。

返回Critic2专题。写法依据:固定版本源码、官方命令参考、图形与采样手册、结构工具手册。在线手册面向发展版本,实际输入采用本集群固定版本已运行的写法。

需要根据你的体系选择资源?联系讨论计算需求。实际可用软件与权限,以当前账户和运行环境为准。

查看配图

放大后可滚动查看细节,按 Esc 关闭。

100%查看原图 ↗