Beispiel #1
0
def test_2layer_area():
    er1, t1 = 5.0, 1e-3
    er2, t2 = 1.0, 3e-3
    A = 3.0
    pp1 = ParallelPlates((er1, er2), (t1, t2))
    pp2 = ParallelPlates((er1, er2), (t1, t2), area=A)
    Va = 25.0
    X = np.linspace(0, t1 + t2, 11)
    assert pp1.capacitance() == approx(pp2.capacitance() / A)
    assert pp1.efield(X, Va) == approx(pp2.efield(X, Va))
    assert pp1.potential(X, Va) == approx(pp2.potential(X, Va))
Beispiel #2
0
def test_efield():
    t = 1e-3
    N = 5
    pp = ParallelPlates(3.5, t)
    X = np.linspace(0, t, N)
    Va = 10.0
    expected = -Va / t * np.ones(N)
    efield = pp.efield(X, Va)
    assert efield == approx(expected)
Beispiel #3
0
def test_efield_2layer():
    er1, t1 = 5.0, 1e-3
    er2, t2 = 1.0, 3e-3
    pp = ParallelPlates((er1, er2), (t1, t2))
    X = np.linspace(0, 4e-3, 5)
    E = pp.efield(X, 200)
    E1 = -12.5 / t1
    E2 = -187.5 / t2
    assert E == approx([E1, E1, E2, E2, E2])
Beispiel #4
0
def test_efield_pplate():
    er1, t1 = 5.0, 1e-3
    er2, t2 = 1.0, 3e-3
    Va = 200
    pp = ParallelPlates((er1, er2), (t1, t2))
    X, dx = np.linspace(0, 4e-3, 21, retstep=True)
    V = pp.potential(X, Va)
    E = pp.efield(X, Va)
    Ec = em.efield_1d(V, dx)
    assert Ec[:5] == approx(E[:5])
    # discontinuity at boundary [5]
    assert Ec[6:] == approx(E[6:])