try:
for i,time in enumerate(times):
sim.integrate(time)
code a #calculates componants of planet 1&2
code b #calculates....... 2&3
code c #calculates....... 3&4
code d #calculates....... 4&5
#where a - b are running simultaneously
except rebound.Encounter as error:
print(error)
我在整个有限时间内运行积分,其中代码a-d正在计算天体(行星)的坐标。一旦相邻的一对行星离得太近以至于不舒服,就会出现异常,打印出我的错误。我只需要确保在异常出现之前,代码a-d一次全部工作,以便我可以使用它们来识别哪两个行星有近距离接触。
代码a-d将存储到指针数组中,并在模拟运行时发生变化。 我可以使用什么样的循环/语句同时执行每个代码,直到遇到错误?
如果您有点好奇,sim
是一个反弹(一个N体积分器,即一个可以在重力影响下整合粒子运动的软件包。)变量,我存储的信息我的行星系统。
http://rebound.readthedocs.io/en/latest/ipython/CloseEncounters.html我试图效仿的例子只涉及一个双行星系统。