def setUp(self):
        TestCase.setUp(self)

        intforce = InteractionForcing(ELECTRON, HARD_BREMSSTRAHLUNG_EMISSION, -4)
        mat1 = PenelopeMaterial.pure(29, interaction_forcings=[intforce],
                             maximum_step_length_m=1e4)
        mat1._index = 1

        mat2 = VACUUM
        mat2._index = 0

        surface1 = SurfaceImplicit()
        surface1._index = 0

        surface2 = SurfaceImplicit()
        surface2._index = 1

        self.module2 = Module(None, mat2)
        self.module2._index = 1

        self.module1 = Module(None, mat1, 'Test')
        self.module1.add_surface(surface1, -1)
        self.module1.add_surface(surface2, 1)
        self.module1.add_module(self.module2)
        self.module1.rotation.phi_rad = radians(180)
        self.module1.shift.z_m = -1e3
        self.module1._index = 0

        self.materials_lookup = {0: mat2, 1: mat1}
        self.surfaces_lookup = {0: surface1, 1: surface2}
        self.modules_lookup = {0: self.module1, 1: self.module2}
예제 #2
0
    def setUp(self):
        TestCase.setUp(self)

        coefficients = (1e3, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1e9, 0.0, 0.0)
        self.surface = SurfaceImplicit(coefficients, description='surface')
        self.surface.rotation.phi_rad = radians(180)
        self.surface.shift.z_m = -1e3
        self.surface._index = 0
    def setUp(self):
        TestCase.setUp(self)

        coefficients = (1e3, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1e9, 0.0, 0.0)
        self.surface = SurfaceImplicit(coefficients, description='surface')
        self.surface.rotation.phi_rad = radians(180)
        self.surface.shift.z_m = -1e3
        self.surface._index = 0
예제 #4
0
class TestSurfaceImplicit(TestCase):
    GEOFILE = [
        'SURFACE (   1) surface', 'INDICES=( 0, 0, 0, 0, 0)',
        '    AXX=(+1.000000000000000E+03,   0)              (DEFAULT=0.0)',
        '    AXY=(+0.000000000000000E+00,   0)              (DEFAULT=0.0)',
        '    AXZ=(+0.000000000000000E+00,   0)              (DEFAULT=0.0)',
        '    AYY=(+0.000000000000000E+00,   0)              (DEFAULT=0.0)',
        '    AYZ=(+0.000000000000000E+00,   0)              (DEFAULT=0.0)',
        '    AZZ=(+0.000000000000000E+00,   0)              (DEFAULT=0.0)',
        '     AX=(+0.000000000000000E+00,   0)              (DEFAULT=0.0)',
        '     AY=(+1.000000000000000E+09,   0)              (DEFAULT=0.0)',
        '     AZ=(+0.000000000000000E+00,   0)              (DEFAULT=0.0)',
        '     A0=(+0.000000000000000E+00,   0)              (DEFAULT=0.0)',
        '1111111111111111111111111111111111111111111111111111111111111111',
        '  OMEGA=(+0.000000000000000E+00,   0) DEG          (DEFAULT=0.0)',
        '  THETA=(+0.000000000000000E+00,   0) DEG          (DEFAULT=0.0)',
        '    PHI=(+1.800000000000000E+02,   0) DEG          (DEFAULT=0.0)',
        'X-SHIFT=(+0.000000000000000E+00,   0)              (DEFAULT=0.0)',
        'Y-SHIFT=(+0.000000000000000E+00,   0)              (DEFAULT=0.0)',
        'Z-SHIFT=(-1.000000000000000E+05,   0)              (DEFAULT=0.0)'
    ]

    def setUp(self):
        TestCase.setUp(self)

        coefficients = (1e3, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1e9, 0.0, 0.0)
        self.surface = SurfaceImplicit(coefficients, description='surface')
        self.surface.rotation.phi_rad = radians(180)
        self.surface.shift.z_m = -1e3
        self.surface._index = 0

    def tearDown(self):
        TestCase.tearDown(self)

    def testskeleton(self):
        self.assertEqual('surface', self.surface.description)
        self.assertAlmostEqual(radians(180), self.surface.rotation.phi_rad, 4)
        self.assertAlmostEqual(-1e3, self.surface.shift.z_m, 4)
        self.assertAlmostEqual(1e3, self.surface.coefficients['xx'], 4)
        self.assertAlmostEqual(0.0, self.surface.coefficients['xy'], 4)
        self.assertAlmostEqual(0.0, self.surface.coefficients['xz'], 4)
        self.assertAlmostEqual(0.0, self.surface.coefficients['yy'], 4)
        self.assertAlmostEqual(0.0, self.surface.coefficients['yz'], 4)
        self.assertAlmostEqual(0.0, self.surface.coefficients['zz'], 4)
        self.assertAlmostEqual(0.0, self.surface.coefficients['x'], 4)
        self.assertAlmostEqual(1e9, self.surface.coefficients['y'], 4)
        self.assertAlmostEqual(0.0, self.surface.coefficients['z'], 4)
        self.assertAlmostEqual(0.0, self.surface.coefficients['0'], 4)

    def testto_geo(self):
        lines = self.surface.to_geo()
        self.assertEqual(19, len(lines))
        self.assertEqual(self.GEOFILE, lines)
