def __init__(self, options_reader, grid_snapshot=None):

        self.G = G_astropy.to_value(u.kpc**2 * u.km / (u.s * u.Myr * u.Msun))
        self.theta = 0.5

        self.convert_kms_Myr_to_kpc = 20000.0*np.pi / (61478577.0)
        self.kpc_in_km = 3.08567758E16
        # opt = options_reader(options_file)
        options_reader.set_options(self)
        self.options_reader = options_reader

        if not os.path.isdir(self.cache_directory):
            os.makedirs(self.cache_directory)

        self._read_snapshots_()

        # find starting star
        if self.axisymmetric:
            if self.axi_Rinit is None or self.axi_vcircfrac is None or self.axi_zinit is None:
                self._init_starting_star_()
            self._gen_axisymmetric_()
        else:
            self._init_starting_star_()

        self._init_kdtree_()

        self.evolve_model(0 | units.Myr)
Пример #2
0
    def __init__(self, options_reader, grid_snapshot=None):

        agama.setUnits(mass=1, length=1, velocity=1)

        self.G = G_astropy.to_value(u.kpc**2 * u.km / (u.s * u.Myr * u.Msun))
        self.theta = 0.5

        self.convert_kms_Myr_to_kpc = 20000.0 * np.pi / (61478577.0)
        self.kpc_in_km = 3.08567758E16
        # opt = options_reader(options_file)
        options_reader.set_options(self)
        self.options_reader = options_reader

        self.snapshot_indices = range(self.startnum - self.num_prior,
                                      self.endnum + 1)
        self.initial_key = self.num_prior

        if not os.path.isdir(self.cache_directory):
            os.makedirs(self.cache_directory)

        if self.axisymmetric:
            if self.axisymmetric_tevolve:
                self._read_snapshots_()
                self._gen_axisymmetric_(all_snaps=True)
                self.evolve_model(0 | units.Myr)
            else:
                self._read_snapshots_(first_only=True)
                self._gen_axisymmetric_()
            return None

        self._read_snapshots_()

        # find starting star
        self._init_starting_star_()

        # set up trackers
        self._init_starting_star_interpolators_()

        # set up grid
        if grid_snapshot is not None:
            self._init_grid_(grid_snapshot)
        else:
            self._init_grid_()

        self.evolve_model(0 | units.Myr)

        self.grid._grid_evolved_kdtree_ = cKDTree(self.grid.evolved_grid)
Пример #3
0
snap_idx = 600
sim_dir = '/mnt/ceph/users/firesims/fire2/metaldiff/m12i_res7100/'
gal_info = 'm12i_info.txt'

star_char_mass = 0.048
dark_softening_in_pc = 112.0
Rmax = 50.0

tend = 2000  # Myr
dt = 0.1  # Myr
tlist = np.arange(0, tend, dt)

ss_ids = [23693026, 17012804]
ss_id = ss_ids[int(sys.argv[1])]

G = G_astropy.to_value(u.kpc**2 * u.km / (u.s * u.Myr * u.Msun))
theta = 0.5

# cluster parameter
N = 256
kroupa_max = 5 | units.MSun
Rcluster = 0.8 | units.parsec
W0 = 3
softening = 0.01 | units.parsec


def get_position(snap, pos, center, pa=None):
    values = ut.coordinate.get_distances(pos, center, snap.info['box.length'],
                                         snap.snapshot['scalefactor'])
    if pa is not None:
        values = ut.coordinate.get_coordinates_rotated(values, pa)