资讯动态

LAMMPS 磁性自旋模拟:pair_style spin/neel 奈尔各向异性模型的原理与使用指南

发布时间:2026/10/17 10:26:47 来源:尧图企业网站定制
科研科学计算高性能计算【免费下载链接】lammpsPublic development project of the LAMMPS MD software package项目地址https://gitcode.com/gh_mirrors/la/lammps点击查看免费下载pair_style spin/neel是 LAMMPS SPIN 包中用于描述磁性自旋对之间奈尔Néel相互作用伪偶极 伪四极耦合的成对势风格。它模拟自旋与晶格振动耦合体系中的磁弹耦合效应每个自旋会因这种 DM 型相互作用受到一个磁力矩 $\boldsymbol{\omega}$其所属原子还会受到一个力 $\mathbf{F}$仅用于自旋-晶格计算。读完本文你将掌握该势风格的语法、参数含义、物理模型推导、源码实现要点并能基于仓库中的示例与测试配置直接搭建含spin/neel的自旋动力学输入脚本。语法与参数pair_style spin/neel的语法为pair_style spin/neel cutoff其中cutoff是全局截断距离单位为 metal 单位制下的长度即 Å。典型的调用方式来自 pair_spin_neel.rst 的 Examples 一节pair_style spin/neel 4.0 pair_coeff * * neel 4.0 0.0048 0.234 1.168 2.6905 0.705 0.652 pair_coeff 1 2 neel 4.0 0.0048 0.234 1.168 0.0 0.0 1.0第二条pair_coeff展示了如何为不同类型对类型 1 与类型 2单独指定参数并将四极项系数置零l1 l2 0.0l3 1.0从而只保留伪偶极贡献。物理模型奈尔对各项异性哈密顿量该风格在自旋对 $i,j$ 之间计算如下的奈尔相互作用哈密顿量$$ \mathcal{H}{\mathrm{Néel}} -\sum{i\neq j}^{N} \Bigg[ g_1(r_{ij})\left((\mathbf{e}_{ij}\cdot\mathbf{s}i)(\mathbf{e}{ij}\cdot\mathbf{s}_j)-\frac{\mathbf{s}_i\cdot\mathbf{s}_j}{3}\right)q_1(r_{ij})\left((\mathbf{e}_{ij}\cdot\mathbf{s}_i)^2-\frac{\mathbf{s}_i\cdot\mathbf{s}j}{3}\right)\left((\mathbf{e}{ij}\cdot\mathbf{s}_j)^2-\frac{\mathbf{s}_i\cdot\mathbf{s}_j}{3}\right)q_2(r_{ij})\left((\mathbf{e}_{ij}\cdot\mathbf{s}i)(\mathbf{e}{ij}\cdot\mathbf{s}j)^3(\mathbf{e}{ij}\cdot\mathbf{s}j)(\mathbf{e}{ij}\cdot\mathbf{s}_i)^3\right)\Bigg] $$其中 $\mathbf{s}_i$、$\mathbf{s}j$ 是两个粒子的相邻磁自旋$r{ij}|\mathbf{r}_i-\mathbf{r}j|$ 是两粒子间距$\mathbf{e}{ij}\frac{\mathbf{r}_i-\mathbf{r}_j}{|\mathbf{r}i-\mathbf{r}j|}$ 是归一化间距矢量。$g_1$、$q_1$、$q_2$ 是定义偶极与四极贡献强度的三个距离函数它们由两个基本函数 $g(r{ij})$ 与 $q(r{ij})$ 组合而来$$ \begin{aligned} g_1(r_{ij}) g(r_{ij}) \frac{12}{35},q(r_{ij}) \ q_1(r_{ij}) \frac{9}{5},q(r_{ij}) \ q_2(r_{ij}) -\frac{2}{5},q(r_{ij}) \end{aligned} $$而 $g(r_{ij})$ 与 $q(r_{ij})$ 采用与交换相互作用拟合相同的 Bethe-Slater 函数形式$$ J(r_{ij}) 4a\left(\frac{r_{ij}}{d}\right)^2\left(1-b\left(\frac{r_{ij}}{d}\right)^2\right)e^{-\left(\frac{r_{ij}}{d}\right)^2}\Theta(R_c-r_{ij}) $$其中 $a$、$b$、$d$ 是定义在对应pair_coeff命令中的三个常量系数$\Theta(R_c-r_{ij})$ 是 Heaviside 阶跃函数保证相互作用在截断半径 $R_c$ 之外严格为零。这些系数需要被拟合使上述函数与所研究材料的磁弹常数数值匹配。该函数及其参数化的更多说明与示例参见 (Tranchida) 的论文更多参数化示例将在后续工作中提供。参数解析与单位换算源码级说明在 pair_spin_neel.cpp 的coeff()方法L89-131中pair_coeff的第 3 个参数必须是字面量neel否则报Incorrect args in pair_style command且参数总数必须为 10。随后按如下顺序解析参数位置源码变量存储数组物理含义arg[3]rijcut_spin_neel截断距离 $R_c$arg[4]k1g1/g1_mechBethe-Slater 中 $a_g$磁/力通道量纲不同arg[5]k2g2无量纲系数 $b_g$arg[6]k3g3长度系数 $d_g$单位 Åarg[7]l1q1/q1_mechBethe-Slater 中 $a_q$arg[8]l2q2无量纲系数 $b_q$arg[9]l3q3长度系数 $d_q$单位 Å这里存在一个关键的双通道存储设计见 pair_spin_neel.h 的注释g1 in eV, g2 adim, g3 in Ang能量/力通道g1_mech[i][j] k1、q1_mech[i][j] l1直接以 eV 量纲保存用于计算原子受力compute_neel_mech与能量compute_neel_energy自旋进动通道g1[i][j] k1/hbar、q1[i][j] l1/hbar除以约化普朗克常数hbar后用于计算自旋磁力矩compute_neel。其中hbar在基类 pair_spin.cpp 中定义为force-hplanck/MY_2PI单位 eV·ps·rad⁻¹。这正是spin/neel风格在计算磁力矩与机械力时使用不同量纲系数的原因也是文档中示例0.0048 0.234 1.168 2.6905 0.705 0.652需要六个系数并伴随量纲约定meV/Å 级别的能量、无量纲系数、Å 级长度的底层依据。settings()方法L64-83解析全局截断距离并会在已经分配数组后把所有显式设置过的类型对截断统一重置为全局值init_one()L137-154会强制要求所有类型对的系数均已设置否则报错All pair coeffs are not set并给出当前pair_coeff设置状态便于排查遗漏。源码实现剖析能量、磁力矩与机械力的计算路径compute()L169-281是核心入口它遍历每个原子及其邻居计算间距平方rsq与归一化矢量eij当rsq cut^2时依次调用compute_neel(i,j,rsq,eij,fmi,spi,spj)L376-445计算作用在自旋上的磁力矩 $fmi$其中对每个系数按 $r_{ij}$ 评估 Bethe-Slater 函数ra rsq/g3/g3、gr 4*g1*ra*(1-g2*ra)*exp(-ra)再合成伪偶极项pdx/pdy/pdz与伪四极项pq1、pq2三个贡献compute_neel_mech(...)L449-576当lattice_flag为真自旋-晶格计算时额外计算原子机械力 $fi$其中通过解析导数dgij、dq1ij等求取力并乘以0.5因子compute_neel_energy(...)L580-620返回 0.5 倍的三项能量和偶极epd、四极epq1、epq2。力与力矩通过f[i][0..2]、fm[i][0..2]累积到原子数组并支持newton_pair优化能量计入emag[i]每个原子的磁能列表内存按需增长最终通过ev_tally_xyz进入全局能量/压力统计vflag_fdotr时调用virial_fdotr_compute()计算维里项。lattice_flag并非由本风格自身设置而是在PairSpin::init_style()中通过dynamic_castFixNVESpin*从fix nve/spin获取见 pair_spin.cpp。也就是说是否计算自旋-晶格耦合机械力取决于输入脚本中fix nve/spin的lattice关键字moving表示原子运动、计算机械力frozen表示固定晶格、仅做自旋动力学这与 fix_nve_spin.rst 的说明一致。完整可运行示例基于 hcp 钴仓库中的 examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp 是可直接运行的 hcp 钴示例其中就保留了spin/neel的完整pair_coeff参数默认被注释供与spin/exchange对照。在其基础上叠加奈尔项的最小完整脚本为clear units metal atom_style spin dimension 3 boundary p p p # 串行sametag算法要求建立原子映射 atom_modify map array lattice hcp 2.5071 region box block 0.0 5.0 0.0 5.0 0.0 5.0 create_box 1 box create_atoms 1 box mass 1 58.93 set group all spin/random 31 1.72 velocity all create 100 4928459 rot yes dist gaussian pair_style hybrid/overlay eam/alloy spin/exchange 4.0 spin/neel 4.0 pair_coeff * * eam/alloy Co_PurjaPun_2012.eam.alloy Co pair_coeff * * spin/exchange exchange 4.0 -0.3593 1.135028015e-05 1.0645 offset yes pair_coeff * * spin/neel neel 4.0 0.0048 0.234 1.168 2.6905 0.705 0.652 neighbor 0.1 bin neigh_modify every 10 check yes delay 20 fix 1 all precession/spin anisotropy 0.01 0.0 0.0 1.0 fix_modify 1 energy yes fix 2 all langevin/spin 0.0 0.0 21 fix 3 all nve/spin lattice moving timestep 0.0001 compute out_mag all spin compute out_pe all pe variable magnorm equal c_out_mag[4] variable emag equal c_out_mag[5] thermo_style custom step time v_magnorm pe v_emag temp press etotal thermo 50 run 1000要点说明units metal下距离为 Å、能量为 eV与截断4.0Å及系数量纲一致atom_style spin为使用所有pair/spin风格的前提见 atom_style.rstatom_modify map array是 SPIN 串行算法sametag 机制的必需设置fix nve/spin文档也明确要求先定义原子映射spin/neel通过hybrid/overlay与eam/alloy、spin/exchange叠加eam/alloy提供原子间势spin/exchange提供交换相互作用spin/neel额外提供奈尔磁弹各向异性贡献该脚本中lattice moving使lattice_flag为真因此spin/neel会同时计算机械力适合自旋-晶格磁弹动力学研究。单元测试验证仓库在 unittest/force-styles/tests/spin-pair-neel.yaml 中提供了该风格的回归测试配置前置条件为atom spin、pair spin/neel、fix nve/spin使用pair_style spin/neel 4.0与pair_coeff * * neel 4.0 0.0048 0.234 1.168 2.6905 0.705 0.652在 54 个原子的体系上以epsilon: 5e-13精度校验初始/运行后的对势能、应力张量、原子力与磁力矩init_mag_forces/run_mag_forces。这说明该风格的能量、力与磁力矩计算均有严格的数值基准可对照验证脚本在 CI 中可复现。与其他 spin 系风格及配套命令的关系spin/neel是 SPIN 包中 6 个pair/spin风格之一其余为spin/exchange、spin/exchange/biquadratic、spin/dmi、spin/dipole/cut、spin/dipole/long、spin/magelec见 src/SPIN 目录。典型组合pair_style spin/exchange定义交换相互作用对自旋施加磁力矩并对原子施力pair_style spin/neel补充奈尔伪偶极-伪四极磁弹耦合fix precession/spin施加外磁场塞曼项或单轴/立方各向异性fix langevin/spin对自旋施加 Langevin 恒温器与磁阻尼fix nve/spin对自旋-晶格体系做辛积分lattice moving/lattice frozenmin/spin对自旋构型做能量最小化compute spin输出总磁化、自旋温度、磁能等平均量compute property/atom输出逐原子自旋取向与磁力详见 Howto_spins.rst。限制与注意事项所有pair/spin风格都属于 SPIN 包仅在以该包构建 LAMMPS 且声明atom_style spin时才可用SPIN 包内容见 Packages_details.rst构建时需启用 SPIN 包详见 LAMMPS 手册中的 Build package 页面说明所有类型对的pair_coeff都必须设置否则运行初始化阶段会直接报错终止pair_coeff中的六个物理系数$a,b,d$ 各两组需针对目标材料的磁弹常数拟合仓库示例给出的数值0.0048 0.234 1.168 2.6905 0.705 0.652对应 hcp 钴的自旋-晶格计算不可不加甄别地套用于其他材料该风格默认无额外选项Default: none。参考文献(Tranchida) Tranchida, Plimpton, Thibaudeau and Thompson, Massively parallel symplectic algorithm for coupled magnetic spin dynamics and molecular dynamics, Journal of Computational Physics, 372, 406-425, (2018)。该文同时是 pair_spin_neel.cpp 头注释中要求引用的出处奈尔力矩/力的完整推导细节均可溯源至此。赞分享科研科学计算高性能计算【免费下载链接】lammpsPublic development project of the LAMMPS MD software package项目地址https://gitcode.com/gh_mirrors/la/lammps点击查看免费下载相关推荐LAMMPS 磁性自旋的偶极-偶极相互作用pair_style spin/dipole/cut 与 spin/dipole/long 完整指南LAMMPS 磁性自旋的偶极 偶极相互作用pair_style spin/dipole/cut 与 spin/dipole/long 完整指南 导读 本文基于科研科学计算高性能计算LAMMPS pair_style spin/dmi 完全指南Dzyaloshinskii–Moriya 相互作用的自旋动力学建模LAMMPS pair_style spin/dmi 完全指南Dzyaloshinskii–Moriya 相互作用的自旋动力学建模 本文基于 LAMMPS 官科研科学计算高性能计算RIOT OS PCF857X I2C I/O 扩展器测试应用完全指南编译、配置与 Shell 命令实战RIOT OS PCF857X I2C I/O 扩展器测试应用完全指南编译、配置与 Shell 命令实战 本文以 RIOT OS 仓库中 tests/driv科研科学计算高性能计算上一篇wp-calypso 中的 Image StudioWordPress 端 AI 图像编辑与生成插件的架构、集成与开发指南下一篇ROFL播放器完整上手教程英雄联盟回放文件解析、播放与数据导出一文讲透创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