Esempio n. 1
0
 def define_methods(self, object):
     GravitationalDynamics.define_methods(self, object)
     self.stopping_conditions.define_methods(object)
     
     object.add_method("get_eps2", (), (nbody_system.length**2, object.ERROR_CODE))
     object.add_method("set_eps2", (nbody_system.length**2,), (object.ERROR_CODE,))
     object.add_method("get_eps2_fs_fs", (), (nbody_system.length**2, object.ERROR_CODE))
     object.add_method("set_eps2_fs_fs", (nbody_system.length**2,), (object.ERROR_CODE,))
     object.add_method("get_eps2_fs_bh", (), (nbody_system.length**2, object.ERROR_CODE))
     object.add_method("set_eps2_fs_bh", (nbody_system.length**2,), (object.ERROR_CODE,))
     object.add_method("get_eps2_bh_bh", (), (nbody_system.length**2, object.ERROR_CODE))
     object.add_method("set_eps2_bh_bh", (nbody_system.length**2,), (object.ERROR_CODE,))
     
     object.add_method("get_eta_s", (), (object.NO_UNIT, object.ERROR_CODE))
     object.add_method("set_eta_s", (object.NO_UNIT,), (object.ERROR_CODE,))
     object.add_method("get_eta_fs", (), (object.NO_UNIT, object.ERROR_CODE))
     object.add_method("set_eta_fs", (object.NO_UNIT,), (object.ERROR_CODE,))
     object.add_method("get_eta_smbh", (), (object.NO_UNIT, object.ERROR_CODE))
     object.add_method("set_eta_smbh", (object.NO_UNIT,), (object.ERROR_CODE,))
     object.add_method("get_eta_imbh", (), (object.NO_UNIT, object.ERROR_CODE))
     object.add_method("set_eta_imbh", (object.NO_UNIT,), (object.ERROR_CODE,))
     
     object.add_method("get_max_relative_energy_error", (), (object.NO_UNIT, object.ERROR_CODE))
     object.add_method("set_max_relative_energy_error", (object.NO_UNIT,), (object.ERROR_CODE,))
     object.add_method("get_maximum_timestep", (), (nbody_system.time, object.ERROR_CODE))
     object.add_method("set_maximum_timestep", (nbody_system.time,), (object.ERROR_CODE,))
     
     object.add_method("get_smbh_mass", (), (nbody_system.mass, object.ERROR_CODE))
     object.add_method("set_smbh_mass", (nbody_system.mass,), (object.ERROR_CODE,))
     
     object.add_method("get_lightspeed", (), (nbody_system.speed, object.ERROR_CODE))
     object.add_method("set_lightspeed", (nbody_system.speed,), (object.ERROR_CODE,))
Esempio n. 2
0
 def define_methods(self, handler):
     GravitationalDynamics.define_methods(self, handler)
     handler.add_method("get_eps2", (), (
         nbody_system.length * nbody_system.length,
         handler.ERROR_CODE,
     ))
     handler.add_method("set_eps2",
                        (nbody_system.length * nbody_system.length, ),
                        (handler.ERROR_CODE, ))
     handler.add_method('get_gravity_at_point', (
         nbody_system.length,
         nbody_system.length,
         nbody_system.length,
         nbody_system.length,
     ), (
         nbody_system.acceleration,
         nbody_system.acceleration,
         nbody_system.acceleration,
     ))
     handler.add_method('get_potential_at_point', (
         nbody_system.length,
         nbody_system.length,
         nbody_system.length,
         nbody_system.length,
     ), (nbody_system.potential, ))
Esempio n. 3
0
    def define_parameters(self, object):
        GravitationalDynamics.define_parameters(self, object)
        self.stopping_conditions.define_parameters(object)

        ####################################################

        object.add_method_parameter("get_t_begin",
                                    "set_t_begin",
                                    "begin_time",
                                    "Time at start of simulation",
                                    default_value=0.0 | nbody_system.time)

        object.add_method_parameter("get_dt",
                                    "set_dt",
                                    "timestep",
                                    "Constant time-step size",
                                    default_value=1e-3 | nbody_system.time)

        object.add_method_parameter("get_t",
                                    "set_t",
                                    "current_time",
                                    "Current time",
                                    default_value=0.0 | nbody_system.time)

        object.add_method_parameter("get_sakura_output_directory",
                                    "set_sakura_output_directory",
                                    "sakura_output_directory",
                                    "Output directory",
                                    default_value="./")
Esempio n. 4
0
 def define_particle_sets(self, object):
     GravitationalDynamics.define_particle_sets(self, object)
     
     self.stopping_conditions.define_particle_set(object)
     
     object.add_getter('particles', 'get_subset')
     object.add_setter('particles', 'set_subset')
Esempio n. 5
0
    def define_methods(self, object):
        GravitationalDynamics.define_methods(self, object)

        object.add_method(
            "get_time",
            (),
            (nbody_system.time, object.ERROR_CODE,)
        )
        
        object.add_method(
            "set_time",
            (nbody_system.time, ),
            (object.ERROR_CODE,)
        )

        object.add_method(
            "get_time_step",
            (),
            (nbody_system.time, object.ERROR_CODE,)
        )

        object.add_method(
            "set_time_step",
            (nbody_system.time, ),
            (object.ERROR_CODE,)
        )
