成分梯度(Composition Gradient)

Group: Alloy | Class: CompositionGradientCard

功能说明

Composition Gradient 沿 x/y/z 方向把结构分成若干坐标层,并在每层按起点成分到终点成分的线性插值替换元素。它用于扩散偶、梯度合金和界面过渡层,不等价于全局随机合金。

操作示例

场景:模型缺少扩散偶过渡层

Ni-Co 训练集包含纯 Ni、纯 Co 和均匀随机合金,但没有从 Ni-rich 到 Co-rich 的空间过渡结构。模型在界面扩散偶上出现系统误差。

输入: 沿 x 方向足够长的 Ni 或 Ni-Co 超胞。 目标: 生成 x 方向从 Ni:1,Co:0Ni:0,Co:1 的配比梯度。 参数设置: elements=Ni,Coaxis=xbins=8samples=3,开启 use_seed输出: 每个输入结构生成 3 个具有相同层配比、不同层内随机排布的梯度结构。 怎么验证训练集质量改善: 按 x 分层统计元素比例,应从 Ni-rich 单调过渡到 Co-rich;重训后扩散偶界面测试误差应下降。

参数说明

Elements(elements)

str,默认 Ni,Co。梯度端点中参与插值的元素集合。二元扩散偶写两个元素即可,三元过渡层把你关心的所有成分变化元素都列进去。

Start Composition(start_composition)

str,默认 Ni:1,Co:0。梯度起点的目标元素比例,对应 axis 低坐标端。比例不要求归一化,各元素相对比值决定第一层的目标配比。

End Composition(end_composition)

str,默认 Ni:0,Co:1。梯度终点的目标元素比例,对应 axis 高坐标端。扩散偶通常把一个元素从 1 过渡到 0、另一个从 0 过渡到 1。

Axis(axis)

str,默认 x,可选 x/y/z。选真实扩散或界面法向方向。cell 在这个方向上必须有足够层数,否则每层原子太少,整数取整会让目标比例失真。

Bins(bins)

int,默认 8。沿梯度轴划分的组成层数。bins 越多梯度越细,但每层原子越少、取整误差越大。小超胞用 4-8 层,大超胞或界面模型可用 8-20 层。

Target Elements(target_elements)

str,默认空。留空时所有匹配元素都可被重排;只想替换某个子晶格或特定层时,显式列出目标元素,避免把基底或不参与扩散的元素也改掉。

Samples(samples)

int,默认 1。每个输入结构生成几个样本。同一层目标比例下,samples 只改变层内随机排布。1-3 个适合扩散偶,5 个以上才适合做层内无序统计。

Use Seed(use_seed)

bool,默认 false。需要可复现训练集或对比实验时打开;最终大规模随机探索可以关掉,但结果不能逐帧复现。

Seed(seed)

int,默认 0。同一输入、同一参数、同一 seed 生成同一批候选。

生效条件:use_seed=True

推荐预设

二元扩散偶

{
  "class": "CompositionGradientCard",
  "params": {
    "elements": "Ni,Co",
    "start_composition": "Ni:1,Co:0",
    "end_composition": "Ni:0,Co:1",
    "axis": "x",
    "bins": 8,
    "target_elements": "",
    "samples": 3,
    "use_seed": true,
    "seed": 42
  }
}

用于 Ni-rich 到 Co-rich 的一维过渡层。

三元梯度层

{
  "class": "CompositionGradientCard",
  "params": {
    "elements": "Co,Cr,Ni",
    "start_composition": "Co:0.8,Cr:0.1,Ni:0.1",
    "end_composition": "Co:0.1,Cr:0.4,Ni:0.5",
    "axis": "z",
    "bins": 10,
    "target_elements": "Co,Cr,Ni",
    "samples": 2,
    "use_seed": true,
    "seed": 9
  }
}

用于多元合金的层状成分过渡。

推荐组合

  • Super Cell -> Composition Gradient -> Geometry Filter:先给梯度方向足够层数,再做配比梯度和几何检查。

  • Crystal Prototype Builder -> Super Cell -> Composition Gradient -> Atomic Perturb:先生成晶体模板,再加空间成分梯度和局部位移。

  • Composition Gradient -> FPS Filter:生成多组梯度结构后选代表帧。

常见问题

层内成分不等于目标小数。 原子数是整数,每层按最接近的整数计数分配。增大超胞或减少 bins 可以提高每层成分分辨率。

运行报错或没有输出。 elements 少于 2 个、起止成分解析失败,或 target_elements 没有匹配到原子。

周期结构的起点在哪里。 周期方向使用 wrapped fractional coordinate 排序;非周期方向使用 Cartesian coordinate 排序。

输出标签

CompGrad(ax={x|y|z},b={bins},s={seed})s 只在 use_seed=True 时出现。

可复现性

开启 use_seed 后,层内元素排布由 seed、输入结构标识和 sample 序号共同决定。