首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否存在粒子模拟的设计模式或通用方法?

是否存在粒子模拟的设计模式或通用方法?
EN

Software Engineering用户
提问于 2012-03-26 19:44:48
回答 1查看 392关注 0票数 4

我正在C++ (为大学)做一个项目。目标是编写一个程序,可以或多或少地模拟粒子在LHC同步加速器中飞行的光束。

不想急于求成,我和我的团队正在考虑如何实现这一点,我想知道是否有通用的设计模式被用来解决这类问题。

到目前为止,我们提出的一般办法如下:

  • 有一个包含所有对象的World
  • 您可以向这个世界添加对象,如ParticleDipoleQuadrupole
  • 时间被分割成离散的步骤,在每个时间点,对于每个Particle,计算和总结World中每个物体产生的磁力和电磁力(幸运的是电磁力是线性的)。
  • 每个Particle相应地移动(使用一种简单的估计方法来求解微分方程)
  • 保存Particle位置
  • 重复

这似乎是一种很好的方法,但是,例如,很难考虑到可能存在的对称性(例如每个Quadrupole的磁场),这是否是次优的。

考虑到像Quadrupole字段这样的对称性,将Quadrupole字段的空间离散并以某种方式存储起来要容易得多。(由于存储了大约2532个Quadrupoles,这将导致性能的巨大提高,而不必重新计算每个Quadrupole字段)

有什么设计模式吗?World-approach是可行的,还是过时的、糟糕的编程?对称性是怎样的呢,一般情况下是怎样被考虑进去的?

EN

回答 1

Software Engineering用户

回答已采纳

发布于 2012-03-27 02:41:19

检查图形社区的粒子物理模拟。有许多现有的模式(物理求解器和粒子系统的模式),对于这个群体来说,它是一个很好理解的概念,并且有许多实现。你会节省很多时间。

票数 2
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/141607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档