LAMMPS自旋进动与时间积分
固定单格点在5T磁场中实际进动,逐点比较Larmor解析解、长度守恒和时间步减半。
阅读本篇目录
自旋最小化寻找稳定方向;自旋动力学描述方向怎样随时间变化。本例在单个固定格点上施加z向磁场,直接比较经典Larmor进动解析解,帮助理解输入中的自旋长度、磁场和积分时间步。
下载三篇共用的完整输入、实算数组、原生科学输出和绘图包。先按共用运行步骤运行一次。自旋最小化与力矩定义见既有自旋教程。
1. 完整单格点输入#
cat inputs/spin-B5/input.lammps
head -n 12 inputs/spin-B5/atoms.dump
units metal
atom_style spin
atom_modify map array
boundary p p p
region box block -5 5 -5 5 -5 5 units box
create_box 1 box
create_atoms 1 single 0 0 0 units box
mass 1 1
set atom 1 spin 1 1 0 0
pair_style spin/exchange 3.0
pair_coeff * * exchange 3.0 0.0 0.0 1.0
fix external all precession/spin zeeman 5 0 0 1
fix_modify external energy yes
fix integrator all nve/spin lattice frozen
compute magnetic all property/atom sp spx spy spz fmx fmy fmz
thermo 100
thermo_style custom step time pe
thermo_modify norm no format float %.17g
dump atoms all custom 50 atoms.dump id type x y z c_magnetic[*]
dump_modify atoms sort id format float %.17g
timestep 0.001
run 5000
atom_style spin保存磁矩大小和单位方向;set atom 1 spin 1 1 0 0表示大小1,初始方向沿x。atom_modify map array是自旋积分需要的原子映射。nve/spin lattice frozen仅积分自旋,格点不动。
本例使用 spin/exchange 的有限3 Å截断,但交换系数为0,因此没有人为加入另一格点的交换相互作用;这个兼容自旋的pair入口也提供积分算法需要的截断信息。静态最小化中能使用的 pair_style zero 不能直接照搬为这里的所有动态积分配置。
precession/spin zeeman 5 0 0 1施加5 T、z方向磁场。没有阻尼和有限温度自旋热浴,所以这里是连续进动,不是自旋逐渐对齐磁场的弛豫过程。
2. 先认识输出字段#
c_magnetic[1]是磁矩大小,接下来三列为方向sx/sy/sz,最后三列为磁进动向量。后者单位是频率尺度,不能当成原子机械受力。
本构建固定 g=2、μB=5.78901e-5 eV/T、h=4.135667403e-3 eV·ps,因此 ω=gμB B/ħ。5 T时频率约 0.879505507 rad/ps,周期约 7.143998 ps。初始自旋沿x,预期 sx=cos(ωt),sy=sin(ωt),sz=0。
3. 实际轨迹和步长比较#

三组分别为零场、5 T且dt=0.001 ps、5 T且dt=0.0005 ps,均运行5 ps,保存101帧。零场方向保持;5 T下长度始终为1、格点位置不变。全向量相对解析解的最大分量误差约 1.685e-08 和 4.210e-09,步长减半后误差约降为四分之一。
module load sisl/0.16.4
python analyze.py
python plot.py
这只检查已有数据和重画,不重复积分。正式磁性体系还需要交换、各向异性、阻尼、温度或移动晶格的合适参数;单格点解析例不能给出材料Curie温度、畴壁速度或量子电子实时响应。