ATAT 专题

ATAT相图:原生绘图与数据导出

使用ocplotpd与gnuplot画出相图,导出单文件绘图输入并保留数值数据。

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

完成相平衡计算后,继续在同一个ATAT-OpenCalphad目录操作。下载完整实例包。

1 用原生gnuplot输入画图#

bash plot.sh
bash inspect.sh

plot.sh读取ocplotpd原生生成的ocplotpd.gnu,设置pngcairo终端,移除交互等待,分别输出2200×1400 PNG。数据点和系线均来自刚刚完成的平衡计算,不重新计算热力学。

ls -lh new-work/figures/*.png

主要结果为phase-map-native.png和fixed-800K-native.png。原生GNU输入的核心为:

set terminal pngcairo size 2200,1400
set output 'phase-map-native.png'
set xlabel 'Au'
set ylabel 'T (K)'
plot 'tielines.dat' using 6:4 with lines,      'phase_FCC_A1.dat' using 6:4 with lines

这是二元模型,横轴是Au标签组元的摩尔分数,纵轴是温度。相界输出按ATAT自己的距离规则连接;采样较稀时局部有断开,增加采样可改善覆盖,不应为了“好看”手工补成不存在的数据。

ATAT原生gnuplot相图

2 不重算平衡,只更换绘图形式#

bash replot.sh

这个命令在输出副本上调用ocplotpd -noc,分别演示-nt和-1f。-noc复用已有数据,-nt隐藏系线,-1f把数据内嵌到一个gnuplot脚本中。输出在new-work/replot/without-ties与new-work/replot/inline,各有一张PNG。

原生-1f会在嵌入数据后移除该目录中的独立.dat文件。因此包内脚本先复制绘图数据再执行,原始计算目录的数据继续保留。自行调用原生命令时也应先复制工作目录。

ls -lh new-work/replot/inline/inline.gnu
ls -lh new-work/phase-map/*.dat

需要把图片重新画出来时,PNG终端与输出文件已由脚本设置;如果自己直接执行原生gnuplot ocplotpd.gnu,默认可能等待交互窗口,远程命令行环境建议使用上面的无界面绘图入口。

3 用数据表画带说明的科学图#

/public/toolkit/miniconda3/envs/ase-3.29.0/bin/python code/plot_analysis.py

命令使用集群已有的NumPy与Matplotlib,读取new-work/analysis/equilibria.json,生成温度—组分图、800 K自由能与杠杆定则图,以及流程/数值检查图,同时保存PNG与SVG。

原生相组成与独立模型曲线

橙点来自原生共存相组成,蓝线来自正则溶液模型的化学势相等条件;灰色叉号为原生单相目标。紫色星号是模型解析临界点,不是本次111个目标中额外算出的临界点。图中的组元标签仍是教学模型,不能当作真实Cu–Au数据库预测。

4 最后保留哪些文件#

inputs/regular.tdb是输入;new-work/*/alltmp.oco是原生详细结果;.dat与.gnu用于ATAT原生绘图;analysis/equilibria.csv适合表格软件,JSON保留各相组成与物质的量;figures保存图片。后续调整采样或模型时,保留这批结果并使用新目录,便于比较。

本例覆盖二元温度—组分图、定温截面与缓存绘图,不把它当作三元/多元、VTK或一般多相数据库流程。相关接口与选项说明见ATAT手册。

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

查看配图

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

100%查看原图 ↗