initialize_system

amuse_util.initialize_system(number_of_particles: (<class 'int'>, <class 'amuse.datamodel.particles.Particles'>), \*, imf_func: (<class 'bool'>, typing.Callable) = True, imf_args: list = [], imf_kwargs: dict = {}, distr_func: (<class 'bool'>, typing.Callable) = True, distr_args: list = [], distr_kwargs: dict = {}, Rvirial: unit<parsec> = quantity<10 parsec>, position: unit<kpc> = quantity<[0, 0, 0] kpc>, velocity: unit<kms> = quantity<[0, 0, 0] kms>, obj_radius: unit<AU> = quantity<0 AU>, evln_func: (<class 'bool'>, typing.Callable) = False, evln_kwargs: dict = {}, gravity_func: (<class 'bool'>, typing.Callable) = False, gravity_args: list = [], gravity_kwargs: dict = {}, smoothing_length: unit<parsec> = quantity<0.0 parsec>, opening_angle: float = 0.6, number_of_workers: int = 8, use_self_gravity: int = 1, converter: (<class 'amuse.units.nbody_system.nbody_to_si'>, None) = None, timestep: unit<Myr> = quantity<25 kyr>, random=True, _num_particles_reconstruct: (<class 'int'>, None) = None, logger: utilipy.utils.logging._LogFile.LogFile = <utilipy.utils.logging._LogPrint.LogPrint object at 0x11d1fbdd0>, verbose: (<class 'int'>, None) = None, _scale_to_standard: bool = True, store_inputs: bool = True)[source]

Create objects in a System.

modelled from:

Parameters
number_of_particles: int or `Particles`

if int, number of particles in the system if Particles instance, then the imf_, distr_, and kwargs before evln_func are ignored

imf_func: Callable

function for initial mass function ex) new_kroupa_mass_distribution signature of function should be:

func(number_of_particles, *imf_args,
     random=random, **imf_kwargs)
imf_args: list, optional

the arguments for imf_func

imf_kwargs: dict, optional

the kwargs for imf_func

distr_func: Callable

function for object spatial distribution ex) new_plummer_model signature of function should be:

func(number_of_particles, *distr_args,
     convert_nbody=converter, **distr_kwargs)
distr_args: list, optional

the arguments for distr_func

distr_kwargs: dict, optional

the kwargs for distr_func

Rvirial: `Quantity`, optional

the virial radius of the system, default 10 pc

position: `Quantity`, optional

the position of the system in GC coordinates default [0,0,0] pc

velocity: `Quantity`, optional

the velocity of the system in GC coordinates (default [0,0,0] kms)

obj_radius: `Quantity`, optional

the radius of the individual objects, (default 0 AU)

evln_func: Callable or False, optional

(default False) object evolution function

imf_kwargs: dict, optional

the kwargs for evln_func

gravity_func: Callable or False, optional

gravity code signature of function should be:

func(converter, *gravity_args,
     number_of_workers=number_of_workers,
     **gravity_kwargs)
gravity_args: list, optional

the arguments for gravity_func

gravity_kwargs: dict, optional

the kwargs for gravity_func

smoothing_length: Quantity, optional

the smoothing length used in scaling and the gravity (default 0 pc)

opening_angle: float, optional

(default 0.6)

number_of_workers: int, optional

number of gravity workers (default 1)

use_self_gravity: int

flag for usage of self gravity, 1 or 0 (True or False)

converter: nbody_to_si, optional

nbody converter, takes total mass and virial radius calculated if not provided

timestep: time quantity, optional

the timestep for evolving the gravity and stellar evolution (default 1 Myr)

random: True or Generator, optional

(default True) ex: np.random.default_rng(seed=0) will default to random seed

_scale_to_standard: bool

whether to call scale_to_standard

store_inputs: bool

whether to store function inputs in a BoundArguments instance default True

Returns
system: System

a dataclass object with parameters

  • particles

  • evolution

  • gravity

  • converter

  • channel_attrs

will try to automatically make channels to/from all things the amuse particles / evolution / gravity classes are proxied in a datamodel.Container that adds .name, .channel_to/from

inputs: BoundArguments

the inputs to initialize_system only returned if store_inputs is True other returned values are in now in a tuple