🎯要点
🎯计算和绘制二维三维高斯方程图。🎯矢量场和电磁场计算和绘图:🖊矢量、可视化矢量乘积、矢量分解 | 🖊矢量场、通量、边界条件下通量、径向矢量场 | 🖊正电荷和负电荷移动、两个正电荷和两个负电荷、偶极子 | 🖊计算电荷沿长线分布电场 | 🖊计算圆形电荷分布电场 | 🖊计算不同边界条件电通量 | 🖊直导线电流分布 | 🖊方形环路的电流分布 | 🖊以原点为中心的环的电流分布 | 🖊计算和绘制直线、方形和环形三维磁场 | 🖊磁场二维横截面图 | 🖊量化矢量差异 | 🖊计算两条电流线磁场 | 🖊闭合路径线积分 | 🖊数值计算线积分变化 | 🖊计算多个电流磁场 | 🖊零厚度、有限厚度导线长度积分 | 🖊采样绘制磁场 | 🖊计算线段和向量之间的点积 | 🖊方形环证明斯托克斯定理 | 🖊可视化相同边界不同曲面。🎯电磁力、洛伦兹力和电子束偏转 | 🎯电势、磁动势:🖊计算细导线电势和泊松方程解 | 🎯电磁感应及电磁波。
🎯麦克斯韦旋度方程电磁一维模拟:🖊一般时变状态 | 🖊吸收边界条件 | 🖊撞击介电介质 | 🖊正弦波撞击电介质 | 🖊正弦波撞击有损电介质 | 🖊介电板 | 🖊傅里叶变换后 | 🖊频率相关材料。🎯归一化麦克斯韦方程电磁二维模拟:🖊高斯脉冲源 | 🖊最佳匹配层 | 🖊平面波源 | 🖊傅立叶分析平面波源撞击介电圆柱体。🎯麦克斯韦方程电磁三维模拟:🖊自由空间中的偶极子 | 🖊介电球平面波 。🎯热疗电磁模拟:🖊贝塞尔和勒让德函数计算层状电介质球,以求解亥姆霍兹方程。| 🎯电磁爆炸性变化模型。
🍇Python毕奥-萨伐尔定律可视化磁场
毕奥-萨伐尔定律描述了载流导线产生的磁场。 它指出,由于一小段承载电流的导线而在空间中的一点处产生的磁场与电流和该段的长度成正比,与该段和该点之间的距离成反比。
毕奥-萨伐尔定律可以在数学上表达为:
B
⃗
(
r
⃗
)
=
μ
0
4
π
∫
C
I
d
l
→
×
r
′
→
r
′
3
\vec{B}(\vec{r})=\frac{\mu_0}{4 \pi} \int_C \frac{I \overrightarrow{d l} \times \overrightarrow{r^{\prime}}}{r^{\prime 3}}
B(r)=4πμ0∫Cr′3Idl×r′
其中
B
B
B是
r
r
r点的磁场矢量,
μ
0
\mu_0
μ0是自由空间的磁导率,
I
I
I是导线中的电流,
d
l
→
dl ^{\rightarrow}
dl→是线,
r
r
r’是从长度元素到点
r
r
r的向量,并且在整条线C上进行积分。利用毕奥-萨伐尔定律,我们可以计算载流导线在空间任意点产生的磁场。如果是直导线,则使用以下公式计算磁场:
B
⃗
=
μ
0
I
2
π
r
z
^
\vec{B}=\frac{\mu_0 I}{2 \pi r} \hat{z}
B=2πrμ0Iz^
其中
I
I
I是导线中的电流,
r
r
r是从导线到点
r
⃗
\vec{r}
r的距离,
z
^
\hat{z}
z^是沿着导线指向的单位向量($ z$ 轴)。
为了可视化磁场,我们可以使用 Python 和 Matplotlib 库来创建磁力线图。以下是直线的示例代码:
import numpy as np
import matplotlib.pyplot as plt
I = 1.0
x_c = 0.0
y_c = 0.0
x, y = np.meshgrid(np.linspace(-2, 2, 100), np.linspace(-2, 2, 100))
r = np.sqrt((x-x_c)**2 + (y-y_c)**2)
B_x = I * (y-y_c) / r**3
B_y = -I * (x-x_c) / r**3
fig, ax = plt.subplots(figsize=(8, 8))
circle = plt.Circle((x_c, y_c), 0.1, color='red')
ax.add_artist(circle)
ax.set_xlim(-2, 2)
ax.set_ylim(-2, 2)
ax.set_xlabel('x')
ax.set_ylabel('y')
plt.show()
该代码定义了电流强度和位置,以及计算磁场的网格点。 然后,它计算由电线引起的磁场分量,并使用 flowplot 函数绘制磁力线。 最后,它添加一个红色圆圈来表示电线并设置绘图限制和轴标签。
我们还可以使用 Matplotlib 中的 quiver 函数以 3D 方式可视化磁场:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
I = 1.0
x_c = 0.0
y_c = 0.0
x, y, z = np.meshgrid(np.linspace(-2, 2, 20),
np.linspace(-2, 2, 20),
[0])
r = np.sqrt((x-x_c)**2 + (y-y_c)**2 + (z)**2)
B_x = I * (y-y_c) / r**3
B_y = -I * (x-x_c) / r**3
B_z = np.zeros_like(r)
ax.quiver(x, y, z, B_x, B_y, B_z, length=0.2, normalize=True)
z_wire = np.linspace(-2, 2, 50)
x_wire = np.zeros_like(z_wire)
y_wire = np.zeros_like(z_wire)
ax.plot(x_wire, y_wire, z_wire, lw=3, color='red')
ax.set_xlim(-2, 2)
ax.set_ylim(-2, 2)
ax.set_zlim(-2, 2)
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
plt.show()
该代码定义了电流强度和位置,以及计算磁场的点网格。 然后,它计算由电线产生的磁场分量,并使用 quiver 函数创建磁场的 3D 图。 最后,它添加一条红线来表示载流线并设置绘图限制和轴标签。