예제 #5
0
    def setUp(self):
        TestCase.setUp(self)

        intforce = InteractionForcing(ELECTRON, HARD_BREMSSTRAHLUNG_EMISSION,
                                      -4)
        mat1 = PenelopeMaterial.pure(29,
                                     interaction_forcings=[intforce],
                                     maximum_step_length_m=1e4)
        mat1._index = 1

        mat2 = VACUUM
        mat2._index = 0

        surface1 = SurfaceImplicit()
        surface1._index = 0

        surface2 = SurfaceImplicit()
        surface2._index = 1

        self.module2 = Module(None, mat2)
        self.module2._index = 1

        self.module1 = Module(None, mat1, 'Test')
        self.module1.add_surface(surface1, -1)
        self.module1.add_surface(surface2, 1)
        self.module1.add_module(self.module2)
        self.module1.rotation.phi_rad = radians(180)
        self.module1.shift.z_m = -1e3
        self.module1._index = 0

        self.materials_lookup = {0: mat2, 1: mat1}
        self.surfaces_lookup = {0: surface1, 1: surface2}
        self.modules_lookup = {0: self.module1, 1: self.module2}
class TestSurfaceImplicit(TestCase):
    GEOFILE = ['SURFACE (   1) surface',
               'INDICES=( 0, 0, 0, 0, 0)',
               '    AXX=(+1.000000000000000E+03,   0)              (DEFAULT=0.0)',
               '    AXY=(+0.000000000000000E+00,   0)              (DEFAULT=0.0)',
               '    AXZ=(+0.000000000000000E+00,   0)              (DEFAULT=0.0)',
               '    AYY=(+0.000000000000000E+00,   0)              (DEFAULT=0.0)',
               '    AYZ=(+0.000000000000000E+00,   0)              (DEFAULT=0.0)',
               '    AZZ=(+0.000000000000000E+00,   0)              (DEFAULT=0.0)',
               '     AX=(+0.000000000000000E+00,   0)              (DEFAULT=0.0)',
               '     AY=(+1.000000000000000E+09,   0)              (DEFAULT=0.0)',
               '     AZ=(+0.000000000000000E+00,   0)              (DEFAULT=0.0)',
               '     A0=(+0.000000000000000E+00,   0)              (DEFAULT=0.0)',
               '1111111111111111111111111111111111111111111111111111111111111111',
               '  OMEGA=(+0.000000000000000E+00,   0) DEG          (DEFAULT=0.0)',
               '  THETA=(+0.000000000000000E+00,   0) DEG          (DEFAULT=0.0)',
               '    PHI=(+1.800000000000000E+02,   0) DEG          (DEFAULT=0.0)',
               'X-SHIFT=(+0.000000000000000E+00,   0)              (DEFAULT=0.0)',
               'Y-SHIFT=(+0.000000000000000E+00,   0)              (DEFAULT=0.0)',
               'Z-SHIFT=(-1.000000000000000E+05,   0)              (DEFAULT=0.0)']

    def setUp(self):
        TestCase.setUp(self)

        coefficients = (1e3, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1e9, 0.0, 0.0)
        self.surface = SurfaceImplicit(coefficients, description='surface')
        self.surface.rotation.phi_rad = radians(180)
        self.surface.shift.z_m = -1e3
        self.surface._index = 0

    def tearDown(self):
        TestCase.tearDown(self)

    def testskeleton(self):
        self.assertEqual('surface', self.surface.description)
        self.assertAlmostEqual(radians(180), self.surface.rotation.phi_rad, 4)
        self.assertAlmostEqual(-1e3, self.surface.shift.z_m, 4)
        self.assertAlmostEqual(1e3, self.surface.coefficients['xx'], 4)
        self.assertAlmostEqual(0.0, self.surface.coefficients['xy'], 4)
        self.assertAlmostEqual(0.0, self.surface.coefficients['xz'], 4)
        self.assertAlmostEqual(0.0, self.surface.coefficients['yy'], 4)
        self.assertAlmostEqual(0.0, self.surface.coefficients['yz'], 4)
        self.assertAlmostEqual(0.0, self.surface.coefficients['zz'], 4)
        self.assertAlmostEqual(0.0, self.surface.coefficients['x'], 4)
        self.assertAlmostEqual(1e9, self.surface.coefficients['y'], 4)
        self.assertAlmostEqual(0.0, self.surface.coefficients['z'], 4)
        self.assertAlmostEqual(0.0, self.surface.coefficients['0'], 4)

    def testto_geo(self):
        lines = self.surface.to_geo()
        self.assertEqual(19, len(lines))
        self.assertEqual(self.GEOFILE, lines)