Esempio n. 6
0
 def define_state(self, object):
     GravitationalDynamics.define_state(self, object)
     #GravityFieldCode.define_state(self, object)
     self.stopping_conditions.define_state(object)
     
     object.add_method('EDIT', 'new_subset')
     object.add_method('RUN', 'new_subset')
Esempio n. 7
0
    def define_parameters(self, handler):
        GravitationalDynamics.define_parameters(self, handler)
        self.stopping_conditions.define_parameters(handler)
        
        handler.add_method_parameter(
            "get_bs_tolerance", 
            "set_bs_tolerance",
            "bs_tolerance", 
            "Error tolerance of the Bulirsch-Stoer integrator", 
            default_value = 1.0e-8
        )

        handler.add_method_parameter(
            "get_word_length", 
            "set_word_length",
            "word_length", 
            "The word length, or number of bits for the mantissa, used for the arbitrary precision calculations (#digits = log10(2**# bits) ", 
            default_value = 72
        )
                
        handler.add_method_parameter(
            "get_eta", 
            "set_eta",
            "dt_param", 
            "dt_param, the time-step parameter for the adaptive time-step criterion", 
            default_value = 0.24
        )
            
        handler.add_method_parameter(
            "get_brutus_output_directory", 
            "set_brutus_output_directory",
            "brutus_output_directory", 
            "Path to the directory where Brutus stores its output", 
            default_value = "./"
        )
Esempio n. 8
0
    def __init__(self, convert_nbody=None, **keyword_arguments):
        legacy_interface = ph4Interface(**keyword_arguments)

        self.stopping_conditions = StoppingConditions(self)

        GravitationalDynamics.__init__(self, legacy_interface, convert_nbody,
                                       **keyword_arguments)
Esempio n. 9
0
    def define_particle_sets(self, object):
        GravitationalDynamics.define_particle_sets(self, object)

        object.add_setter('particles', 'set_dmdt')
        object.add_getter('particles', 'get_dmdt')

        self.stopping_conditions.define_particle_set(object)
Esempio n. 10
0
 def define_particle_sets(self, object):
     GravitationalDynamics.define_particle_sets(self, object)
     
     object.add_getter('particles', 'get_particle_timestep', names = ('timestep',))
     object.add_getter('particles', 'get_potential', names=('potential_in_code',))
     
     self.stopping_conditions.define_particle_set(object)
Esempio n. 11
0
    def define_methods(self, handler):
        GravitationalDynamics.define_methods(self, handler)
        handler.add_method("new_particle", (
            nbody_system.mass,
            nbody_system.length,
            nbody_system.length,
            nbody_system.length,
            nbody_system.speed,
            nbody_system.speed,
            nbody_system.speed,
            nbody_system.length,
            handler.NO_UNIT,
        ), (
            handler.INDEX,
            handler.ERROR_CODE,
        ))

        handler.add_method("get_potential_energy", (handler.INDEX, ), (
            nbody_system.mass * nbody_system.length**2 * nbody_system.time**-2,
            handler.ERROR_CODE,
        ))

        handler.add_method("get_kinetic_energy", (handler.INDEX, ), (
            nbody_system.mass * nbody_system.length**2 * nbody_system.time**-2,
            handler.ERROR_CODE,
        ))
        handler.add_method('evolve_model', (nbody_system.time, handler.INDEX),
                           (handler.ERROR_CODE, ))
        handler.add_method('get_time', (handler.INDEX, ), (
            nbody_system.time,
            handler.ERROR_CODE,
        ))

        handler.add_method("get_time_step", (handler.INDEX, ), (
            nbody_system.time,
            handler.ERROR_CODE,
        ))

        handler.add_method("set_time_step", (
            nbody_system.time,
            handler.INDEX,
        ), (handler.ERROR_CODE, ))

        handler.add_method(
            "get_state", (handler.NO_UNIT, ),
            (nbody_system.mass, nbody_system.length, nbody_system.length,
             nbody_system.length, nbody_system.speed, nbody_system.speed,
             nbody_system.speed, nbody_system.length, handler.NO_UNIT,
             handler.ERROR_CODE))
        handler.add_method("get_subset", (handler.NO_UNIT, ),
                           (handler.NO_UNIT, handler.ERROR_CODE))
        handler.add_method("set_subset", (
            handler.NO_UNIT,
            handler.NO_UNIT,
        ), (handler.ERROR_CODE, ))
        handler.add_method('new_subset', (nbody_system.time, ), (
            handler.INDEX,
            handler.ERROR_CODE,
        ))
        self.stopping_conditions.define_methods(handler)
Esempio n. 12
0
    def define_state(self, handler):
        GravitationalDynamics.define_state(self, handler)
        #GravityFieldCode.define_state(self, handler)
        self.stopping_conditions.define_state(handler)

        handler.add_method('EDIT', 'new_subset')
        handler.add_method('RUN', 'new_subset')
Esempio n. 13
0
    def define_particle_sets(self, handler):
        GravitationalDynamics.define_particle_sets(self, handler)

        self.stopping_conditions.define_particle_set(handler)

        handler.add_getter('particles', 'get_subset')
        handler.add_setter('particles', 'set_subset')
