@@ -134,8 +134,8 @@ def test5(self):
134134 print (mass )
135135 self .assertEqual (error , 0 )
136136 self .assertAlmostRelativeEqual (mass [0 ], 1.0 , 6 )
137- self .assertAlmostRelativeEqual (mass [1 ], 0.62973 , 4 )
138- self .assertAlmostRelativeEqual (mass [2 ], 0.75012 , 4 )
137+ self .assertAlmostRelativeEqual (mass [1 ], 0.6306 , 4 )
138+ self .assertAlmostRelativeEqual (mass [2 ], 0.7408 , 4 )
139139
140140 instance .stop ()
141141
@@ -155,7 +155,7 @@ def test6(self):
155155 mass , error = instance .get_mass (index )
156156 print (mass )
157157 self .assertEqual (error , 0 )
158- self .assertAlmostRelativeEqual (mass , [1.0 , 0.62973 , 0.75072 ], 4 )
158+ self .assertAlmostRelativeEqual (mass , [1.0 , 0.6306 , 0.7408 ], 4 )
159159
160160 instance .stop ()
161161
@@ -284,7 +284,7 @@ def test9(self):
284284 self .assertEqual (error , 0 )
285285 mass , error = instance .get_mass (1 )
286286 self .assertEqual (error , 0 )
287- self .assertAlmostRelativeEqual (mass , 2.98777 , 4 )
287+ self .assertAlmostRelativeEqual (mass , 2.9887 , 4 )
288288 mass , error = instance .get_mass (2 )
289289 self .assertEqual (error , 0 )
290290 self .assertAlmostRelativeEqual (mass , 0.29999 , 4 )
@@ -293,7 +293,7 @@ def test9(self):
293293 self .assertEqual (error , 0 )
294294 mass , error = instance .get_mass (1 )
295295 self .assertEqual (error , 0 )
296- self .assertAlmostRelativeEqual (mass , 0.902743 , 4 )
296+ self .assertAlmostRelativeEqual (mass , 0.9019 , 4 )
297297 mass , error = instance .get_mass (2 )
298298 self .assertEqual (error , 0 )
299299 self .assertAlmostRelativeEqual (mass , 0.3 , 4 )
@@ -420,7 +420,7 @@ def test_evolution_of_close_binary_system(self):
420420 3.0000 | units .MSun ,
421421 3.0000 | units .MSun ,
422422 2.9983 | units .MSun ,
423- 2.9741 | units .MSun ,
423+ 2.9797 | units .MSun ,
424424 0.6710 | units .MSun ,
425425 0.6596 | units .MSun ,
426426 )
@@ -683,3 +683,53 @@ def test_supernova_stopping_condition_with_multiple_stars_of_equal_mass(self):
683683 self .assertAlmostRelativeEqual (instance .particles [0 ].mass , 1.2507 | units .MSun , 4 )
684684 self .assertAlmostRelativeEqual (instance .particles [1 ].mass , 1.2507 | units .MSun , 4 )
685685 self .assertAlmostRelativeEqual (instance .particles [2 ].mass , 0.5 | units .MSun , 4 )
686+
687+ def test_restart_for_different_stellar_type (self ):
688+ """ Test restart SeBa for different stellar types. """
689+ instance = self .new_instance_of_an_optional_code (SeBa )
690+
691+ #a very specific case, which went wrong in Torch
692+ stars = Particles (2 )
693+ stars .mass = [69.08994562 , 69.40049406 ] | units .MSun
694+ stars .relative_mass = [69.44820097 , 69.40049406 ] | units .MSun
695+ stars .age = [3.2865 , 3.2865 ] | units .Myr
696+ stars .relative_age = [3.68045615 , 3.63104588 ] | units .Myr
697+ stars .stellar_type = [2 , 1 ] | units .stellar_type
698+ stars .core_mass = [29.90683271 , 0. ] | units .MSun
699+ stars .radius = [944.70734099 , 94.874201 ] | units .RSun
700+ stars .luminosity = [1517964.62534381 , 1468414.68887237 ] | units .LSun
701+
702+ instance .particles .add_particles (stars )
703+ instance .evolve_model (0.1 | units .day )
704+
705+ self .assertAlmostRelativeEqual (instance .particles [0 ].age , 0 | units .Myr , 4 )
706+ self .assertAlmostRelativeEqual (instance .particles [1 ].age , 0 | units .Myr , 4 )
707+ self .assertAlmostRelativeEqual (instance .particles [0 ].relative_age , 3.68045615 | units .Myr , 4 )
708+ self .assertAlmostRelativeEqual (instance .particles [1 ].relative_age , 3.63104588 | units .Myr , 4 )
709+ self .assertAlmostRelativeEqual (instance .particles [0 ].radius , 944.70734099 | units .RSun , 4 )
710+ self .assertAlmostRelativeEqual (instance .particles [1 ].radius , 94.874201 | units .RSun , 4 )
711+ self .assertAlmostRelativeEqual (instance .particles [0 ].core_mass , 29.90683275 | units .MSun , 4 )
712+ self .assertAlmostRelativeEqual (instance .particles [1 ].core_mass , 0 | units .MSun , 4 )
713+ self .assertAlmostRelativeEqual (instance .particles [0 ].luminosity , 1517964.62534381 | units .LSun , 4 )
714+ self .assertAlmostRelativeEqual (instance .particles [1 ].luminosity , 1468414.68887237 | units .LSun , 4 )
715+
716+
717+ def test_adding_zero_age_star_and_recover_with_channel (self ):
718+ """ Test restart SeBa for different stellar types. """
719+ instance = self .new_instance_of_an_optional_code (SeBa )
720+
721+ #a very specific case, which went wrong in Torch
722+
723+ stars = Particles (1 )
724+ stars .mass = 20 | units .MSun
725+ stars .radius = 10 | units .RSun
726+
727+ instance .particles .add_particle (stars [0 ])
728+ instance .evolve_model (1 | units .yr )
729+
730+ channel = stars .new_channel_to (instance .particles )
731+ channel .copy ()
732+
733+ self .assertAlmostRelativeEqual (instance .particles [0 ].mass , 19.9999999903 | units .MSun , 4 )
734+ self .assertAlmostRelativeEqual (instance .particles [0 ].radius , 5.99895518242 | units .RSun , 4 )
735+
0 commit comments