辛积分器帮助
我正在尝试开发物理模拟,并且想要实现四阶 辛积分 方法。问题是我的数学一定是错误的,因为使用辛积分器时我的模拟根本不起作用(与模拟效果相当好的四阶龙格-库塔积分器相比)。我一直在谷歌上搜索这个问题,我能找到的都是关于这个主题的科学文章。我尝试采用文章中使用的方法,但没有运气。我想知道是否有人有使用辛积分器进行模拟的源代码,最好是模拟引力场,但任何辛积分器都可以。源代码使用什么语言并不重要,但我希望使用 C 风格语法的语言。谢谢!
I'm trying to develop a physics simulation and I want to implement a fourth-order symplectic integration method. The problem is that I must be getting the math wrong, since my simulation is not working at all when using the symplectic integrator (as compared to a fourth-order Runge-Kutta integrator that works reasonably well for the simulation). I've been googling this forever and all I can find are scientific articles on the subject. I tried to adapt the method used in the articles, but am having no luck. I want to know if anyone has source code for a simulation that makes use of symplectic integrators, preferably to simulate a gravitational field but any symplectic integrator would do. What language the source is in doesn't matter too much, but I would appreciate a language using C-style syntax. Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
正如您所要求的源代码:从 此处 您可以下载 MATLAB 和 FORTRAN 代码哈密顿系统的辛方法和可逆问题的对称方法。还有许多其他处理微分方程的方法。
在这篇论文中您可以找到算法的描述。
编辑
如果您使用 Mathematica 这也可能有帮助。
As you asked for source code: From HERE you can download MATLAB and FORTRAN code for symplectic methods for Hamiltonian systems and symmetric methods for reversible problems. And a lot of other methods for dealing with diff equations too.
And in THIS paper you can find the description of the algorithms.
Edit
If you use Mathematica this may help too.
这是基于 Verlet 方案的四阶合成方法的源代码。
$\log_{10}(\Delta t)$ 与 $\log_{10}(Error)$ 的线性回归将显示斜率为 4,正如理论所预期的那样(参见下图)。
更多信息请访问此处、此处 或 此处。
Here is the source code for a fourth order composition method based on the Verlet scheme.
A linear regression of $\log_{10}(\Delta t)$ vs. $\log_{10}(Error)$ will show a slope of 4, as expected from theory (see the graph below).
More information can be found here, here or here.
我从事加速器物理领域(同步加速器光源),在对穿过磁场的电子进行建模时,我们定期使用辛积分器。我们的基本主力是四阶辛积分器。正如上面的评论所指出的,不幸的是这些代码没有很好地标准化或容易获得。
一种基于 Matlab 的开源跟踪代码称为 Accelerator Toolbox。 Sourceforge 有一个名为 atcollab 的项目。在这里查看凌乱的维基
https://sourceforge.net/apps/mediawiki/atcollab/index.php ?title=Main_Page
对于集成商,您可以查看这里:
https://sourceforge.net/p/atcollab/code- 0/235/tree/trunk/atintegrators/
积分器是用 C 语言编写的,并通过 MEX 链接到 Matlab。
因为电子是相对论性的,所以动能项和势能项看起来与非相对论性情况略有不同,但仍然可以将哈密顿量写为 H=H1+H2,其中 H1 是漂移,H2 是冲击(例如来自四极磁铁)或其他磁场)。
I am in the field of accelerator physics (synchrotron light sources), and in modelling electrons moving through magnetic fields, we use symplectic integrators on a regular basis. Our basic workhorse is a 4th order symplectic integrator. As noted in the comments above, unfortunately these codes are not so well standardized or easilly available.
One open source Matlab based tracking code is called Accelerator Toolbox. There is a Sourceforge project called atcollab. See a messy wiki here
https://sourceforge.net/apps/mediawiki/atcollab/index.php?title=Main_Page
For the integrators, you can look here:
https://sourceforge.net/p/atcollab/code-0/235/tree/trunk/atintegrators/
The integrators are written in C with MEX link to Matlab.
Because the electrons are relativistic the kinetic and potential terms look a little different than in the non-relativistic case, but one can still write the Hamiltonian as H=H1+H2 where H1 is a drift and H2 is a kick (say from quadrupole magnets or other magnetic fields).