コード例 #1
0
ファイル: test_sse.py プロジェクト: vdhelm/amuse
 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()
コード例 #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()
コード例 #3
0
ファイル: test_sse.py プロジェクト: vdhelm/amuse
 def test4(self):
     sse = SSEInterface()
     self.initialize_module_with_default_parameters(sse) 
     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 = sse.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)
     sse.stop()
コード例 #4
0
ファイル: test_sse.py プロジェクト: vdhelm/amuse
 def test3(self):
     sse = SSEInterface()
     self.initialize_module_with_default_parameters(sse)  
     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 = sse.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)
     sse.stop()
コード例 #5
0
 def test4(self):
     sse = SSEInterface()
     self.initialize_module_with_default_parameters(sse) 
     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 = sse.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)
     sse.stop()
コード例 #6
0
 def test3(self):
     sse = SSEInterface()
     self.initialize_module_with_default_parameters(sse)  
     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 = sse.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)
     sse.stop()
コード例 #7
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()
コード例 #8
0
ファイル: test_sse.py プロジェクト: vdhelm/amuse
    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()