Exemplo n.º 1
0
 def test4(self):
     mosse = MOSSEInterface()
     self.initialize_module_with_default_parameters(mosse) 
     types = [1 for x in range(1,4000)]
     masses = [1.0 + ((x / 4000.0) * 10.0) for x in range(1,4000)]
     radii = [1.0 for x in range(1,4000)]
     luminosity = core_mass = core_radius =  envelope_mass =\
     envelope_radius =  spin = epoch =\
     t_ms = [0.0 for x in range(1,4000)]
     
     sse_age = age = [1e-06 for x in range(1,4000)]
     result = mosse.evolve_star(
         types, 
         masses, 
         masses, 
         radii, 
         luminosity, 
         core_mass, 
         core_radius,
         envelope_mass,
         envelope_radius, 
         spin,
         epoch, 
         t_ms, 
         sse_age, 
         age
     )
     self.assertEqual(len(result['mass']), 3999)
     mosse.stop()
Exemplo n.º 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()
Exemplo n.º 3
0
 def test3(self):
     mosse = MOSSEInterface()
     self.initialize_module_with_default_parameters(mosse)  
     types = [1,1,1]
     masses = [10,5,4]
     radii = [5.0, 2.0, 1.0]
     luminosity = core_mass = core_radius =  envelope_mass =\
     envelope_radius =  spin = epoch = t_ms = [0.0,0.0,0.0]
     sse_age = age = [1e-6, 1e-06, 1e-6]
     result = mosse.evolve_star(
         types, 
         masses, 
         masses, 
         radii, 
         luminosity, 
         core_mass, 
         core_radius,
         envelope_mass,
         envelope_radius, 
         spin,
         epoch, 
         t_ms, 
         sse_age, 
         age
     )
     self.assertEqual(result['mass'][0], 10)
     self.assertEqual(result['mass'][1], 5)
     self.assertAlmostEqual(result['mass'][2], 4.0, 2)
     mosse.stop()
Exemplo n.º 4
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()
Exemplo n.º 5
0
 def test4(self):
     mosse = MOSSEInterface()
     self.initialize_module_with_default_parameters(mosse) 
     types = [1 for x in range(1,4000)]
     masses = [1.0 + ((x / 4000.0) * 10.0) for x in range(1,4000)]
     radii = [1.0 for x in range(1,4000)]
     luminosity = core_mass = core_radius =  envelope_mass =\
     envelope_radius =  spin = epoch =\
     t_ms = [0.0 for x in range(1,4000)]
     
     sse_age = age = [1e-06 for x in range(1,4000)]
     result = mosse.evolve_star(
         types, 
         masses, 
         masses, 
         radii, 
         luminosity, 
         core_mass, 
         core_radius,
         envelope_mass,
         envelope_radius, 
         spin,
         epoch, 
         t_ms, 
         sse_age, 
         age
     )
     self.assertEquals(len(result['mass']), 3999)
     mosse.stop()
Exemplo n.º 6
0
 def test3(self):
     mosse = MOSSEInterface()
     self.initialize_module_with_default_parameters(mosse)  
     types = [1,1,1]
     masses = [10,5,4]
     radii = [5.0, 2.0, 1.0]
     luminosity = core_mass = core_radius =  envelope_mass =\
     envelope_radius =  spin = epoch = t_ms = [0.0,0.0,0.0]
     sse_age = age = [1e-6, 1e-06, 1e-6]
     result = mosse.evolve_star(
         types, 
         masses, 
         masses, 
         radii, 
         luminosity, 
         core_mass, 
         core_radius,
         envelope_mass,
         envelope_radius, 
         spin,
         epoch, 
         t_ms, 
         sse_age, 
         age
     )
     self.assertEquals(result['mass'][0], 10)
     self.assertEquals(result['mass'][1], 5)
     self.assertAlmostEqual(result['mass'][2], 4.0, 2)
     mosse.stop()
Exemplo n.º 7
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()
Exemplo n.º 8
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()