Example #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])
Example #2
0
def add_and_parse_evolution_args(parser, disk_args=True):
    """
    Add arguments for the binary evolution, some setup & return interpolator.

    Args:
        - parser:    An instance of argparse.ArgumentParser to fill with
            arguments defining the evolution. Must alraedy contain all other
            arguments.

        - disk_args:    Should command line arguments be added for configuring
            the initial circumstellar disk holding the primary's spin locked?

    Returns:
        same as parser.parse_args():
            An object containing the parsed command line arguments as
            members.

        :class:ManagedInterpolator:
            A stellar evolution interpolator instance.
    """

    add_spindown_args(parser)
    if disk_args:
        add_disk_args(parser)
    add_orbital_evolution_args(parser)
    cmdline_args = parser.parse_args()
    orbital_evolution_library.read_eccentricity_expansion_coefficients(
        cmdline_args.eccentricity_coef.encode('ascii'))
    print('Interp dir: ' + repr(cmdline_args.interpolator_dir))
    interpolator = StellarEvolutionManager(
        cmdline_args.interpolator_dir).get_interpolator_by_name(
            cmdline_args.interpolator)
    return cmdline_args, interpolator
Example #3
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)
Example #4
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()
Example #5
0
                        min_age=config['tdisk'],
                        max_age=(4.59 if (star_phase_lag and wind)
                                 else scipy.inf)
                    )

    @classmethod
    def setUpClass(cls):
        """Read a serialized interpolator in self.interp."""

        cls.interp = StellarEvolutionManager(
            os.path.join(poet_root, 'stellar_evolution_interpolators')
        ).get_interpolator_by_name('default')

    def setUp(self):
        """Reset plottin flag."""

        self._plotted = False

    def tearDown(self):
        """If plotting flag was set, show the plots."""

        if self._plotted:
            pyplot.show()

if __name__ == '__main__':
    orbital_evolution_library.read_eccentricity_expansion_coefficients(
        os.path.join(poet_root,
                     'eccentricity_expansion_coef.txt').encode('ascii')
    )
    unittest.main()