Esempio n. 14
0
    def define_parameters(self, object):
        GravitationalDynamics.define_parameters(self, object)
        self.stopping_conditions.define_parameters(object)
        
        object.add_method_parameter(
            "get_bs_tolerance", 
            "set_bs_tolerance",
            "bs_tolerance", 
            "Error tolerance of the Bulirsch-Stoer integrator", 
            default_value = 1.0e-8
        )

        object.add_method_parameter(
            "get_word_length", 
            "set_word_length",
            "word_length", 
            "The word length, or number of bits for the mantissa, used for the arbitrary precision calculations (#digits = log10(2**# bits) ", 
            default_value = 72
        )
                
        object.add_method_parameter(
            "get_eta", 
            "set_eta",
            "dt_param", 
            "dt_param, the time-step parameter for the adaptive time-step criterion", 
            default_value = 0.24
        )
            
        object.add_method_parameter(
            "get_brutus_output_directory", 
            "set_brutus_output_directory",
            "brutus_output_directory", 
            "Path to the directory where Brutus stores its output", 
            default_value = "./"
        )
Esempio n. 15
0
    def define_parameters(self, object):
        GravitationalDynamics.define_parameters(self, object)
        self.stopping_conditions.define_parameters(object)

        ####################################################

        object.add_method_parameter(
            "get_t_begin",
            "set_t_begin",
            "begin_time",
            "Time at start of simulation",
            default_value=0.0 | nbody_system.time,
        )

        object.add_method_parameter(
            "get_dt", "set_dt", "timestep", "Constant time-step size", default_value=1e-3 | nbody_system.time
        )

        object.add_method_parameter(
            "get_t", "set_t", "current_time", "Current time", default_value=0.0 | nbody_system.time
        )

        object.add_method_parameter(
            "get_sakura_output_directory",
            "set_sakura_output_directory",
            "sakura_output_directory",
            "Output directory",
            default_value="./",
        )
Esempio n. 16
0
    def __init__(self, convert_nbody=None, **options):
        self.stopping_conditions = StoppingConditions(self)

        legacy_interface = SakuraInterface(**options)
        self.legacy_doc = legacy_interface.__doc__

        GravitationalDynamics.__init__(self, legacy_interface, convert_nbody, **options)
Esempio n. 17
0
    def define_state(self, handler):
        GravitationalDynamics.define_state(self, handler)
        GravityFieldCode.define_state(self, handler)

        handler.add_method('RUN', 'get_state_string')
        handler.add_method('RUN', 'get_position_string')
        handler.add_method('RUN', 'get_velocity_string')
        handler.add_method('RUN', 'get_time_string')
        handler.add_method('RUN', 'get_radius_string')
        handler.add_method('RUN', 'get_mass_string')
        handler.add_method('RUN', 'get_total_energy_string')
        handler.add_method('RUN', 'get_kinetic_energy_string')
        handler.add_method('RUN', 'get_potential_energy_string')
        handler.add_method('RUN', 'get_total_mass_string')
        handler.add_method('EDIT', 'new_particle_string')
        handler.add_method('UPDATE', 'new_particle_string')
        handler.add_method('EDIT', 'add_step_acceleration_float64')
        handler.add_method('UPDATE', 'add_step_acceleration_float64')
        handler.add_method('INITIALIZED', 'set_word_length')
        handler.add_method('EDIT', 'set_word_length')
        handler.add_method('UPDATE', 'set_word_length')

        handler.add_transition('RUN', 'UPDATE', 'new_particle_string', False)
        handler.add_transition('RUN', 'UPDATE', 'set_velocity_string', False)
        handler.add_transition('RUN', 'UPDATE', 'set_position_string', False)
        handler.add_transition('RUN', 'UPDATE', 'set_radius_string', False)
        handler.add_transition('RUN', 'UPDATE', 'set_mass_string', False)
        handler.add_transition('RUN', 'UPDATE', 'set_state_string', False)
        handler.add_transition('RUN', 'UPDATE',
                               'add_step_acceleration_float64', False)
        handler.add_transition('RUN', 'UPDATE', 'set_word_length', False)
Esempio n. 18
0
 def __init__(self, convert_nbody=None, **options):
     GravitationalDynamics.__init__(
         self, 
         MikkolaInterface(**options),
         convert_nbody,
         **options
     )
Esempio n. 19
0
    def define_parameters(self, handler):
        GravitationalDynamics.define_parameters(self, handler)

        handler.add_method_parameter("get_time_step",
                                     "set_time_step",
                                     "timestep",
                                     "initial timestep for iteration",
                                     default_value=1.0 | nbody_system.time)
        handler.add_method_parameter("get_lightspeed",
                                     "set_lightspeed",
                                     "lightspeed",
                                     "lightspeed used in the code",
                                     default_value=1.0
                                     | nbody_system.length / nbody_system.time)
        handler.add_method_parameter("get_tolerance",
                                     "set_tolerance",
                                     "tolerance",
                                     "tolerance used in the code",
                                     default_value=1e-13)
        handler.add_method_parameter(
            "get_maximum_number_of_particles",
            "set_maximum_number_of_particles",
            "maximum_number_of_particles",
            "the code will evolve this number of particles, please be sure to account for mergers",
            default_value=100)
        handler.add_boolean_parameter(
            "get_evolve_to_exact_time", "set_evolve_to_exact_time",
            "evolve_to_exact_time",
            "the code will evolve the model to the exact time given in evolve_model",
            True)
Esempio n. 20
0
    def __init__(self, convert_nbody = None, **keyword_arguments):
        legacy_interface = HiGPUsInterface(**keyword_arguments)

        GravitationalDynamics.__init__(self,  
                                       legacy_interface,
                                       convert_nbody,
                                       **keyword_arguments)
