In [2]:
import matplotlib.pyplot as plt
import numpy as np
import matplotlib as mpl
mpl.rcParams['legend.fontsize'] = 10
from mpl_toolkits.mplot3d import Axes3D
In [19]:
%matplotlib inline
In [1292]:
R=2.4
c1 = 3 #Originally 3
c2 = 4.7 #Originally at 8.7
c3 = -.11
In [1]:
fig = plt.figure()
ax = fig.gca(projection='3d')
p = np.linspace(0, 2 * np.pi, 5000)
z = p*13/(2*np.pi)
theta = c1*p + c2*p**2 + c3*p**3
x = R * np.cos(theta)
y = R * np.sin(theta)
r = np.sqrt(x**2 + y**2)
ax.plot(x, y, z, label='solenoid')
ax.legend()
plt.show()
In [1294]:
I = 0.5 #amps
mu = 1 #FIXME
In [ ]:
In [1295]:
r_vec[2]
Out[1295]:
In [1296]:
def B(zprime):
B = 0
for i in range(len(x)-1):
dx = x[i+1] - x[i]
dy = y[i+1] - y[i]
dz = z[i+1] - z[i]
dp = p[i+1] - p[i]
drdp = [dx/dp, dy/dp, dz/dp]
r = [x[i],y[i],z[i]-zprime]
r_mag = np.sqrt(x[i]**2 + y[i]**2 + (z[i]-zprime)**2)
B += mu*I/(4*np.pi) * np.cross(drdp,r) / r_mag**3 * dp
return B
In [1297]:
zplot = np.arange(0,13,0.1)
zplot
Out[1297]:
In [1298]:
Blist = []
for i in np.arange(0,13,0.1):
Blist.append(B(i))
In [1299]:
plt.plot(Blist)
Out[1299]:
In [ ]:
In [ ]: