示例#1
0
 def test1(self):
     mosse = MOSSEInterface()
     
     metallicity = 0.02
     
     neta = 0.5
     bwind =  0.0
     hewind =  1.0
     sigma1 =  265.0
     sigma2 =  7.0
     
     ifflag = 0
     wdflag =  1
     bhflag =  1 
     nsflag =  3
     piflag =  1
     mxns =  3.0
     idum = 29769
     
     pts1 = 0.05
     pts2 = 0.01
     pts3 = 0.02
 
 
     status = mosse.initialize(metallicity,
         neta, bwind, hewind, sigma1, sigma2,
         ifflag, wdflag, bhflag, nsflag, piflag, mxns, idum,
         pts1, pts2, pts3)
         
     self.assertEqual(status,0)
     
     mosse.stop()
示例#2
0
 def test1(self):
     mosse = MOSSEInterface()
     
     metallicity = 0.02
     
     neta = 0.5
     bwind =  0.0
     hewind =  1.0
     sigma1 =  265.0
     sigma2 =  7.0
     
     ifflag = 0
     wdflag =  1
     bhflag =  1 
     nsflag =  3
     piflag =  1
     mxns =  3.0
     idum = 29769
     
     pts1 = 0.05
     pts2 = 0.01
     pts3 = 0.02
 
 
     status = mosse.initialize(metallicity,
         neta, bwind, hewind, sigma1, sigma2,
         ifflag, wdflag, bhflag, nsflag, piflag, mxns, idum,
         pts1, pts2, pts3)
         
     self.assertEqual(status,0)
     
     mosse.stop()
示例#3
0
    def test2(self):
        mosse = MOSSEInterface()
        
        metallicity = 0.02
        
        neta = 0.5
        bwind =  0.0
        hewind =  1.0
        sigma1 =  265.0
        sigma2 =  7.0
        
        ifflag = 0
        wdflag =  1
        bhflag =  1 
        nsflag =  3
        piflag =  1
        mxns =  3.0
        idum = 29769

        pts1 = 0.05
        pts2 = 0.01
        pts3 = 0.02

    
        status = mosse.initialize(metallicity,
            neta, bwind, hewind, sigma1, sigma2,
            ifflag, wdflag, bhflag, nsflag, piflag, mxns, idum,
            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 = mosse.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 = mosse.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)
        mosse.stop()
示例#4
0
    def test2(self):
        mosse = MOSSEInterface()
        
        metallicity = 0.02
        
        neta = 0.5
        bwind =  0.0
        hewind =  1.0
        sigma1 =  265.0
        sigma2 =  7.0
        
        ifflag = 0
        wdflag =  1
        bhflag =  1 
        nsflag =  3
        piflag =  1
        mxns =  3.0
        idum = 29769

        pts1 = 0.05
        pts2 = 0.01
        pts3 = 0.02

    
        status = mosse.initialize(metallicity,
            neta, bwind, hewind, sigma1, sigma2,
            ifflag, wdflag, bhflag, nsflag, piflag, mxns, idum,
            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 = mosse.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 = mosse.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)
        mosse.stop()