Esempio n. 21
0
    def define_methods(self, handler):
        GravitationalDynamics.define_methods(self, handler)
        self.stopping_conditions.define_methods(handler)

        ####################################################

        handler.add_method("get_t_begin", (), (
            nbody_system.time,
            handler.ERROR_CODE,
        ))
        handler.add_method("set_t_begin", (nbody_system.time, ),
                           (handler.ERROR_CODE, ))

        handler.add_method("get_dt", (), (
            nbody_system.time,
            handler.ERROR_CODE,
        ))
        handler.add_method("set_dt", (nbody_system.time, ),
                           (handler.ERROR_CODE, ))

        handler.add_method("get_t", (), (
            nbody_system.time,
            handler.ERROR_CODE,
        ))
        handler.add_method("set_t", (nbody_system.time, ),
                           (handler.ERROR_CODE, ))
Esempio n. 22
0
    def define_state(self, handler):
        GravitationalDynamics.define_state(self, handler)

        handler.add_method('RUN', 'get_kinetic_energy')
        handler.add_method('RUN', 'get_potential_energy')

        self.stopping_conditions.define_state(handler)
Esempio n. 23
0
 def define_methods(self, handler):
     GravitationalDynamics.define_methods(self, handler)
     self.stopping_conditions.define_methods(handler)
     
     handler.add_method("get_eps2", (), (nbody_system.length**2, handler.ERROR_CODE))
     handler.add_method("set_eps2", (nbody_system.length**2,), (handler.ERROR_CODE,))
     handler.add_method("get_eps2_fs_fs", (), (nbody_system.length**2, handler.ERROR_CODE))
     handler.add_method("set_eps2_fs_fs", (nbody_system.length**2,), (handler.ERROR_CODE,))
     handler.add_method("get_eps2_fs_bh", (), (nbody_system.length**2, handler.ERROR_CODE))
     handler.add_method("set_eps2_fs_bh", (nbody_system.length**2,), (handler.ERROR_CODE,))
     handler.add_method("get_eps2_bh_bh", (), (nbody_system.length**2, handler.ERROR_CODE))
     handler.add_method("set_eps2_bh_bh", (nbody_system.length**2,), (handler.ERROR_CODE,))
     
     handler.add_method("get_eta_s", (), (handler.NO_UNIT, handler.ERROR_CODE))
     handler.add_method("set_eta_s", (handler.NO_UNIT,), (handler.ERROR_CODE,))
     handler.add_method("get_eta_fs", (), (handler.NO_UNIT, handler.ERROR_CODE))
     handler.add_method("set_eta_fs", (handler.NO_UNIT,), (handler.ERROR_CODE,))
     handler.add_method("get_eta_smbh", (), (handler.NO_UNIT, handler.ERROR_CODE))
     handler.add_method("set_eta_smbh", (handler.NO_UNIT,), (handler.ERROR_CODE,))
     handler.add_method("get_eta_imbh", (), (handler.NO_UNIT, handler.ERROR_CODE))
     handler.add_method("set_eta_imbh", (handler.NO_UNIT,), (handler.ERROR_CODE,))
     
     handler.add_method("get_max_relative_energy_error", (), (handler.NO_UNIT, handler.ERROR_CODE))
     handler.add_method("set_max_relative_energy_error", (handler.NO_UNIT,), (handler.ERROR_CODE,))
     handler.add_method("get_maximum_timestep", (), (nbody_system.time, handler.ERROR_CODE))
     handler.add_method("set_maximum_timestep", (nbody_system.time,), (handler.ERROR_CODE,))
     
     handler.add_method("get_smbh_mass", (), (nbody_system.mass, handler.ERROR_CODE))
     handler.add_method("set_smbh_mass", (nbody_system.mass,), (handler.ERROR_CODE,))
     
     handler.add_method("get_lightspeed", (), (nbody_system.speed, handler.ERROR_CODE))
     handler.add_method("set_lightspeed", (nbody_system.speed,), (handler.ERROR_CODE,))
Esempio n. 24
0
    def define_methods(self, object):
        GravitationalDynamics.define_methods(self, object)
        self.stopping_conditions.define_methods(object)

        ####################################################

        object.add_method("get_t_begin", (), (
            nbody_system.time,
            object.ERROR_CODE,
        ))
        object.add_method("set_t_begin", (nbody_system.time, ),
                          (object.ERROR_CODE, ))

        object.add_method("get_dt", (), (
            nbody_system.time,
            object.ERROR_CODE,
        ))
        object.add_method("set_dt", (nbody_system.time, ),
                          (object.ERROR_CODE, ))

        object.add_method("get_t", (), (
            nbody_system.time,
            object.ERROR_CODE,
        ))
        object.add_method("set_t", (nbody_system.time, ),
                          (object.ERROR_CODE, ))
Esempio n. 25
0
    def __init__(self, convert_nbody=None, **options):
        self.stopping_conditions = StoppingConditions(self)

        legacy_interface = self.__interface__(**options)

        GravitationalDynamics.__init__(self, legacy_interface, convert_nbody,
                                       **options)
Esempio n. 26
0
    def define_state(self, object):
        GravitationalDynamics.define_state(self, object)
        
        object.add_method('RUN', 'get_kinetic_energy')
        object.add_method('RUN', 'get_potential_energy')

        self.stopping_conditions.define_state(object)
