File: test_materials_library.py

package info (click to toggle)
meep-openmpi 1.25.0-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 64,556 kB
  • sloc: cpp: 32,214; python: 27,958; lisp: 1,225; makefile: 505; sh: 249; ansic: 131; javascript: 5
file content (46 lines) | stat: -rw-r--r-- 1,579 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import unittest

from meep.materials import Ag, Cr, Ge, InP, LiNbO3, Si, SiO2_aniso


class TestMaterialsLibrary(unittest.TestCase):
    def test_materials_library(self):
        self.assertAlmostEqual(InP.epsilon(1 / 3.3)[0][0], (3.1031) ** 2, places=2)

        self.assertAlmostEqual(Ge.epsilon(1 / 6.8)[0][0], (4.0091) ** 2, places=2)

        self.assertAlmostEqual(Si.epsilon(1 / 1.55)[0][0], (3.4777) ** 2, places=2)

        self.assertAlmostEqual(LiNbO3.epsilon(1 / 1.55)[0][0], (2.2111) ** 2, places=2)
        self.assertAlmostEqual(LiNbO3.epsilon(1 / 1.55)[1][1], (2.2111) ** 2, places=2)
        self.assertAlmostEqual(LiNbO3.epsilon(1 / 1.55)[2][2], (2.1376) ** 2, places=2)

        self.assertAlmostEqual(
            SiO2_aniso.epsilon(1 / 1.55)[0][0], (1.5277) ** 2, places=2
        )
        self.assertEqual(SiO2_aniso.epsilon(1 / 1.55)[1][0], 0)
        self.assertAlmostEqual(
            SiO2_aniso.epsilon(1 / 1.55)[1][1], (1.5277) ** 2, places=2
        )
        self.assertAlmostEqual(
            SiO2_aniso.epsilon(1 / 1.55)[2][2], (1.5362) ** 2, places=2
        )

        self.assertAlmostEqual(
            Ag.epsilon(1 / 0.65)[0][0], (0.14623 + 1j * 3.9367) ** 2, places=2
        )

        self.assertAlmostEqual(
            Cr.epsilon(1 / 0.71)[0][0], (3.8275 + 1j * 4.3457) ** 2, places=2
        )

        try:
            Ag.epsilon(1 / 0.2)[0][0]
        except ValueError:
            pass
        else:
            raise AssertionError("Ag is not defined at a wavelength of 0.2 μm")


if __name__ == "__main__":
    unittest.main()