磁场中的带电粒子轨迹

时间:2018-04-29 16:02:39

标签: python-3.x

我一直试图绘制磁偶极子场中带电粒子的轨迹,试图给出北极光的粗略图形表示。虽然螺旋似乎是我所期望的,但看起来螺旋开始紧密并且变得更宽,就像颗粒以某种方式获得能量一样。我不确定代码中的问题是什么,我会很感激任何指针!

下面显示的是主循环的内容(初始条件,所有都在外面设置)。

# polar to cartesian
r = np.sqrt(X*X+Y*Y+Z*Z)
theta = np.arccos(Z/r)
phi = np.arctan(Y/X)

# magnetic field/mass
Bx = K*(1/(r**(3)))*(2*np.cos(theta)*np.sin(theta)*np.cos(phi)+np.sin(theta)*np.cos(theta)*np.cos(phi))
By = K*(1/(r**(3)))*(2*np.cos(theta)*np.sin(theta)*np.sin(phi)+np.sin(theta)*np.cos(theta)*np.sin(phi))
Bz = K*(1/(r**(3)))*(2*np.cos(theta)*np.cos(theta)-np.sin(theta)*np.sin(theta))

# acceleration components
ax = (1.6*10**(-19))*(vy*Bz - vz*By)
ay = (1.6*10**(-19))*(vz*Bx - vx*Bz)
az = (1.6*10**(-19))*(vx*By - vy*Bx)

# velocity components
vx = vx + ax*dt
vy = vy + ay*dt
vz = vz + az*dt

# position components
X = X + vx*dt + 0.5*ax*dt*dt
Y = Y + vy*dt + 0.5*ay*dt*dt
Z = Z + vz*dt + 0.5*az*dt*dt

# add position values to position vectors
x1.append(X)
y1.append(Y)
z1.append(Z)

当前轨迹的样子(粒子在逐渐增加半径之前以更紧密的螺旋形式从顶部开始):

figure

(我在这个项目中使用Python 3.6)

1 个答案:

答案 0 :(得分:0)

原来这只是时间步长太大的问题。减小时间步长后,轨迹更加合理。