Esempio n. 27
0
 def define_methods(self, handler):
     GravitationalDynamics.define_methods(self, handler)
     handler.add_method(
         "set_time",
         (nbody_system.time,),
         (handler.ERROR_CODE,)
     )
     handler.add_method(
         "set_time_step",
         (nbody_system.time,),
         (handler.ERROR_CODE,)
     )
     handler.add_method(
         "get_eps2",
         (),
         (nbody_system.length**2, handler.ERROR_CODE,)
     )
     handler.add_method(
         "get_time",
         (),
         (nbody_system.time, handler.ERROR_CODE,)
     )
     handler.add_method(
         "set_eps2",
         (nbody_system.length**2,),
         (handler.ERROR_CODE,)
     )
     self.stopping_conditions.define_methods(handler)
Esempio n. 28
0
    def define_methods(self, object):
        GravitationalDynamics.define_methods(self, object)
        self.stopping_conditions.define_methods(object)

        object.add_method("get_bs_tolerance", (), (
            object.NO_UNIT,
            object.ERROR_CODE,
        ))
        object.add_method("set_bs_tolerance", (object.NO_UNIT, ),
                          (object.ERROR_CODE, ))

        object.add_method("get_word_length", (), (
            object.NO_UNIT,
            object.ERROR_CODE,
        ))
        object.add_method("set_word_length", (object.NO_UNIT, ),
                          (object.ERROR_CODE, ))

        object.add_method("get_eta", (), (
            object.NO_UNIT,
            object.ERROR_CODE,
        ))
        object.add_method("set_eta", (object.NO_UNIT, ), (object.ERROR_CODE, ))

        object.add_method("get_brutus_output_directory", (), (
            object.NO_UNIT,
            object.ERROR_CODE,
        ))
        object.add_method("set_brutus_output_directory", (object.NO_UNIT, ),
                          (object.ERROR_CODE, ))
Esempio n. 29
0
 def define_state(self, object):
     GravitationalDynamics.define_state(self, object)
     #GravityFieldCode.define_state(self, object)
     self.stopping_conditions.define_state(object)
     
     object.add_method('EDIT', 'new_subset')
     object.add_method('RUN', 'new_subset')
Esempio n. 30
0
    def define_methods(self, handler):
        GravitationalDynamics.define_methods(self, handler)

        handler.add_method("set_lightspeed",
                           (nbody_system.length / nbody_system.time, ),
                           (handler.ERROR_CODE, ))

        handler.add_method("get_lightspeed", (), (
            nbody_system.length / nbody_system.time,
            handler.ERROR_CODE,
        ))

        handler.add_method("set_time_step", (nbody_system.time, ),
                           (handler.ERROR_CODE, ))

        handler.add_method("set_tolerance", (handler.NO_UNIT, ),
                           (handler.ERROR_CODE, ))

        handler.add_method("get_tolerance", (), (
            handler.NO_UNIT,
            handler.ERROR_CODE,
        ))

        handler.add_method("get_radiated_gravitational_energy", (), (
            nbody_system.mass * nbody_system.length**2 * nbody_system.time**-2,
            handler.ERROR_CODE,
        ))

        handler.add_method("get_total_energy", (), (
            nbody_system.mass * nbody_system.length**2 * nbody_system.time**-2,
            handler.ERROR_CODE,
        ))
Esempio n. 31
0
 def define_methods(self, object):
     GravitationalDynamics.define_methods(self, object)
     object.add_method(
         "set_time",
         (nbody_system.time,),
         (object.ERROR_CODE,)
     )
     object.add_method(
         "set_time_step",
         (nbody_system.time,),
         (object.ERROR_CODE,)
     )
     object.add_method(
         "get_eps2",
         (),
         (nbody_system.length**2, object.ERROR_CODE,)
     )
     object.add_method(
         "get_time",
         (),
         (nbody_system.time, object.ERROR_CODE,)
     )
     object.add_method(
         "set_eps2",
         (nbody_system.length**2,),
         (object.ERROR_CODE,)
     )
     self.stopping_conditions.define_methods(object)
Esempio n. 32
0
 def define_methods(self, object):
     GravitationalDynamics.define_methods(self, object)
     object.add_method(
         "new_gas_particle",
         (nbody_system.mass, nbody_system.length, nbody_system.length,
          nbody_system.length, nbody_system.speed, nbody_system.speed,
          nbody_system.speed), (object.INDEX, object.ERROR_CODE))
Esempio n. 33
0
    def define_state(self, object):
        GravitationalDynamics.define_state(self, object)

        object.add_method('RUN', 'get_kinetic_energy')
        object.add_method('RUN', 'get_potential_energy')

        self.stopping_conditions.define_state(object)
Esempio n. 34
0
 def define_methods(self, object):
     GravitationalDynamics.define_methods(self, object)
     object.add_method(
         "set_time",
         (nbody_system.time,),
         (object.ERROR_CODE,)
     )
     object.add_method(
         "set_time_step",
         (nbody_system.time,),
         (object.ERROR_CODE,)
     )
     object.add_method(
         "get_eps2",
         (),
         (nbody_system.length**2, object.ERROR_CODE,)
     )
     object.add_method(
         "get_time",
         (),
         (nbody_system.time, object.ERROR_CODE,)
     )
     object.add_method(
         "set_eps2",
         (nbody_system.length**2,),
         (object.ERROR_CODE,)
     )
     self.stopping_conditions.define_methods(object)
