Beispiel #1
0
    def test1(self):
        sse = SSEInterface()

        metallicity = 0.02

        neta = 0.5
        bwind = 0.0
        hewind = 0.5
        sigma = 190.0

        ifflag = 0
        wdflag = 1
        bhflag = 0
        nsflag = 1
        mxns = 3.0

        pts1 = 0.05
        pts2 = 0.01
        pts3 = 0.02

        status = sse.initialize(metallicity, neta, bwind, hewind, sigma,
                                ifflag, wdflag, bhflag, nsflag, mxns, pts1,
                                pts2, pts3)

        self.assertEqual(status, 0)

        sse.stop()
Beispiel #2
0
 def test1(self):
     sse = SSEInterface()
     
     metallicity = 0.02
     
     neta = 0.5
     bwind =  0.0
     hewind =  0.5
     sigma =  190.0
     
     ifflag = 0
     wdflag =  1
     bhflag =  0 
     nsflag =  1
     mxns =  3.0
     
     pts1 = 0.05
     pts2 = 0.01
     pts3 = 0.02
 
 
     status = sse.initialize(metallicity,
         neta, bwind, hewind, sigma,
         ifflag, wdflag, bhflag, nsflag, mxns,
         pts1, pts2, pts3)
         
     self.assertEqual(status,0)
     
     sse.stop()
Beispiel #3
0
    def test2(self):
        sse = SSEInterface()

        metallicity = 0.02

        neta = 0.5
        bwind = 0.0
        hewind = 0.5
        sigma = 190.0

        ifflag = 0
        wdflag = 1
        bhflag = 0
        nsflag = 1
        mxns = 3.0

        pts1 = 0.05
        pts2 = 0.01
        pts3 = 0.02

        status = sse.initialize(metallicity, neta, bwind, hewind, sigma,
                                ifflag, wdflag, bhflag, nsflag, mxns, pts1,
                                pts2, pts3)
        self.assertEqual(status, 0)
        new_state = self.state()
        new_state.mass = 1.0
        new_state.zams_mass = 1.0
        new_state.stellar_type = 1.0
        new_state.age = 1e-06
        result = sse.evolve_star(
            new_state.stellar_type, new_state.zams_mass, new_state.mass,
            new_state.radius, new_state.luminosity, new_state.core_mass,
            new_state.core_radius, new_state.envelope_mass,
            new_state.envelope_radius, new_state.spin, new_state.epoch,
            new_state.t_ms, new_state.sse_age, new_state.age)
        updated_state = self.state()
        (updated_state.stellar_type, updated_state.zams_mass,
         updated_state.mass, updated_state.radius, updated_state.luminosity,
         updated_state.core_mass, updated_state.core_radius,
         updated_state.envelope_mass, updated_state.envelope_radius,
         updated_state.spin, updated_state.epoch, updated_state.t_ms,
         updated_state.sse_age, updated_state.age) = result
        attributes = ('stellar_type', 'zams_mass', 'mass', 'radius',
                      'luminosity', 'core_mass', 'core_radius',
                      'envelope_mass', 'envelope_radius', 'spin', 'epoch',
                      't_ms', 'sse_age', 'age')

        expected = {
            'zams_mass': '0x1.0000000000000p+0',
            'mass': '0x1.0000000000000p+0',
            'radius': '0x1.c6c8a1c793bcep-1',
            'luminosity': '0x1.653b1b2d0333bp-1',
            'core_mass': '0x0.0p+0',
            'core_radius': '0x0.0p+0',
            'envelope_mass': '0x1.0d6fc100ab510p-5',
            'envelope_radius': '0x1.db27631ba0e5ap-3',
            'spin': '0x1.07413b0522d63p+10',
            'epoch': '0x0.0p+0',
            't_ms': '0x1.57d90abe54643p+13',
            'sse_age': '0x1.0c6f7a0b5ed8dp-20',
            'age': '0x1.0c6f7a0b5ed8dp-20',
        }

        for x in expected:
            self.assertAlmostRelativeEqual(float.fromhex(expected[x]),
                                           getattr(updated_state, x))

        self.assertEqual(updated_state.age, 1e-06)
        dt = sse.get_time_step(updated_state.stellar_type,
                               updated_state.zams_mass, updated_state.age,
                               updated_state.mass, updated_state.t_ms,
                               updated_state.epoch)
        self.assertAlmostEqual(dt, 550.1565, 2)
        sse.stop()
Beispiel #4
0
    def test2(self):
        sse = SSEInterface()
        
        metallicity = 0.02
        
        neta = 0.5
        bwind =  0.0
        hewind =  0.5
        sigma =  190.0
        
        ifflag = 0
        wdflag =  1
        bhflag =  0 
        nsflag =  1
        mxns =  3.0
        
        pts1 = 0.05
        pts2 = 0.01
        pts3 = 0.02
    
    
        status = sse.initialize(metallicity,
            neta, bwind, hewind, sigma,
            ifflag, wdflag, bhflag, nsflag, mxns,
            pts1, pts2, pts3)
        self.assertEqual(status,0)
        new_state = self.state()
        new_state.mass = 1.0
        new_state.zams_mass = 1.0
        new_state.stellar_type = 1.0
        new_state.age = 1e-06
        result = sse.evolve_star(
            new_state.stellar_type, 
            new_state.zams_mass, new_state.mass, new_state.radius, 
            new_state.luminosity, new_state.core_mass, new_state.core_radius,
            new_state.envelope_mass, new_state.envelope_radius, new_state.spin,
            new_state.epoch, new_state.t_ms, new_state.sse_age, new_state.age
        )
        updated_state = self.state()
        (updated_state.stellar_type,updated_state.zams_mass, updated_state.mass, updated_state.radius, 
            updated_state.luminosity, updated_state.core_mass, updated_state.core_radius,
            updated_state.envelope_mass, updated_state.envelope_radius, updated_state.spin,
            updated_state.epoch, updated_state.t_ms, updated_state.sse_age, updated_state.age) = result
        attributes = ('stellar_type', 'zams_mass', 'mass', 'radius', 'luminosity', 'core_mass', 'core_radius',
            'envelope_mass', 'envelope_radius', 'spin', 'epoch', 't_ms', 'sse_age', 'age')
        
         
        expected = {
            'zams_mass': '0x1.0000000000000p+0',
            'mass': '0x1.0000000000000p+0',
            'radius': '0x1.c6c8a1c793bcep-1',
            'luminosity': '0x1.653b1b2d0333bp-1',
            'core_mass': '0x0.0p+0',
            'core_radius': '0x0.0p+0',
            'envelope_mass': '0x1.0d6fc100ab510p-5',
            'envelope_radius': '0x1.db27631ba0e5ap-3',
            'spin': '0x1.07413b0522d63p+10',
            'epoch': '0x0.0p+0',
            't_ms': '0x1.57d90abe54643p+13',
            'sse_age': '0x1.0c6f7a0b5ed8dp-20',
            'age': '0x1.0c6f7a0b5ed8dp-20',
        };    


        for x in expected:
            self.assertAlmostRelativeEqual(float.fromhex(expected[x]),getattr(updated_state, x))
            
        self.assertEquals(updated_state.age, 1e-06)
        dt = sse.get_time_step(updated_state.stellar_type,
            updated_state.zams_mass, 
            updated_state.age, 
            updated_state.mass, 
            updated_state.t_ms, 
            updated_state.epoch)
        self.assertAlmostEqual(dt, 550.1565, 2)
        sse.stop()