磁有序初始化(Magnetic Order)
Group: Magnetism
Class: MagneticOrderCard
Source: src/NepTrainKit/ui/views/_card/magnetic_order_card.py
功能说明
生成 FM/AFM/PM 初始磁序(magnetic order initialization),用于构建多磁态训练数据基础集。
它最适合的场景是:从一个磁性母相结构出发,一次性生成 FM、AFM 和 PM 初始态。如果你更关心完整工作流而不是单个参数,请先看下面的“操作示例”。
操作示例
场景:从一个磁性母相结构出发,一次性生成 FM、AFM 和 PM 初始态
输入: 一个磁性结构,以及至少一套可信的元素磁矩幅值设置
目标: 为后续自旋相关训练准备多磁序基础集,而不是只保留单一磁矩初始化
参数设置:
magmom_map或default_moment必须先给出幅值来源afm_mode先选k-vector还是group A/Bgen_pm=true时再调pm_count、pm_direction和pm_cone_angle
输出: 同一输入会展开成 FM / AFM / PM 多个分支,并写入不同的 Config_type 与磁矩数组
怎么验证结果合理:
抽查 FM 是否同号、AFM 是否出现正负翻转、PM 是否分布更随机
确认
afm_mode选对后只填写对应字段若 PM 没有生成,先检查
gen_pm是否开启
适用场景与不适用场景
数据症状 (Dataset symptom): 模型只会单一磁序,跨磁序泛化差。
目标任务 (Target objective): 系统覆盖 FM/AFM/PM 分支。
建议添加条件 (Add-it trigger): 研究磁性材料且需多磁序联合训练。
不建议添加条件 (Avoid trigger): 非磁任务或固定单一磁序。
物理提示 (Physics caution): 这组卡片主要写入初始磁矩,不自动保证磁序就是最低能态;后验能量和磁矩收敛仍需另行判断。
输入前提
先定义
magmom_map或合理default_moment。AFM group 模式需先有 Group Label 结果。
参数说明(完整)
format (Format)
UI Label:
Format字段映射 (Field mapping): 序列化键
format<-> 界面标签Format。控件标签 (Caption):
Format。控件解释 (Widget): 文本输入
LineEdit(或可编辑下拉)。类型/范围 (Type/Range): string
默认值 (Default):
"Collinear (scalar)"含义 (Meaning): 磁矩格式 (magmom format)。
对输出规模/物理性的影响: 决定共线标量还是非共线向量表示。
参数联动 / 生效条件: 它决定当前工作流走哪条主分支;先选模式,再填写与该模式对应的字段。
怎么判断该开还是该关: 先用默认值跑小样本;只有当你能明确说明它会改变当前结果分布时,再主动偏离默认设置。
配置建议 (Practical note):
Format可按任务替换为自定义值;建议先用最小样本验证后再批量生成。
axis (Axis)
UI Label:
Axis字段映射 (Field mapping): 序列化键
axis<-> 界面标签Axis。控件标签 (Caption):
Axis。控件解释 (Widget): 区间输入
SpinBoxUnitInputFrame(min/max/step三输入框)。类型/范围 (Type/Range): list[3]
默认值 (Default):
[0.0, 0.0, 1.0]含义 (Meaning): 作用轴/方向 (axis)。
对输出规模/物理性的影响: 改变操作方向定义,直接影响输出分布。
物理直觉 / 典型值: 这类参数主要控制方向、分层或周期;先用最容易人工检查的简单方向和短范围做验证。
推荐范围 (Recommended range):
保守:0 到 0,step 1
平衡:0 到 0,step 0.5
探索:0 到 0,step 2
magmom_map (Magmom Map)
UI Label:
Magmom Map字段映射 (Field mapping): 序列化键
magmom_map<-> 界面标签Magmom Map。控件标签 (Caption):
Magmom Map。控件解释 (Widget): 文本输入
LineEdit(或可编辑下拉)。类型/范围 (Type/Range): string
默认值 (Default):
""含义 (Meaning): 元素磁矩映射 (element moment map)。
对输出规模/物理性的影响: 定义元素到初始磁矩的映射关系。
怎么判断该开还是该关: 只在你明确知道该字段会命中输入结构时填写;不确定时先用最小样本验证命中情况。
配置建议 (Practical note):
Magmom Map可按任务替换为自定义值;建议先用最小样本验证后再批量生成。
use_element_dirs (Use Element Dirs)
UI Label:
Use Element Dirs字段映射 (Field mapping): 序列化键
use_element_dirs<-> 界面标签Use Element Dirs。控件标签 (Caption):
Use Element Dirs。控件解释 (Widget): 勾选开关
CheckBox。类型/范围 (Type/Range): bool
默认值 (Default):
false含义 (Meaning): 元素方向模板开关 (use element directions)。
对输出规模/物理性的影响: 允许不同元素采用不同方向先验。
怎么判断该开还是该关: 先用默认值跑小样本;只有当你能明确说明它会改变当前结果分布时,再主动偏离默认设置。
配置建议 (Practical note):
开启:需要启用
Use Element Dirs对应行为时开启。关闭:希望保持默认/更保守行为时关闭。
default_moment (Default Moment)
UI Label:
Default Moment字段映射 (Field mapping): 序列化键
default_moment<-> 界面标签Default Moment。控件标签 (Caption):
Default Moment。控件解释 (Widget): 数值输入
SpinBoxUnitInputFrame。类型/范围 (Type/Range): float(单值输入)
默认值 (Default):
[0.0]含义 (Meaning): 默认磁矩 (default moment)。
对输出规模/物理性的影响: 未命中映射元素时的后备值。
物理直觉 / 典型值: 先从小范围试跑并抽查输出,再决定是否扩大范围;范围越宽,覆盖越广,但极端构型风险也越高。
推荐范围 (Recommended range):
保守:0.1-0.5
平衡:0.5-1.5
探索:1.5-3.0
apply_elements (Apply Elements)
UI Label:
Apply Elements字段映射 (Field mapping): 序列化键
apply_elements<-> 界面标签Apply Elements。控件标签 (Caption):
Apply Elements。控件解释 (Widget): 文本输入
LineEdit(或可编辑下拉)。类型/范围 (Type/Range): string
默认值 (Default):
""含义 (Meaning): 应用元素列表 (apply elements)。
对输出规模/物理性的影响: 限制哪些元素执行当前磁序策略。
怎么判断该开还是该关: 只在你明确知道该字段会命中输入结构时填写;不确定时先用最小样本验证命中情况。
配置建议 (Practical note):
Apply Elements可按任务替换为自定义值;建议先用最小样本验证后再批量生成。
gen_fm (Gen Fm)
UI Label:
Gen Fm字段映射 (Field mapping): 序列化键
gen_fm<-> 界面标签Gen Fm。控件标签 (Caption):
Gen Fm。控件解释 (Widget): 勾选开关
CheckBox。类型/范围 (Type/Range): bool
默认值 (Default):
true含义 (Meaning): 生成 FM 分支 (generate FM)。
对输出规模/物理性的影响: 控制是否输出铁磁样本。
怎么判断该开还是该关: 先用默认值跑小样本;只有当你能明确说明它会改变当前结果分布时,再主动偏离默认设置。
配置建议 (Practical note):
开启:需要启用
Gen Fm对应行为时开启。关闭:希望保持默认/更保守行为时关闭。
gen_afm (Gen AFM)
UI Label:
Gen AFM字段映射 (Field mapping): 序列化键
gen_afm<-> 界面标签Gen AFM。控件标签 (Caption):
Gen AFM。控件解释 (Widget): 勾选开关
CheckBox。类型/范围 (Type/Range): bool
默认值 (Default):
true含义 (Meaning): 生成 AFM 分支 (generate AFM)。
对输出规模/物理性的影响: 控制是否输出反铁磁样本。
怎么判断该开还是该关: 先用默认值跑小样本;只有当你能明确说明它会改变当前结果分布时,再主动偏离默认设置。
配置建议 (Practical note):
开启:需要启用
Gen AFM对应行为时开启。关闭:希望保持默认/更保守行为时关闭。
afm_mode (AFM Mode)
UI Label:
AFM Mode字段映射 (Field mapping): 序列化键
afm_mode<-> 界面标签AFM Mode。控件标签 (Caption):
AFM Mode。控件解释 (Widget): 下拉选择
ComboBox(显示文本与序列化值可能不同)。类型/范围 (Type/Range): enum(string)
默认值 (Default):
"k-vector"含义 (Meaning): AFM 构造模式 (AFM mode)。
对输出规模/物理性的影响: 决定用 k-vector 还是 group 构造正负子晶格。
参数联动 / 生效条件: 先选
k-vector还是group A/B;后续只填写与当前模式对应的字段。怎么判断该开还是该关: 先用默认值跑小样本;只有当你能明确说明它会改变当前结果分布时,再主动偏离默认设置。
物理直觉 / 典型值: 它决定程序走哪种离散策略;先选对模式,再去调该模式下真正起作用的数值参数。
推荐范围 (Recommended range):
保守:k-vector 先跑通
平衡:按结构切 group
探索:混合模式需审计
afm_kvec (AFM Kvec)
UI Label:
AFM Kvec字段映射 (Field mapping): 序列化键
afm_kvec<-> 界面标签AFM Kvec。控件标签 (Caption):
AFM Kvec。控件解释 (Widget): 文本输入
LineEdit(或可编辑下拉)。类型/范围 (Type/Range): string
默认值 (Default):
"111"含义 (Meaning): AFM k 向量 (AFM k-vector)。
对输出规模/物理性的影响: 控制 AFM 反转周期方向。
参数联动 / 生效条件: 只有
afm_mode="k-vector"时它才决定 AFM 正负翻转周期。怎么判断该开还是该关: 先用默认值跑小样本;只有当你能明确说明它会改变当前结果分布时,再主动偏离默认设置。
配置建议 (Practical note):
AFM Kvec可按任务替换为自定义值;建议先用最小样本验证后再批量生成。
afm_group_a (AFM Group A)
UI Label:
AFM Group A字段映射 (Field mapping): 序列化键
afm_group_a<-> 界面标签AFM Group A。控件标签 (Caption):
AFM Group A。控件解释 (Widget): 文本输入
LineEdit(或可编辑下拉)。类型/范围 (Type/Range): string
默认值 (Default):
"A"含义 (Meaning): AFM A 组标签 (AFM group A)。
对输出规模/物理性的影响: group 模式下正向子晶格标签。
参数联动 / 生效条件: 只有
afm_mode="group A/B"时它才用于指定正号子晶格标签。怎么判断该开还是该关: 先用默认值跑小样本;只有当你能明确说明它会改变当前结果分布时,再主动偏离默认设置。
配置建议 (Practical note):
AFM Group A可按任务替换为自定义值;建议先用最小样本验证后再批量生成。
afm_group_b (AFM Group B)
UI Label:
AFM Group B字段映射 (Field mapping): 序列化键
afm_group_b<-> 界面标签AFM Group B。控件标签 (Caption):
AFM Group B。控件解释 (Widget): 文本输入
LineEdit(或可编辑下拉)。类型/范围 (Type/Range): string
默认值 (Default):
"B"含义 (Meaning): AFM B 组标签 (AFM group B)。
对输出规模/物理性的影响: group 模式下反向子晶格标签。
参数联动 / 生效条件: 只有
afm_mode="group A/B"时它才用于指定负号子晶格标签。怎么判断该开还是该关: 先用默认值跑小样本;只有当你能明确说明它会改变当前结果分布时,再主动偏离默认设置。
配置建议 (Practical note):
AFM Group B可按任务替换为自定义值;建议先用最小样本验证后再批量生成。
afm_zero_unknown (AFM Zero Unknown)
UI Label:
AFM Zero Unknown字段映射 (Field mapping): 序列化键
afm_zero_unknown<-> 界面标签AFM Zero Unknown。控件标签 (Caption):
AFM Zero Unknown。控件解释 (Widget): 勾选开关
CheckBox。类型/范围 (Type/Range): bool
默认值 (Default):
true含义 (Meaning): 未知元素置零 (zero unknown moments)。
对输出规模/物理性的影响: 防止未配置元素引入噪声磁矩。
参数联动 / 生效条件: 只在 group 模式下用于处理既不属于 A 也不属于 B 的原子。
怎么判断该开还是该关: 先用默认值跑小样本;只有当你能明确说明它会改变当前结果分布时,再主动偏离默认设置。
配置建议 (Practical note):
开启:需要启用
AFM Zero Unknown对应行为时开启。关闭:希望保持默认/更保守行为时关闭。
gen_pm (Gen PM)
UI Label:
Gen PM字段映射 (Field mapping): 序列化键
gen_pm<-> 界面标签Gen PM。控件标签 (Caption):
Gen PM。控件解释 (Widget): 勾选开关
CheckBox。类型/范围 (Type/Range): bool
默认值 (Default):
false含义 (Meaning): 生成 PM 分支 (generate PM)。
对输出规模/物理性的影响: 控制是否输出顺磁样本。
参数联动 / 生效条件: 关闭时所有
pm_*字段都只是保留配置,不会真正参与当前输出。怎么判断该开还是该关: 先用默认值跑小样本;只有当你能明确说明它会改变当前结果分布时,再主动偏离默认设置。
配置建议 (Practical note):
开启:需要启用
Gen PM对应行为时开启。关闭:希望保持默认/更保守行为时关闭。
pm_count (PM Count)
UI Label:
PM Count字段映射 (Field mapping): 序列化键
pm_count<-> 界面标签PM Count。控件标签 (Caption):
PM Count。控件解释 (Widget): 数值输入
SpinBoxUnitInputFrame。类型/范围 (Type/Range): int(单值输入)
默认值 (Default):
[10]含义 (Meaning): PM 样本数 (PM sample count)。
对输出规模/物理性的影响: 控制 PM 分支输出规模。
参数联动 / 生效条件: 只有
gen_pm=true时才决定额外 PM 结构数量。物理直觉 / 典型值: 它主要决定每帧会扩出多少个结构,直接影响后续计算预算与重复率。
推荐范围 (Recommended range):
保守:5-10
平衡:10-30
探索:30+ 配过滤
pm_direction (PM Direction)
UI Label:
PM Direction字段映射 (Field mapping): 序列化键
pm_direction<-> 界面标签PM Direction。控件标签 (Caption):
PM Direction。控件解释 (Widget): 下拉选择
ComboBox(显示文本与序列化值可能不同)。类型/范围 (Type/Range): enum(string)
默认值 (Default):
"sphere"含义 (Meaning): PM 方向分布 (PM direction distribution)。
对输出规模/物理性的影响: 决定顺磁方向采样模式。
参数联动 / 生效条件: 只有
gen_pm=true时才控制 PM 方向分布;cone模式还会继续读取pm_cone_angle。怎么判断该开还是该关: 先用默认值跑小样本;只有当你能明确说明它会改变当前结果分布时,再主动偏离默认设置。
物理直觉 / 典型值: 它决定程序走哪种离散策略;先选对模式,再去调该模式下真正起作用的数值参数。
推荐范围 (Recommended range):
保守:sphere
平衡:cone
探索:定向分布仅专题研究
pm_cone_angle (PM Cone Angle)
UI Label:
PM Cone Angle字段映射 (Field mapping): 序列化键
pm_cone_angle<-> 界面标签PM Cone Angle。控件标签 (Caption):
PM Cone Angle。控件解释 (Widget): 数值输入
SpinBoxUnitInputFrame。类型/范围 (Type/Range): float(单值输入)
默认值 (Default):
[30.0]含义 (Meaning): PM 锥角 (PM cone angle)。
对输出规模/物理性的影响: 仅在 cone 模式控制偏离主轴幅度。
参数联动 / 生效条件: 只有
gen_pm=true且pm_direction="cone"时它才是有效角度参数。物理直觉 / 典型值: 它通常是控制变化幅度的主旋钮;先从能看清趋势的小幅度起步,再决定是否扩到探索档。
推荐范围 (Recommended range):
保守:15-30
平衡:30-60
探索:60-150
pm_balanced (PM Balanced)
UI Label:
PM Balanced字段映射 (Field mapping): 序列化键
pm_balanced<-> 界面标签PM Balanced。控件标签 (Caption):
PM Balanced。控件解释 (Widget): 勾选开关
CheckBox。类型/范围 (Type/Range): bool
默认值 (Default):
true含义 (Meaning): PM 平衡开关 (PM balanced switch)。
对输出规模/物理性的影响: 控制方向采样是否保持正负平衡。
怎么判断该开还是该关: 先用默认值跑小样本;只有当你能明确说明它会改变当前结果分布时,再主动偏离默认设置。
配置建议 (Practical note):
开启:需要启用
PM Balanced对应行为时开启。关闭:希望保持默认/更保守行为时关闭。
use_seed (Use Seed)
UI Label:
Use Seed字段映射 (Field mapping): 序列化键
use_seed<-> 界面标签Use Seed。控件标签 (Caption):
Use Seed。控件解释 (Widget): 勾选开关
CheckBox。类型/范围 (Type/Range): bool
默认值 (Default):
false含义 (Meaning): 是否启用固定随机种子 (deterministic seed switch)。
对输出规模/物理性的影响: 开启后可复现实验;关闭后每次采样分布会变化。
怎么判断该开还是该关: 做可复现实验或要对比不同参数时开启;纯探索阶段可以先关闭以增加随机覆盖。
配置建议 (Practical note):
开启:需要可复现对比时开启。
关闭:探索阶段可关闭以增加随机覆盖。
seed (Seed)
UI Label:
Seed字段映射 (Field mapping): 序列化键
seed<-> 界面标签Seed。控件标签 (Caption):
Seed。控件解释 (Widget): 数值输入
SpinBoxUnitInputFrame。类型/范围 (Type/Range): int(单值输入)
默认值 (Default):
[0]含义 (Meaning): 随机种子值 (random seed value)。
对输出规模/物理性的影响: 只影响随机路径,不改变物理模型本身。
参数联动 / 生效条件:
seed只有在use_seed=true时才真正固定随机路径。物理直觉 / 典型值: 先从小范围试跑并抽查输出,再决定是否扩大范围;范围越宽,覆盖越广,但极端构型风险也越高。
推荐范围 (Recommended range):
保守:0(随机)
平衡:1-99(可复现)
探索:100-9999(多 seed 对比)
推荐预设(可直接复制 JSON)
保守(Safe)
{
"class": "MagneticOrderCard",
"check_state": true,
"format": "Collinear (scalar)",
"axis": [
0.0,
0.0,
1.0
],
"magmom_map": "",
"use_element_dirs": false,
"default_moment": [
0.0
],
"apply_elements": "",
"gen_fm": true,
"gen_afm": true,
"afm_mode": "k-vector",
"afm_kvec": "111",
"afm_group_a": "A",
"afm_group_b": "B",
"afm_zero_unknown": true,
"gen_pm": false,
"pm_count": [
10
],
"pm_direction": "sphere",
"pm_cone_angle": [
30.0
],
"pm_balanced": true,
"use_seed": false,
"seed": [
0
]
}
平衡(Balanced)
{
"class": "MagneticOrderCard",
"check_state": true,
"format": "Collinear (scalar)",
"axis": [
0.0,
0.0,
1.0
],
"magmom_map": "",
"use_element_dirs": false,
"default_moment": [
0.0
],
"apply_elements": "",
"gen_fm": true,
"gen_afm": true,
"afm_mode": "k-vector",
"afm_kvec": "111",
"afm_group_a": "A",
"afm_group_b": "B",
"afm_zero_unknown": true,
"gen_pm": false,
"pm_count": [
10
],
"pm_direction": "sphere",
"pm_cone_angle": [
30.0
],
"pm_balanced": true,
"use_seed": false,
"seed": [
0
]
}
激进/探索(Aggressive/Exploration)
{
"class": "MagneticOrderCard",
"check_state": true,
"format": "Collinear (scalar)",
"axis": [
0.0,
0.0,
1.0
],
"magmom_map": "",
"use_element_dirs": false,
"default_moment": [
0.0
],
"apply_elements": "",
"gen_fm": true,
"gen_afm": true,
"afm_mode": "k-vector",
"afm_kvec": "111",
"afm_group_a": "A",
"afm_group_b": "B",
"afm_zero_unknown": true,
"gen_pm": true,
"pm_count": [
30
],
"pm_direction": "sphere",
"pm_cone_angle": [
30.0
],
"pm_balanced": true,
"use_seed": true,
"seed": [
0
]
}
推荐组合
Group Label -> Magnetic Order -> Magmom Rotation: 形成覆盖 AFM/FM/PM 的完整磁性流程。
磁矩写入类卡片应放在真正依赖
initial_magmoms的旋转、螺旋或 canting 卡片之前。磁性流程常与
Group Label配合,用于稳定复用 A/B 或层状分组。
常见问题与排查
输出没有明显变化时,先检查输入是否已有初始磁矩,或当前是否真的开启了 FM/AFM/PM/旋转分支。
如果结果不合理,先看磁矩模长是否被意外改坏,再检查方向参数、group 标签或 k-vector 是否匹配结构。
这些卡片主要写入初始磁矩,不保证一定对应真实磁基态;是否物理合理仍需要结合后续计算结果判断。
输出标签 / 元数据变更
该卡片输出的 Config_type 标签模式:
MagFM/MagFMncMagAFM.../MagAFM...nc(k-vector or group mode variants)MagPM.../MagPM...nc(seed suffix may be appended)
Writes
initial_magmomsarray viaset_initial_magnetic_moments(...).
可复现性说明
设置
use_seed=true且固定seed,可在相同输入顺序下复现实验。上游随机卡片或输入顺序变化仍会改变最终样本集合。
建议把 seed 与 pipeline 配置一起版本化记录。