Esempio n. 35
0
    def define_parameters(self, handler):
        GravitationalDynamics.define_parameters(self, handler)
        self.stopping_conditions.define_parameters(handler)

        handler.add_method_parameter(
            "get_eps2",
            "set_eps2",
            "epsilon_squared",
            "smoothing  parameter for gravity calculations",
            default_value=0.0 | nbody_system.length * nbody_system.length)

        handler.add_method_parameter(
            "get_changeover_rout",
            "set_changeover_rout",
            "r_out",
            ("changeover radius outer boundary reference for switching"
             " long/short-range interactions (if zero, auto-determine)"),
            default_value=0.0 | nbody_system.length)

        handler.add_method_parameter(
            "get_changeover_ratio",
            "set_changeover_ratio",
            "ratio_r_cut",
            "Changeover radius ratio between the inner and outer boundaries",
            default_value=0.1)

        handler.add_method_parameter(
            "get_group_radius",
            "set_group_radius",
            "r_bin",
            ("Group detection maximum radius to switch on AR (if zero,"
             " auto-determine)"),
            default_value=0.0 | nbody_system.length)

        handler.add_method_parameter(
            "get_rsearch_min",
            "set_rsearch_min",
            "r_search_min",
            "Minimum neighbor searching radius (if zero, auto-determine)",
            default_value=0.0 | nbody_system.length)

        handler.add_method_parameter("get_theta",
                                     "set_theta",
                                     "theta",
                                     "Tree opening angle",
                                     default_value=0.3)

        handler.add_method_parameter("get_gravitational_constant",
                                     "set_gravitational_constant",
                                     "gravitational_constant",
                                     "Gravitational constant",
                                     default_value=0.3)

        handler.add_method_parameter(
            "get_tree_step",
            "set_tree_step",
            "dt_soft",
            "Tree time step (if zero, auto-determine)",
            default_value=0.0 | nbody_system.time)
Esempio n. 36
0
    def __init__(self, convert_nbody=None, **options):
        if not options.has_key("processor"):
            options["processor"] = None

        nbody_interface = YaraviInterface(**options)

        GravitationalDynamics.__init__(self, nbody_interface, convert_nbody,
                                       **options)
Esempio n. 37
0
    def __init__(self, convert_nbody=None, **keyword_arguments):
        self.stopping_conditions = StoppingConditions(self)

        GravitationalDynamics.__init__(
            self,
            petarInterface(**keyword_arguments),
            convert_nbody,
            **keyword_arguments)
Esempio n. 38
0
 def define_state(self, object):
     GravitationalDynamics.define_state(self, object)
     object.add_method('EDIT', 'new_central_particle')
     object.add_method('EDIT', 'new_orbiter')
     object.add_method('UPDATE', 'new_orbiter')
     object.add_transition('RUN', 'UPDATE', 'new_central_particle', False)
     object.add_transition('RUN', 'UPDATE', 'new_orbiter', False)
     self.stopping_conditions.define_state(object)
Esempio n. 39
0
 def define_state(self, object):
     GravitationalDynamics.define_state(self, object)
     object.add_method('EDIT', 'new_central_particle')
     object.add_method('EDIT', 'new_orbiter')
     object.add_method('UPDATE', 'new_orbiter')
     object.add_transition('RUN', 'UPDATE', 'new_central_particle', False)
     object.add_transition('RUN', 'UPDATE', 'new_orbiter', False)
     object.add_method('RUN', 'recommit_particles')
Esempio n. 40
0
    def __init__(self, convert_nbody=None, **options):
        self.stopping_conditions = StoppingConditions(self)

        legacy_interface = MercuryInterface(**options)
        self.legacy_doc = legacy_interface.__doc__

        GravitationalDynamics.__init__(self, legacy_interface, convert_nbody,
                                       **options)
Esempio n. 41
0
 def define_state(self, object):
     GravitationalDynamics.define_state(self, object)
     object.add_method('EDIT', 'new_central_particle')
     object.add_method('EDIT', 'new_orbiter')
     object.add_method('UPDATE', 'new_orbiter')
     object.add_transition('RUN', 'UPDATE', 'new_central_particle', False)
     object.add_transition('RUN', 'UPDATE', 'new_orbiter', False)
     object.add_method('RUN', 'recommit_particles')
Esempio n. 42
0
 def define_state(self, object):
     GravitationalDynamics.define_state(self, object)
     object.add_method('EDIT', 'new_central_particle')
     object.add_method('EDIT', 'new_orbiter')
     object.add_method('UPDATE', 'new_orbiter')
     object.add_transition('RUN', 'UPDATE', 'new_central_particle', False)
     object.add_transition('RUN', 'UPDATE', 'new_orbiter', False)
     self.stopping_conditions.define_state(object)
Esempio n. 43
0
    def define_state(self, object):
        GravitationalDynamics.define_state(self, object)
        GravityFieldCode.define_state(self, object)
        
# this should be checked!
        object.add_method('EDIT', 'get_gravity_at_point')
        object.add_method('EDIT', 'get_potential_at_point')
        
        self.stopping_conditions.define_state(object)
Esempio n. 44
0
    def __init__(self, unit_converter = None, **options):
        self.stopping_conditions = StoppingConditions(self)

        GravitationalDynamics.__init__(
            self,
            StubInterface(**options),
            unit_converter,
            **options
        )
