通过消息传递来节约能源?

计算科学 数字 计算物理学 模拟
2021-12-23 10:25:04

个粒子,位置,速度 ,质量为1。每对粒子之间有一个势函数 ,除非粒子靠近足够的。我想更新模拟,以便总能量Nxi(t)vi(t)Ui,j(xi,xj)0i,jUi,j(xi,xj)+i12vi2是守恒的,只使用粒子的局部信息。如果模拟不是太准确也没关系,但我想排除能量呈指数增长(或衰减到 0)的任何可能性,无论使用多少时间步长或它们有多粗略。此外,如果一组粒子与其余粒子断开连接,则该组粒子内的能量应该是守恒的。

使用不完美的数值求解器在物理模拟中保存能量 给出了一些答案,但我认为它们不会在这里工作。即使在任意数量的时间步长和粗略的时间步长之后,我也希望守恒——我认为这排除了辛积分。我希望孤立的粒子组独立于其他地方发生的事情 - 我认为这排除了后期投影。

我想到了一个消息传递方案,其中粒子和势函数传递能量包,这样只有当邻居的能量下降相应的量时,一个人的能量才能上升,调整粒子速度以确保这一点。同样在我考虑周全的方案中,势函数可以“存储”局部能量盈余或赤字,并调整未来的相互作用以使这种盈余/赤字更接近于 0。但我在计算细节和它时遇到了一些困难如果这样的东西已经存在,那就太好了。

1个回答

很抱歉让这个答案成为答案,但我没有足够的声誉发表评论,我觉得以下澄清可能会有所帮助:

虽然辛积分器并不完全守恒能量,但它们使系统的总能量保持 有界,与时间步数无关 [1 p.343 ff]。因此,您的最大误差(关于能量)将是而不是,因此没有指数增长。(顺便说一句,您的问题是本书第 1.4 章中的一个示例)O(h)O(nh)

我想到的另一种方法是将每个时间步表示为一个优化问题,将能量守恒作为等式约束,但这将是一个巨大的额外计算工作。

[1]海尔,恩斯特;卢比希,克里斯蒂安;Wanner,Gerhard几何数值积分。常微分方程的结构保持算法,计算数学中的 Springer 系列 31。柏林:Springer (ISBN 3-540-30663-3/hbk)。十七,644 页。(2006 年)。ZBL1094.65125