예제 #1
0
def write_input_file(galaxy_data, name, null_gas_ids=False):
  Npart = [len(galaxy_data['pos']['gas']), len(galaxy_data['pos']['dm']),
    len(galaxy_data['pos']['disk']), len(galaxy_data['pos']['bulge']), 0, 0]
  coords = np.concatenate((galaxy_data['pos']['gas'], galaxy_data['pos']['dm'],
    galaxy_data['pos']['disk'], galaxy_data['pos']['bulge']))
  coords.shape = (1, -1) # Linearizing the array.
  vels = np.concatenate((galaxy_data['vel']['gas'], galaxy_data['vel']['dm'],
    galaxy_data['vel']['disk'], galaxy_data['vel']['bulge']))
  vels.shape = (1, -1) # Linearizing the array.
  if null_gas_ids:
    ids = np.concatenate((np.zeros(Npart[0]), np.arange(Npart[0]+1, sum(Npart)+1, 1)))
  else:
    ids = np.arange(1, sum(Npart)+1, 1)
  m_gas = np.empty(Npart[0])
  m_gas.fill(M_gas/Npart[0])
  m_dm = np.empty(Npart[1])
  m_dm.fill(M_dm/Npart[1])
  m_disk = np.empty(Npart[2])
  m_disk.fill(M_disk/Npart[2])
  m_bulge = np.empty(Npart[3])
  m_bulge.fill(M_bulge/Npart[3])
  masses = np.concatenate((m_gas, m_dm, m_disk, m_bulge))
  U = np.zeros(Npart[0])
  rhos = np.zeros(Npart[0])
  smooths = np.zeros(Npart[0])
  write_snapshot(n_part=Npart, outfile=name,
    data_list=[coords[0], vels[0], ids, masses, U, rhos, smooths])
예제 #2
0
def write_input_file(cluster_data):
    coords = cluster_data[0]
    vels = cluster_data[1]
    if (gas):
        U = cluster_data[2]
        rho = cluster_data[3]
        smooths = np.zeros(N_gas)
        masses_gas = np.empty(N_gas)
        masses_gas.fill((M_gas * factor_gas) / N_gas)
        Zs = np.zeros(N_gas)
        Zs.fill(Z)
        if (dm):
            masses_dm = np.empty(N_dm)
            masses_dm.fill((M_dm * factor_dm) / N_dm)
            masses = np.concatenate((masses_gas, masses_dm))
            ids = np.arange(1, N_gas + N_dm + 1)
            write_snapshot(
                n_part=[N_gas, N_dm, 0, 0, 0, 0],
                outfile=output,
                data_list=[coords, vels, ids, masses, U, rho, smooths, Zs])
        else:
            masses = masses_gas
            ids = np.arange(1, N_gas + 1)
            write_snapshot(
                n_part=[N_gas, 0, 0, 0, 0, 0],
                outfile=output,
                data_list=[coords, vels, ids, masses, U, rho, smooths, Zs])
    else:
        ids = np.arange(1, N_dm + 1)
        masses_dm = np.empty(N_dm)
        masses_dm.fill(M_dm / N_dm)
        masses = masses_dm
        write_snapshot(n_part=[0, N_dm, 0, 0, 0, 0],
                       outfile=output,
                       data_list=[coords, vels, ids, masses])
예제 #3
0
파일: clustep.py 프로젝트: ruggiero/clustep
def write_input_file(cluster_data):
  coords = cluster_data[0]
  vels = cluster_data[1]
  if(gas):
    U = cluster_data[2]
    rho = cluster_data[3]
    smooths = np.zeros(N_gas)
    masses_gas = np.empty(N_gas)
    masses_gas.fill((M_gas*factor_gas) / N_gas)
    Zs = np.zeros(N_gas)
    Zs.fill(Z)
    if(dm):
      masses_dm = np.empty(N_dm)
      masses_dm.fill((M_dm*factor_dm) / N_dm)
      masses = np.concatenate((masses_gas, masses_dm))
      ids = np.arange(1, N_gas + N_dm + 1)
      write_snapshot(n_part=[N_gas, N_dm, 0, 0, 0, 0], outfile=output,
             data_list=[coords, vels, ids, masses, U, rho, smooths, Zs])
    else:
      masses = masses_gas
      ids = np.arange(1, N_gas + 1)
      write_snapshot(n_part=[N_gas, 0, 0, 0, 0, 0], outfile=output,
             data_list=[coords, vels, ids, masses, U, rho, smooths, Zs])
  else:
    ids = np.arange(1, N_dm + 1)
    masses_dm = np.empty(N_dm)
    masses_dm.fill(M_dm / N_dm)
    masses = masses_dm
    write_snapshot(n_part=[0, N_dm, 0, 0, 0, 0], outfile=output, 
            data_list=[coords, vels, ids, masses])