Esempio n. 45
0
    def __init__(self, convert_nbody=None, **options):
        nbody_interface = TupanInterface(**options)

        GravitationalDynamics.__init__(
            self,
            nbody_interface,
            convert_nbody,
            **options
        )
Esempio n. 46
0
    def __init__(self, convert_nbody = None, **keyword_arguments):
        legacy_interface = ph4Interface(**keyword_arguments)

        self.stopping_conditions = StoppingConditions(self)
        
        GravitationalDynamics.__init__(self,
                                       legacy_interface,
                                       convert_nbody,
                                       **keyword_arguments)
Esempio n. 47
0
    def __init__(self, convert_nbody = None, **options):

        legacy_interface = self.__interface__(**options)

        GravitationalDynamics.__init__(
                self,
                legacy_interface,
                convert_nbody,
                **options
                )
Esempio n. 48
0
    def __init__(self, convert_nbody = None, **options):
        legacy_interface = OctgravInterface(**options)
        self.stopping_conditions = StoppingConditions(self)

        GravitationalDynamics.__init__(
            self,
            legacy_interface,
            convert_nbody,
            **options
        )
Esempio n. 49
0
    def define_methods(self, object):
        GravitationalDynamics.define_methods(self, object)

        object.add_method(
            "get_eta",
            (),
            (object.NO_UNIT, object.ERROR_CODE,)
        )

        object.add_method(
            "set_eta",
            (object.NO_UNIT,),
            (object.ERROR_CODE,)
        )

        object.add_method(
            "get_time",
            (),
            (nbody_system.time, object.ERROR_CODE,)
        )

        object.add_method(
            "set_begin_time",
            (nbody_system.time,),
            (object.ERROR_CODE,)
        )
        object.add_method(
            "get_begin_time",
            (),
            (nbody_system.time, object.ERROR_CODE,)
        )

        object.add_method(
            "get_eps2",
            (),
            (nbody_system.length * nbody_system.length, object.ERROR_CODE,)
        )

        object.add_method(
            "set_eps2",
            (nbody_system.length * nbody_system.length, ),
            (object.ERROR_CODE,)
        )

        object.add_method(
            "set_clight",
            (nbody_system.speed,),
            (object.ERROR_CODE,)
        )
        object.add_method(
            "get_clight",
            (),
            (nbody_system.speed, object.ERROR_CODE,)
        )
Esempio n. 50
0
 def __init__(self, unit_converter = None, **options):
     self.stopping_conditions = StoppingConditions(self)
     
     
     legacy_interface = BonsaiInterface(**options)
     GravitationalDynamics.__init__(
         self,
         legacy_interface,
         unit_converter,
         **options
     )
Esempio n. 51
0
    def define_methods(self, object):
        GravitationalDynamics.define_methods(self, object)

        object.add_method(
            "get_eps2",
            (),
            (nbody_system.length * nbody_system.length, object.ERROR_CODE,)
        )

        object.add_method(
            "set_eps2",
            (nbody_system.length * nbody_system.length, ),
            (object.ERROR_CODE,)
        )

        object.add_method(
            "get_eta",
            (),
            (object.NO_UNIT, object.ERROR_CODE,)
        )

        object.add_method(
            "set_eta1",
            (object.NO_UNIT, ),
            (object.ERROR_CODE,)
        )

        object.add_method(
            "get_eta_s",
            (),
            (object.NO_UNIT, object.ERROR_CODE,)
        )

        object.add_method(
            "set_eta_s",
            (object.NO_UNIT, ),
            (object.ERROR_CODE,)
        )

        object.add_method(
            "get_initialize_once",
            (),
            (object.NO_UNIT, object.ERROR_CODE,)
        )

        object.add_method(
            "set_initialize_once",
            (object.NO_UNIT, ),
            (object.ERROR_CODE,)
        )

        self.stopping_conditions.define_methods(object)
Esempio n. 52
0
    def define_methods(self, object):
        GravitationalDynamics.define_methods(self, object)
        
        object.add_method(
            "get_eps2",
            (),
            (nbody_system.length * nbody_system.length, object.ERROR_CODE,)
        )
        
        object.add_method(
            "set_eps2",
            (nbody_system.length * nbody_system.length, ),
            (object.ERROR_CODE,)
        )
        
        object.add_method(
            "get_timestep_parameter",
            (),
            (object.NO_UNIT, object.ERROR_CODE,)
        )
        
        object.add_method(
            "set_timestep_parameter",
            (object.NO_UNIT, ),
            (object.ERROR_CODE,)
        )

        object.add_method(
            "get_timestep",
            (),
            (nbody_system.time, object.ERROR_CODE,)
        )
        
        object.add_method(
            "set_timestep",
            (nbody_system.time, ),
            (object.ERROR_CODE,)
        )

        
        object.add_method(
            "get_inttype_parameter",
            (),
            (object.NO_UNIT, object.ERROR_CODE,)
        )
        
        object.add_method(
            "set_inttype_parameter",
            (object.NO_UNIT, ),
            (object.ERROR_CODE,)
        )
        self.stopping_conditions.define_methods(object)
