我对数值模拟(使用我自己的代码,而不是现成的包)磁场中单个带电粒子的运动很感兴趣。该场在时间和空间上会发生变化,但与回旋加速器频率或拉莫尔半径相比可能不会很快。
有许多众所周知的方法可以对场中粒子的运动方程进行积分。但是由于磁场产生的力具有一些特殊的性质,例如不改变粒子的动能。是否有一些数值程序更适合这种特殊情况,例如。这将提供更准确的模拟并更好地保存绝热不变量(何时应该保存)?
我对数值模拟(使用我自己的代码,而不是现成的包)磁场中单个带电粒子的运动很感兴趣。该场在时间和空间上会发生变化,但与回旋加速器频率或拉莫尔半径相比可能不会很快。
有许多众所周知的方法可以对场中粒子的运动方程进行积分。但是由于磁场产生的力具有一些特殊的性质,例如不改变粒子的动能。是否有一些数值程序更适合这种特殊情况,例如。这将提供更准确的模拟并更好地保存绝热不变量(何时应该保存)?
我相信您正在寻找的是一种辛方法;看:
http://en.wikipedia.org/wiki/Symplectic_integrator
它们旨在精确地节约能源;但是,通过提高一个区域的准确性,与您通常的 Runge-Kutta 方法相比,您的模拟在其他数量(即作为时间的函数的位置)上会有更大的误差。
进一步的研究最终产生了鲍里斯方法。对于恒定的 B 场,它会产生稳定的圆形轨道。