自旋无序(Spin Disorder)

Group: Magnetism | Class: SpinDisorderCard

功能说明

Spin Disorder 从已有磁矩或元素磁矩表出发,按指定无序比例生成中间磁态。它覆盖 FM/AFM 到 PM 之间的离散翻转、随机方向和 cone disorder,不把这些离散无序混进 Magmom Rotation 的连续小角扰动语义里。

操作示例

场景:模型只见过 FM/AFM 和完全随机 PM

FeCo 训练集包含 FM、AFM 和完全随机 PM,但缺少 10%-70% 局部翻转的中间无序态。模型在有限温度磁态上能量排序不稳定。

输入: 已经通过 Magnetic OrderSet Magnetic Moments 写入磁矩的结构。 目标: 生成 0.1,0.3,0.5,0.7 四档局部翻转,让训练集覆盖有序到无序的连续路径。 参数设置: mode=Flip fractionfractions=0.1,0.3,0.5,0.7samples_per_fraction=3,开启 use_seed输出: 每个输入结构生成 12 个自旋无序结构。 怎么验证训练集质量改善: 重训后,中间翻转比例测试集的能量/磁力误差应不再显著高于 FM/AFM 端点。

参数说明

无序模型

Mode(mode)

str,默认 'Flip fraction'Flip fraction 保持共线轴只翻转符号,适合 FM/AFM 到 PM 的离散无序梯度;Randomize fraction 把选中自旋完全随机化;Cone disorder 保持围绕参考方向的有限温非共线扰动。

Fractions(fractions)

str,默认 '0.1,0.3,0.5,0.7'。被翻转或随机化的自旋比例,从 0 到 1。0.1/0.3/0.5/0.7 可覆盖 FM/AFM 到 PM 之间的无序梯度。

Samples Per Fraction(samples_per_fraction)

int,默认 1。同一无序度下不同随机选择会给不同局域环境。1 个用于路径扫描,3-10 个用于统计训练。

Cone Angle(cone_angle)

float,默认 30.0。Cone disorder 中限制随机方向偏离参考轴的最大角。10-30° 表示有序态附近有限温扰动;接近 90° 时已接近强无序。

生效条件:mode 或方向模型选择 cone/noncollinear 随机化时。

磁矩幅值

Magnitude Source(magnitude_source)

str,默认 'Existing initial magmoms'。已有 initial_magmoms 时复用它最安全;没有磁矩输入时用 magmom_map/default_moment 构造幅值。不要用默认幅值替代已知元素磁矩。

Magmom Map(magmom_map)

str,默认 ''。已知元素局域磁矩时显式写入,如 Fe:2.2,Ni:0.6。未知元素不要用默认值伪造先验。

Default Moment(default_moment)

float,默认 0.0。只作为 magmom_map 未命中元素的兜底幅值。关键磁性元素应显式列出,非磁元素通常保持 0。

Lift Scalar(lift_scalar)

bool,默认 True。输入是标量磁矩但下游需要非共线向量时打开;如果原始数据已有方向信息,不要重新提升覆盖它。

Axis(axis)

list[float] | tuple[float, float, float],默认 (0.0, 0.0, 1.0)。这是方向参考,不是普通数值——改它会改变分层、表面法向或磁矩方向。使用前先确认 cell 取向和目标物理方向。

生效条件:涉及方向、分层、表面或向量初始化的模式都会使用。

Apply Elements(apply_elements)

str,默认 ''。只对列出的磁性元素翻转或随机化。合金/界面里应显式列出磁性元素,避免给非磁原子写入无意义磁矩。留空则全部参与。

随机性和预算

Use Seed(use_seed)

bool,默认 False。勾选后固定种子可复现。对比实验时开,最终大规模随机探索可以关——但关后结果不能逐帧复现。

Seed(seed)

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

生效条件:use_seed=True

Max Outputs(max_outputs)

int,默认 100。总输出约等于 fractions 数量乘以 samples_per_fraction。链式输入多时必须设上限,避免磁无序样本淹没结构样本。

推荐预设

共线翻转梯度

{
  "class": "SpinDisorderCard",
  "params": {
    "mode": "Flip fraction",
    "fractions": "0.1,0.3,0.5,0.7",
    "samples_per_fraction": 3,
    "cone_angle": 30.0,
    "magnitude_source": "Existing initial magmoms",
    "magmom_map": "",
    "default_moment": 0.0,
    "lift_scalar": true,
    "axis": [0.0, 0.0, 1.0],
    "apply_elements": "",
    "use_seed": true,
    "seed": 42,
    "max_outputs": 100
  }
}

用于从 FM/AFM 参考态生成局部翻转比例扫描。

非共线 cone disorder

{
  "class": "SpinDisorderCard",
  "params": {
    "mode": "Cone disorder",
    "fractions": "0.25,0.5,0.75",
    "samples_per_fraction": 2,
    "cone_angle": 20.0,
    "magnitude_source": "Existing initial magmoms",
    "magmom_map": "",
    "default_moment": 0.0,
    "lift_scalar": true,
    "axis": [0.0, 0.0, 1.0],
    "apply_elements": "Fe,Co",
    "use_seed": true,
    "seed": 7,
    "max_outputs": 50
  }
}

用于有限温度附近的非共线方向扰动。

推荐组合

  • Magnetic Order -> Spin Disorder:先建立 FM/AFM 参考态,再生成中间无序比例。

  • Set Magnetic Moments -> Spin Disorder -> Small-Angle Spin Tilt:先统一磁矩模长,再做无序化和小角偏转。

  • Spin Disorder -> Geometry Filter:磁性结构如果同时经过强几何扰动,后面接几何清洗。

常见问题

运行报错:找不到 eligible magnetic moments。 输入没有可用磁矩,或 apply_elements 没有匹配任何非零磁矩。先用 Set Magnetic MomentsMagnetic Order 初始化。

翻转数量不是精确小数比例。 原子数是离散的,程序按 fraction 转成整数个原子,至少选 1 个且不超过 eligible atom 数。

Cone disorder 看起来和 PM 不一样。 cone disorder 只在参考方向附近随机,不是全空间 PM。全空间随机用 Randomize fraction

输出标签

SpinDis(f={fraction},n={count},mode={flip|rand|cone},s={seed},a={cone_angle})s 只在 use_seed=True 时出现,a 只在 cone disorder 输出中出现。

可复现性

开启 use_seed 后,随机原子选择和方向采样由 seed、输入结构标识、fraction 序号和 sample 序号共同决定。