Ejemplo n.º 1
0
 def test_paraxial(self):
     p = self.s.paraxial
     # print(str(p))
     nptest.assert_allclose(p.u[0, 0], 0)
     nptest.assert_allclose(p.u[0, 1], p.n[0] * np.tan(self.s.object.angle))
     nptest.assert_allclose(p.y[self.s.stop, 0],
                            self.s[self.s.stop].radius,
                            rtol=1e-2)
     nptest.assert_allclose(p.y[self.s.stop, 1], 0, atol=1e-9)
     nptest.assert_allclose(p.working_f_number[1],
                            -self.s.image.pupil.fno,
                            rtol=1e-2)
     nptest.assert_allclose(p.working_f_number[1], 4, rtol=1e-2)
     nptest.assert_allclose(p.focal_length[1], 50, rtol=5e-3)
     nptest.assert_allclose(p.magnification[0], 0, rtol=1e-3)
     nptest.assert_allclose(p.numerical_aperture[1], .124, rtol=5e-3)
     p.update_conjugates()
     self.s.image.na = .125
     p.update_stop("image")
     p = ParaxialTrace(self.s)
     p.update_conjugates()
     print(system_to_yaml(self.s))
     print(str(p))
Ejemplo n.º 2
0
 def test_paraxial(self):
     p = ParaxialTrace(self.s)
     #print(str(p))
     nptest.assert_allclose(p.u[0, 0], 0)
     nptest.assert_allclose(p.u[0, 1], tanarcsin(self.s.object.angle))
     nptest.assert_allclose(p.y[self.s.stop, 0],
             self.s[self.s.stop].radius)
     nptest.assert_allclose(p.y[self.s.stop, 1], 0, atol=1e-9)
     nptest.assert_allclose(p.working_f_number[1], 4, rtol=1e-2)
     nptest.assert_allclose(p.focal_length[1], 50, rtol=1e-3)
     nptest.assert_allclose(p.magnification[0], 0, rtol=1e-3)
     nptest.assert_allclose(p.numerical_aperture[1], .124, rtol=1e-3)
     p.update_conjugates()
     self.s.image.na = .125
     p.update_stop("image")
     p = ParaxialTrace(self.s)
     p.update_conjugates()
     print(system_to_yaml(self.s))
     print(str(p))
Ejemplo n.º 3
0
 def traces(self):
     p = ParaxialTrace(self.s)
     p.update_conjugates()
     g = GeometricTrace(self.s)
     return p, g
Ejemplo n.º 4
0
 def test_reverse_size(self):
     p = ParaxialTrace(self.s)
     p.update_conjugates()
     self.s.reverse()
     p = ParaxialTrace(self.s)
Ejemplo n.º 5
0
 def traces(self):
     p = ParaxialTrace(self.s)
     p.update_conjugates()
     g = GeometricTrace(self.s)
     return p, g
Ejemplo n.º 6
0
 def test_reverse_size(self):
     p = ParaxialTrace(self.s)
     p.update_conjugates()
     self.s.reverse()
     p = ParaxialTrace(self.s)
Ejemplo n.º 7
0
 def setUp(self):
     self.s = system_from_yaml(cooke)
     p = ParaxialTrace(self.s)
     p.update_conjugates()