Beispiel #1
0
 def test_high_ecc(self):
     sim = rebound.Simulation()
     sim.add(m=1.)
     sim.add(m=1.e-5, P=1., e=0.9)
     sim.add(m=1.e-5, P=2.)
     sim.add(m=1.e-5, P=3.)
     init_sim_parameters(sim)
     self.assertEqual(sim.integrator, 'whfast')
Beispiel #2
0
 def test_extreme_ecc(self):
     sim = rebound.Simulation()
     sim.add(m=1.)
     sim.add(m=1.e-5, P=1., e=0.999)
     sim.add(m=1.e-5, P=2.)
     sim.add(m=1.e-5, P=3.)
     init_sim_parameters(sim)
     self.assertEqual(sim.integrator, 'ias15')
Beispiel #3
0
 def test_descending_periods(self):
     sim = rebound.Simulation()
     sim.add(m=1.)
     sim.add(m=1.e-5, P=3.)
     sim.add(m=1.e-5, P=2.)
     sim.add(m=1.e-5, P=1.)
     init_sim_parameters(sim)
     self.assertAlmostEqual(sim.dt, 0.05, delta=1e-15)
Beispiel #4
0
 def test_negmass(self):
     sim = rebound.Simulation()
     sim.add(m=1.)
     sim.add(m=1.e-5, P=1.)
     sim.add(m=-1.e-5, P=2.)
     sim.add(m=1.e-5, P=3.)
     with self.assertRaises(AttributeError):
         init_sim_parameters(sim)
Beispiel #5
0
 def test_second_p_ecc(self):
     sim = rebound.Simulation()
     sim.add(m=1.)
     sim.add(m=1.e-5, P=1.)
     sim.add(m=1.e-5, P=10., e=0.99)
     sim.add(m=1.e-5, P=3.)
     init_sim_parameters(sim)
     self.assertAlmostEqual(sim.dt,
                            0.05 * 10 * 0.01**1.5 / np.sqrt(1.99),
                            delta=1.e-8)
    def test_same_trajectory(self):
        sim = longstablesim()
        init_sim_parameters(sim)
        _, _ = get_tseries(sim, (1e4, 80, [[1,2,3]]))
        x1 = sim.particles[1].x

        sim = longstablesim()
        nbody = NbodyRegressor()
        nbody.predict_stable(sim, tmax=1e4, archive_filename='temp.bin', archive_interval=1.e4)
        sa = rebound.SimulationArchive('temp.bin')
        sim = sa[-1]
        x2 = sim.particles[1].x
        self.assertAlmostEqual(x1, x2, delta=1.e-5)
Beispiel #7
0
    def test_same_traj_as_feature_classifier(self):
        # procedure in featureclassifier
        sim = unstablesim()
        init_sim_parameters(sim)
        trios = [[i, i + 1, i + 2] for i in range(1, sim.N_real - 2)]
        featureargs = [10000, 80, trios]
        triofeatures, stable = features(sim, featureargs)
        tfc = sim.t

        sim = unstablesim()
        init_sim_parameters(sim)
        try:
            sim.integrate(1e4 * sim.particles[1].P, exact_finish_time=0)
        except rebound.Collision:
            tn = sim.t
        self.assertEqual(tfc, tn)
Beispiel #8
0
def training_data(row, safolder, runfunc, args):
    try:
        sa = rebound.SimulationArchive(safolder + 'sa' + row['runstring'])
        sim = sa[0]
    except:
        print("training_data_functions.py Error reading " + safolder + 'sa' +
              row['runstring'])
        return None

    init_sim_parameters(sim)

    try:
        ret, stable = runfunc(sim, args)
    except:
        print('{0} failed'.format(row['runstring']))
        return None

    r = ret[
        0]  # all runfuncs return list of features for all adjacent trios (to not rerun for each). For training assume it's always 3 planets so list of 1 trio
    return pd.Series(r, index=list(
        r.keys()))  # conert OrderedDict to pandas Series