Esempio n. 53
0
 def define_parameters(self, object):
     GravitationalDynamics.define_parameters(self, object)
     self.stopping_conditions.define_parameters(object)
     
     object.add_method_parameter(
         "get_bs_tolerance_float64", 
         "set_bs_tolerance_float64",
         "bs_tolerance", 
         "Error tolerance of the Bulirsch-Stoer integrator", 
         default_value = 1.0e-6
     )
     
     object.add_method_parameter(
         "get_eps2", 
         "set_eps2",
         "epsilon_squared", 
         "smoothing parameter for gravity calculations, usage is not recommended for Adaptb", 
         default_value = 0.0 | nbody_system.length**2
     )
     
     object.add_method_parameter(
         "get_dt_print", 
         "set_dt_print",
         "dt_print", 
         "dt_print, regular print interval to show status (% complete) of evolve_model", 
         default_value = 0.1 | nbody_system.time
     )
 
     object.add_method_parameter(
         "get_word_length", 
         "set_word_length",
         "word_length", 
         "The word length, or number of bits, used for the arbitrary precision calculations", 
         default_value = 64
     )
     
     object.add_method_parameter(
         "get_adaptb_output_directory", 
         "set_adaptb_output_directory",
         "adaptb_output_directory", 
         "Path to the directory where Adaptb stores its output", 
         default_value = "./"
     )
     
     object.add_method_parameter(
         "get_max_cpu_time", 
         "set_max_cpu_time",
         "time_limit_cpu", 
         "The cpu-time limit, the maximum amount of time Adaptb is allowed to run for.", 
         default_value = 3600.0 | units.s
     )
Esempio n. 54
0
 def define_methods(self, object):
     GravitationalDynamics.define_methods(self, object)
     object.add_method("get_eps2", (), (nbody_system.length * nbody_system.length, object.ERROR_CODE))
     object.add_method("set_eps2", (nbody_system.length * nbody_system.length,), (object.ERROR_CODE,))
     object.add_method(
         "get_gravity_at_point",
         (nbody_system.length, nbody_system.length, nbody_system.length, nbody_system.length),
         (nbody_system.acceleration, nbody_system.acceleration, nbody_system.acceleration),
     )
     object.add_method(
         "get_potential_at_point",
         (nbody_system.length, nbody_system.length, nbody_system.length, nbody_system.length),
         (nbody_system.potential,),
     )
Esempio n. 55
0
    def define_methods(self, object):
        GravitationalDynamics.define_methods(self, object)
        self.stopping_conditions.define_methods(object)

        ####################################################

        object.add_method("get_t_begin", (), (nbody_system.time, object.ERROR_CODE))
        object.add_method("set_t_begin", (nbody_system.time,), (object.ERROR_CODE,))

        object.add_method("get_dt", (), (nbody_system.time, object.ERROR_CODE))
        object.add_method("set_dt", (nbody_system.time,), (object.ERROR_CODE,))

        object.add_method("get_t", (), (nbody_system.time, object.ERROR_CODE))
        object.add_method("set_t", (nbody_system.time,), (object.ERROR_CODE,))
Esempio n. 56
0
    def __init__(self, convert_nbody = None, mode = PhiGRAPEInterface.MODE_G6LIB, use_gl = False, **options):
        nbody_interface = None
        if use_gl:
            nbody_interface = PhiGRAPEInterfaceGL(mode, **options)
        else:
            nbody_interface = PhiGRAPEInterface(mode, **options)

        self.stopping_conditions = StoppingConditions(self)

        GravitationalDynamics.__init__(
            self,
            nbody_interface,
            convert_nbody,
            **options
        )
Esempio n. 57
0
    def define_methods(self, object):
        GravitationalDynamics.define_methods(self, object)
        self.stopping_conditions.define_methods(object)
        
        object.add_method("get_bs_tolerance", (), (object.NO_UNIT, object.ERROR_CODE,))
        object.add_method("set_bs_tolerance", (object.NO_UNIT, ), (object.ERROR_CODE,))
 
        object.add_method("get_word_length", (), (object.NO_UNIT, object.ERROR_CODE,))
        object.add_method("set_word_length", (object.NO_UNIT, ), (object.ERROR_CODE,))

        object.add_method("get_eta", (), (object.NO_UNIT, object.ERROR_CODE,))
        object.add_method("set_eta", (object.NO_UNIT, ), (object.ERROR_CODE,))
        
        object.add_method("get_brutus_output_directory", (), (object.NO_UNIT, object.ERROR_CODE,))
        object.add_method("set_brutus_output_directory", (object.NO_UNIT, ), (object.ERROR_CODE,))
Esempio n. 58
0
 def define_methods(self, object):
     GravitationalDynamics.define_methods(self, object)
     # Define some shortcuts for better readability.
     M = nbody_system.mass
     L = nbody_system.length
     V = nbody_system.speed
     T = nbody_system.time
     object.add_method('new_particle', (M,L,L,L,V,V,V,L), (object.INDEX, object.ERROR_CODE))
     object.add_method('set_state', (object.INDEX, M,L,L,L,L,V,V,V), (object.ERROR_CODE))
     object.add_method('get_state', (object.INDEX), (M,L,L,L,L,V,V,V, object.ERROR_CODE))
     object.add_method('set_time_begin', (T), (object.ERROR_CODE))
     object.add_method('get_time_begin', (), (T, object.ERROR_CODE))
     object.add_method('get_number_of_particles', (), (units.none, object.ERROR_CODE))
     object.add_method('get_time_step', (), (T, object.ERROR_CODE))
     object.add_method('set_time_step', (T), (object.ERROR_CODE))
     object.add_method('update_force_potential_arrays', (T), (object.ERROR_CODE))