Ejemplo n.º 1
0
 def test_get_energy(self):
     bracket = (from_unit(935, 'ueV'), from_unit(940, 'ueV'))
     self.assertAlmostEqual(
         self.model.get_energy(1 / self.model.period, self.mass, bracket,
                               unit('ueV')) / unit('ueV'),
         935.6,
         delta=0.1)
Ejemplo n.º 2
0
 def test_get_energy(self):
     bracket = (from_unit(70, 'meV'), from_unit(72, 'meV'))
     self.assertAlmostEqual(
         self.model.get_energy(1 / self.model.period, self.mass, bracket,
                               unit('ueV')) / unit('meV'),
         71.2,
         delta=0.1)
Ejemplo n.º 3
0
    def test_from_materials(self):
        # КДБ-100
        res = DopedSemiconductor.from_materials(
            Si,
            from_unit(500, 'cm^2 / V s'),  # Mobility for holes
            'B',
            from_unit(100, 'Ohm cm'))
        self.assertEqual(res.Nd, 0)
        self.assertAlmostEqual(res.Na, 1.2e14, delta=0.1e14)

        # КЭМ-100
        res = DopedSemiconductor.from_materials(
            Si,
            from_unit(1500, 'cm^2 / V s'),  # Mobility for electrons
            'As',
            from_unit(100, 'Ohm cm'))
        self.assertEqual(res.Na, 0)
        self.assertAlmostEqual(res.Nd, 4.1e13, delta=0.1e13)

        with self.assertRaises(KeyError):
            DopedSemiconductor.from_materials(Si, 1, 'UNKNOWN', 1)
Ejemplo n.º 4
0
 def test_Id_sat(self):
     jfet = JFET(Si, 1e17, from_unit(1400, 'cm^2 /V s'), from_unit(1, 'um'),
                 from_unit(1, 'um'), from_unit(10, 'um'))
     self.assertAlmostEqual(
         jfet.Id_sat(from_unit(5, 'V'), from_unit(1, 'V')) / unit('mA'),
         9.3,
         delta=0.1)
Ejemplo n.º 5
0
 def test_Ip(self):
     jfet = JFET(Si, 1e17, from_unit(1400, 'cm^2 /V s'), from_unit(1, 'um'),
                 from_unit(1, 'um'), from_unit(10, 'um'))
     self.assertAlmostEqual(jfet.Ip() / unit('mA'), 11.5, delta=0.1)
Ejemplo n.º 6
0
 def test_Vp(self):
     jfet = JFET(Si, 1e17, from_unit(1400, 'cm^2 /V s'), from_unit(1, 'um'),
                 from_unit(1, 'um'), from_unit(10, 'um'))
     self.assertAlmostEqual(jfet.Vp() / unit('V'), 77.32, delta=0.01)
Ejemplo n.º 7
0
 def setUp(self):
     self.mass = 0.49 * me
     self.model = DiracCombModel(from_unit(201, 'nm'),
                                 from_unit(-0.58, 'nm * eV'))
Ejemplo n.º 8
0
 def setUp(self):
     self.mass = 0.49 * me
     self.model = KronigPenneyModel(from_unit(5, 'nm'), from_unit(10, 'nm'),
                                    from_unit(-0.58, 'eV'))
Ejemplo n.º 9
0
 def test_convenience_methods(self):
     self.assertEqual(to_unit(1, 'V'), 1 / unit('V'))
     self.assertEqual(from_unit(1, 'V'), 1 * unit('V'))