예제 #4
0
def write_input_file(galaxy_data):
  coords = galaxy_data[0]
  vels = galaxy_data[1]
  ids = np.arange(1, N_total+1, 1)
  m_halo = np.empty(N_halo)
  m_halo.fill(M_halo/N_halo)
  m_disk = np.empty(N_disk)
  m_disk.fill(M_disk/N_disk)
  m_bulge = np.empty(N_bulge)
  m_bulge.fill(M_bulge/N_bulge)
  if(gas):
    U = galaxy_data[2]
    rho = galaxy_data[3]
    m_gas = np.empty(N_gas)
    m_gas.fill(M_gas/N_gas)
    masses = np.concatenate((m_gas, m_halo, m_disk, m_bulge))
    smooths = np.zeros(N_gas)
    if Z > 0:
      Z_gas = np.zeros(N_gas)
      Z_gas.fill(Z)
      write_snapshot(n_part=[N_gas, N_halo, N_disk, N_bulge, 0, 0],
        outfile=output,
        data_list=[coords, vels, ids, masses, U, rho, smooths, Z_gas])
    else:
      write_snapshot(n_part=[N_gas, N_halo, N_disk, N_bulge, 0, 0],
        outfile=output,
        data_list=[coords, vels, ids, masses, U, rho, smooths])
  else:
    masses = np.concatenate((m_halo, m_disk, m_bulge))
    write_snapshot(n_part=[0, N_halo, N_disk, N_bulge, 0, 0],
      outfile=output,
      data_list=[coords, vels, ids, masses])
예제 #5
0
def write_input_file(galaxy_data):
  coords = galaxy_data[0]
  vels = galaxy_data[1]
  ids = np.arange(1, N_total+1, 1)
  m_halo = np.empty(N_halo)
  m_halo.fill(M_halo/N_halo)
  m_disk = np.empty(N_disk)
  m_disk.fill(M_disk/N_disk)
  m_bulge = np.empty(N_bulge)
  m_bulge.fill(M_bulge/N_bulge)
  if(gas):
    U = galaxy_data[2]
    rho = galaxy_data[3]
    m_gas = np.empty(N_gas)
    m_gas.fill(M_gas/N_gas)
    masses = np.concatenate((m_gas, m_halo, m_disk, m_bulge))
    smooths = np.zeros(N_gas)
    if Z > 0:
      Zs = np.zeros(N_gas + N_disk + N_bulge)
      Zs.fill(Z)
      write_snapshot(n_part=[N_gas, N_halo, N_disk, N_bulge, 0, 0],
        outfile=output,
        data_list=[coords, vels, ids, masses, U, rho, smooths, Zs],
        file_format=file_format)
    else:
      write_snapshot(n_part=[N_gas, N_halo, N_disk, N_bulge, 0, 0],
        outfile=output,
        data_list=[coords, vels, ids, masses, U, rho, smooths],
        file_format=file_format)
  else:
    masses = np.concatenate((m_halo, m_disk, m_bulge))
    write_snapshot(n_part=[0, N_halo, N_disk, N_bulge, 0, 0],
      outfile=output,
      data_list=[coords, vels, ids, masses],
      file_format=file_format)
예제 #6
0
def write_input_file(galaxy_data, name, null_gas_ids=False):
    Npart = [
        len(galaxy_data['pos']['gas']),
        len(galaxy_data['pos']['dm']),
        len(galaxy_data['pos']['disk']),
        len(galaxy_data['pos']['bulge']), 0, 0
    ]
    coords = np.concatenate(
        (galaxy_data['pos']['gas'], galaxy_data['pos']['dm'],
         galaxy_data['pos']['disk'], galaxy_data['pos']['bulge']))
    coords.shape = (1, -1)  # Linearizing the array.
    vels = np.concatenate(
        (galaxy_data['vel']['gas'], galaxy_data['vel']['dm'],
         galaxy_data['vel']['disk'], galaxy_data['vel']['bulge']))
    vels.shape = (1, -1)  # Linearizing the array.
    if null_gas_ids:
        ids = np.concatenate(
            (np.zeros(Npart[0]), np.arange(Npart[0] + 1,
                                           sum(Npart) + 1, 1)))
    else:
        ids = np.arange(1, sum(Npart) + 1, 1)
    m_gas = np.empty(Npart[0])
    m_gas.fill(M_gas / Npart[0])
    m_dm = np.empty(Npart[1])
    m_dm.fill(M_dm / Npart[1])
    m_disk = np.empty(Npart[2])
    m_disk.fill(M_disk / Npart[2])
    m_bulge = np.empty(Npart[3])
    m_bulge.fill(M_bulge / Npart[3])
    masses = np.concatenate((m_gas, m_dm, m_disk, m_bulge))
    U = np.zeros(Npart[0])
    rhos = np.zeros(Npart[0])
    smooths = np.zeros(Npart[0])
    write_snapshot(
        n_part=Npart,
        outfile=name,
        data_list=[coords[0], vels[0], ids, masses, U, rhos, smooths])
