Beispiel #1
0
def set_up_library(cmdline_args):
    """Define eccentricity expansion and return stellar evol interpolator."""

    orbital_evolution_library.read_eccentricity_expansion_coefficients(
        cmdline_args.eccentricity_expansion_fname.encode('ascii'))
    manager = StellarEvolutionManager(cmdline_args.stellar_evolution[0])
    return manager.get_interpolator_by_name(cmdline_args.stellar_evolution[1])
Beispiel #2
0
def main():
    """Make sure no globals are defined."""

    orbital_evolution_library.read_eccentricity_expansion_coefficients(
        os.path.abspath(
            os.path.dirname(__file__) + '/../../../' +
            'eccentricity_expansion_coef.txt').encode('ascii'))
    serialized_dir = os.path.abspath(
        os.path.dirname(__file__) +
        '/../../../stellar_evolution_interpolators')
    manager = StellarEvolutionManager(serialized_dir)
    interpolator = manager.get_interpolator_by_name('default')

    test_single_dissipator(interpolator, True)
Beispiel #3
0
                                     evolution_max_time_step = 1e-2)
    target = Structure(age = 5.0,
                       Porb = 3.0,
                       Psurf = 10.0,
                       planet_formation_age = 5e-3)
    star = create_star(interpolator)
    planet = create_planet()
    initial_porb, initial_psurf = find_ic(target = target,
                                          star = star,
                                          planet = planet)
    print('IC: Porb0 = %s, P*0 = %s' % (repr(initial_porb),
                                        repr(initial_psurf)))

if __name__ == '__main__':
    eccentricity_expansion_fname = b"eccentricity_expansion_coef.txt"
    orbital_evolution_library.read_eccentricity_expansion_coefficients(
        eccentricity_expansion_fname
    )
    serialized_dir = '../stellar_evolution_interpolators'
    manager = StellarEvolutionManager(serialized_dir)
    interpolator = manager.get_interpolator_by_name('default')

    test_binary_star_evolution(
        interpolator=interpolator,
#                               planet_phase_lag=phase_lag(5.0),
        convective_phase_lag=phase_lag(5.0),
        create_c_code='../poet_src/debug/test_evol.cpp',
        eccentricity_expansion_fname=eccentricity_expansion_fname
    )
#    test_ic_solver()
Beispiel #4
0
                       RRAD=0.6),
        new_interp_name='test_interp_nonan'
    )
    print(interp)

    interp = manager.get_interpolator(
        nodes=dict(RADIUS=100,
                   ICONV=100,
                   LUM=100,
                   IRAD=100,
                   MRAD=100,
                   RRAD=100),
        smoothing=dict(RADIUS=0.1,
                       ICONV=0.2,
                       LUM=float('nan'),
                       IRAD=0.4,
                       MRAD=0.5,
                       RRAD=0.6),
        new_interp_name='test_interp_lumnan'
    )
    print(interp)
    exit(0)

    print(manager.get_interpolator_by_name('test_interp_nonan'))

    print('Getting default interpolator.')
    print(manager.get_interpolator(new_interp_name='default'))
    print('Re-getting default interpolator')
    print(manager.get_interpolator())
    print('Done')
Beispiel #5
0
    def example():
        """An example of how to use this module."""

        serialized_dir = '../../stellar_evolution_interpolators'
        manager = StellarEvolutionManager(serialized_dir)
        interpolator = manager.get_interpolator_by_name('default')
        star1 = EvolvingStar(mass=1.0,
                             metallicity=0.0,
                             wind_strength=0.15,
                             wind_saturation_frequency=2.5,
                             diff_rot_coupling_timescale=5.0,
                             interpolator=interpolator)
        star2 = EvolvingStar(mass=1.0,
                             metallicity=0.0,
                             wind_strength=0.15,
                             wind_saturation_frequency=2.5,
                             diff_rot_coupling_timescale=5.0,
                             interpolator=interpolator)
        star1.set_dissipation(zone_index=0,
                              tidal_frequency_breaks=numpy.array([]),
                              spin_frequency_breaks=numpy.array([]),
                              tidal_frequency_powers=numpy.array([0.0]),
                              spin_frequency_powers=numpy.array([0.0]),
                              reference_phase_lag=0.1)
        star1.set_dissipation(zone_index=1,
                              tidal_frequency_breaks=numpy.array([1.0]),
                              spin_frequency_breaks=numpy.array([]),
                              tidal_frequency_powers=numpy.array([0.0, 1.0]),
                              spin_frequency_powers=numpy.array([0.0]),
                              reference_phase_lag=0.1)
        star2.set_dissipation(zone_index=0,
                              tidal_frequency_breaks=numpy.array([0.6, 1.2]),
                              spin_frequency_breaks=numpy.array([]),
                              tidal_frequency_powers=numpy.array(
                                  [0.0, 1.0, 0.0]),
                              spin_frequency_powers=numpy.array([0.0]),
                              reference_phase_lag=0.1)
        star2.set_dissipation(
            zone_index=1,
            tidal_frequency_breaks=numpy.array([0.5, 1.0, 1.5]),
            spin_frequency_breaks=numpy.array([]),
            tidal_frequency_powers=numpy.array([1.0, 2.0, 3.0, 4.0]),
            spin_frequency_powers=numpy.array([0.0]),
            reference_phase_lag=0.1)
        print('%25s %25s %25s %25s %25s' %
              ('w', 'Env1(kDt)', 'Core1(kDt)', 'Env2(kDt)', 'Core2(kDt)'))
        for wtide in numpy.linspace(0.1, 2.0, 20):
            print('%25s %25s %25s %25s %25s' %
                  (wtide,
                   repr(
                       star1.modified_phase_lag(zone_index=0,
                                                orbital_frequency_multiplier=1,
                                                spin_frequency_multiplier=1,
                                                forcing_frequency=wtide,
                                                deriv=star1.deriv_ids['NO'])),
                   repr(
                       star1.modified_phase_lag(zone_index=1,
                                                orbital_frequency_multiplier=1,
                                                spin_frequency_multiplier=1,
                                                forcing_frequency=wtide,
                                                deriv=star1.deriv_ids['NO'])),
                   repr(
                       star2.modified_phase_lag(zone_index=0,
                                                orbital_frequency_multiplier=1,
                                                spin_frequency_multiplier=1,
                                                forcing_frequency=wtide,
                                                deriv=star2.deriv_ids['NO'])),
                   repr(
                       star2.modified_phase_lag(zone_index=1,
                                                orbital_frequency_multiplier=1,
                                                spin_frequency_multiplier=1,
                                                forcing_frequency=wtide,
                                                deriv=star2.deriv_ids['NO']))))