def B_field_from_SheetCurruent(XYZ, srcLoc, sig, f, E0=1., orientation='X', kappa=0., epsr=1., t=0.):
"""
Plane wave propagating downward (negative z (depth))
"""
XYZ = Utils.asArray_N_x_Dim(XYZ, 3)
# Check
if XYZ.shape[0] > 1 & f.shape[0] > 1:
raise Exception("I/O type error: For multiple field locations only a single frequency can be specified.")
mu = mu_0*(1+kappa)
epsilon = epsilon_0*epsr
sig_hat = sig + 1j*omega(f)*epsilon
k = np.sqrt( omega(f)**2. *mu*epsilon -1j*omega(f)*mu*sig )
Z = omega(f)*mu/k
if orientation == "X":
z = XYZ[:,2]
Bx = mu*np.zeros_like(z)
By = mu*E0/Z*np.exp(1j*(k*(z-srcLoc)+omega(f)*t))
Bz = mu*np.zeros_like(z)
return Bx, By, Bz
else:
raise NotImplementedError()
评论列表
文章目录