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))
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)
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])
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:])