예제 #7
0
파일: galstep.py 프로젝트: ruggiero/galstep
def write_input_file(galaxy_data):
  coords = galaxy_data[0]
  vels = galaxy_data[1]
  ids = np.arange(1, N_total+1, 1)
  m_halo = np.empty(N_halo)
  m_halo.fill(halo_cut_M/N_halo)
  m_disk = np.empty(N_disk)
  m_disk.fill(M_disk*disk_cut/N_disk)
  if(bulge):
    m_bulge = np.empty(N_bulge)
    m_bulge.fill(bulge_cut_M/N_bulge)
  if(gas):
    U = galaxy_data[2]
    rho = galaxy_data[3]
    m_gas = np.empty(N_gas)
    m_gas.fill(M_gas*disk_cut/N_gas)
    if(bulge):
      masses = np.concatenate((m_gas, m_halo, m_disk, m_bulge))
    else:
      masses = np.concatenate((m_gas, m_halo, m_disk))
    smooths = np.zeros(N_gas)
    if Z > 0:
      Zs = np.zeros(N_gas + N_disk + N_bulge)
      Zs.fill(Z)
      write_snapshot([N_gas, N_halo, N_disk, N_bulge, 0, 0],
        input_,
        outfile=output,
        data_list=[coords, vels, ids, masses, U, rho, smooths, Zs],
        file_format=file_format)
    else:
      write_snapshot([N_gas, N_halo, N_disk, N_bulge, 0, 0],
        input_,
        outfile=output,
        data_list=[coords, vels, ids, masses, U, rho, smooths],
        file_format=file_format)
  else:
    if(bulge):
      masses = np.concatenate((m_halo, m_disk, m_bulge))
    else:
      masses = np.concatenate((m_halo, m_disk))
    write_snapshot([0, N_halo, N_disk, N_bulge, 0, 0],
      input_,
      outfile=output,
      data_list=[coords, vels, ids, masses],
      file_format=file_format)
예제 #8
0
if (gas == True) & (bulge == True):
    ids  = arange(0, Ngas + Nhalo + Ndisk + Nbulge, 1)
    hsml = np.zeros(Ngas)

if (bulge == True) & (gas == False):
    N = Nhalo + Ndisk + Nbulge
    ids = arange(0, N, 1)

if (bulge == False) & (gas == False):
    N = Nhalo + Ndisk
    ids = arange(0, N, 1)

print('ids.shape: ', ids.shape)
print('bulge included? ', bulge)
print('gas included? ', gas)
#------------------------------------------------------
#write output

if (gas == True) & (bulge == True):
    print('With gas and bulge')
    write_snapshot(n_part=[Ngas, Nhalo, Ndisk, Nbulge, 0, 0], from_text=False, outfile=output, data_list=[pos, vel, ids, m, u, rho, hsml])

if (bulge == True) & (gas == False):
    print('With bulge but no gas')
    write_snapshot(n_part=[0, Nhalo, Ndisk, Nbulge, 0, 0], from_text=False, outfile=output, data_list=[pos, vel, ids, m])

if (bulge == False) & (gas == False):
    print('Without gas nor bulge')
    write_snapshot(n_part=[0, Nhalo, Ndisk, 0, 0, 0], from_text=False, outfile=output, data_list=[pos, vel, ids, m])
#------------------------------------------------------
예제 #9
0
    vel = np.column_stack((vx, vy, vz))
    vel.shape = (-1, 1)

    ids = arange(0, Nhalo + Ngas, 1)
    hsml = np.zeros(Ngas)

else:
    poshalo = np.column_stack((xhalo, yhalo, zhalo))
    poshalo.shape = (-1, 1)

    velhalo = np.column_stack((vxhalo, vyhalo, vzhalo))
    velhalo.shape = (-1, 1)

    ids = arange(0, Nhalo, 1)

#------------------------------------------------------
#write output

if (gas):
    write_snapshot(n_part=[Ngas, Nhalo, 0, 0, 0, 0],
                   from_text=False,
                   outfile=output,
                   data_list=[pos, vel, ids, m, u, rho, hsml])
else:
    write_snapshot(n_part=[0, Nhalo, 0, 0, 0, 0],
                   from_text=False,
                   outfile=output,
                   data_list=[poshalo, velhalo, ids, mhalo])
#------------------------------------------------------