コード例 #1
0
ファイル: initialize.py プロジェクト: PascalSteger/darcoda
def read_z(snap):
    num5=str(snap).zfill(5)
    filename=mys.d(snap)+"/info_"+num5+".txt"
    if(not os.path.exists(filename)): exit(1)
    file = open(filename)
    i=0; z=100.0
    for line in file:
        i=i+1
        if(i==10):
            val = line.split()
            a = float(val[2])
            break
    file.close()
    return 1.0/a-1.0
コード例 #2
0
ファイル: initialize.py プロジェクト: hasanmoudud/darcoda
def read_z(snap):
    num5 = str(snap).zfill(5)
    filename = mys.d(snap) + "/info_" + num5 + ".txt"
    if (not os.path.exists(filename)): exit(1)
    file = open(filename)
    i = 0
    z = 100.0
    for line in file:
        i = i + 1
        if (i == 10):
            val = line.split()
            a = float(val[2])
            break
    file.close()
    return 1.0 / a - 1.0
コード例 #3
0
ファイル: merger_tree.py プロジェクト: hasanmoudud/darcoda
import sys
import os
import initialize as my
import mys
from numpy import *

if (len(sys.argv) != 3):
    print "usage: merger_tree.py snap1 snap2"
    print "assumption: output_00snap1,2 contain particles_dm in AHF format"
    exit(1)
snap1 = int(sys.argv[1])
snap2 = int(sys.argv[2])

# read in halos repeatedly
fname = mys.d(snap1) + "particles_dm"
print fname
in1 = my.open_file(fname, "r")
alm1 = int(in1.readline())
size1 = []
split1 = []
for i in range(alm1):
    size = int(in1.readline())
    size1.append(size)
    part = []
    for c in range(size):
        part.append(int(in1.readline()))
    split1.append(part)
in1.close()

in2 = my.open_file(mys.d(snap2) + "particles_dm", "r")
コード例 #4
0
i = len(sys.argv)
if i != 3:
    print "find_rhalf_star.py snap hid"
    exit(0)

snap = int(sys.argv[1])
hid = int(sys.argv[2])

# print "missing file"
if not mys.exists_snap(snap):
    print "snapshot " + str(snap) + " missing"
    exit(0)

xc, yc, zc, rvir = mys.getxyzrstars_hid(snap, hid)

file_name = mys.d(snap) + "stars/stars_" + str(hid) + ".dat"
if os.path.getsize(file_name) == 0:
    print "empty file"
    exit()

halo = my.open_file(file_name, "r")
x = []
y = []
z = []
N = 0
for line in halo:
    N = N + 1
    val = line.split()
    x.append(float(val[1]))
    y.append(float(val[2]))
    z.append(float(val[3]))
コード例 #5
0
    exit(0)

snap=int(sys.argv[1])
hid=int(sys.argv[2])

eps=1e-5
frad = 0.9 # shrinked sphere has radius frad*maxr,
           # i.e. frad = 0.90 means 10% smaller

#print "missing file"
if(not mys.exists_snap(snap)):
    print "snapshot "+str(snap)+" missing"
    exit(0)

xc,yc,zc,mvir,rvir=mys.getxyzmr(snap,1)
halo = my.open_file(mys.d(snap)+"stars/stars_"+str(hid)+".dat","r")
x=[];y=[];z=[];m=[]
for line in halo:
    val=line.split()
    m.append(float(val[0]))
    x.append(float(val[1]))
    y.append(float(val[2]))
    z.append(float(val[3]))

x = array(x); y = array(y); z = array(z); m = array(m)
#print x

def converged(xc,yc,zc,xc2,yc2,zc2):
    return  abs(xc-xc2)/abs(xc)   < eps \
        and abs(yc-yc2)/abs(yc)   < eps \
        and abs(zc-zc2)/abs(zc)   < eps #\
コード例 #6
0
    exit(0)

snap = int(sys.argv[1])
hid = int(sys.argv[2])

eps = 1e-5
frad = 0.9  # shrinked sphere has radius frad*maxr,
# i.e. frad = 0.90 means 10% smaller

# print "missing file"
if not mys.exists_snap(snap):
    print "snapshot " + str(snap) + " missing"
    exit(0)

xc, yc, zc, mvir, rvir = mys.getxyzmr(snap, 1)
halo = my.open_file(mys.d(snap) + "stars/stars_" + str(hid) + ".dat", "r")
x = []
y = []
z = []
m = []
for line in halo:
    val = line.split()
    m.append(float(val[0]))
    x.append(float(val[1]))
    y.append(float(val[2]))
    z.append(float(val[3]))

x = array(x)
y = array(y)
z = array(z)
m = array(m)
コード例 #7
0
import os
import initialize as my
import mys

os.nice(10)

show = True
run = True
loop = True

i = len(sys.argv)
if (i != 2):
    print "usage: gen_particles_dm.py snap"
    exit(1)

snap = int(sys.argv[1])
d = mys.d(snap)
pdm = d + "particles_dm"
nhalo = mys.get_nhalo(snap)
os.system("rm " + d + "particles_dm")
os.system("echo '" + str(nhalo) + "' >> " + pdm)
for c in range(nhalo):
    tmpdat = d + "tmp_" + str(c + 1) + ".dat"
    cmd = "echo $(wc -l " + tmpdat + "|cut -d' ' -f1) >> " + pdm + ";"
    cmd = cmd + "cat " + tmpdat + ">>" + pdm + ";"
    cmd = cmd + "rm " + tmpdat
    if (show): print(cmd)
    if (run): os.system(cmd)
    if (not loop): break
    # TODO: stars only
コード例 #8
0
ファイル: gen_spheres.py プロジェクト: PascalSteger/darcoda
show    = True
run     = True

gsd = "get_sphere_dm"
gss = "get_sphere_stars"

i = len(sys.argv)
if(i!=3):
    print "usage: gen_spheres.py snap typ"
    exit(1)
    
facr = 1 # * rvir from AHF for maximal radial distance to include particles

snap = sys.argv[1]
typ = int(sys.argv[2])
sim = mys.d(snap)

# get xc,yc,zc,mvir,rvir

xcl,ycl,zcl,mvirl,rvirl = mys.getxyzmr(snap,typ)
xsl,ysl,zsl,rsl = mys.getxyzrstars(snap,typ)

#print 'select ',xcl[0]
#print len(xcl)

for i in range(len(xcl)):
    xc=str(xcl[i]);       xs=str(xsl[i]);
    yc=str(ycl[i]);       ys=str(ysl[i]);
    zc=str(zcl[i]);       zs=str(zsl[i]);
    r=str(rvirl[i]*facr); rs=str(rsl[i]*facr*0.9);
    sj=str(i+1)
コード例 #9
0
i=len(sys.argv)
if(i!=3):
    print "find_rhalf_star.py snap hid"
    exit(0)

snap=int(sys.argv[1])
hid=int(sys.argv[2])

#print "missing file"
if(not mys.exists_snap(snap)):
    print "snapshot "+str(snap)+" missing"
    exit(0)

xc,yc,zc,rvir=mys.getxyzrstars_hid(snap,hid)

file_name=mys.d(snap)+"stars/stars_"+str(hid)+".dat"
if(os.path.getsize(file_name)==0):
    print "empty file"
    exit()

halo = my.open_file(file_name,"r")
x=[];y=[];z=[]; N=0
for line in halo:
    N=N+1
    val=line.split()
    x.append(float(val[1]))
    y.append(float(val[2]))
    z.append(float(val[3]))

x = array(x); y = array(y); z = array(z)
r  = np.sqrt((x-xc)**2+(y-yc)**2+(z-zc)**2)
コード例 #10
0
ファイル: substructure.py プロジェクト: hasanmoudud/darcoda
import sys
import os
from numpy import *
import initialize as my
import mys

if (len(sys.argv) != 2):
    print "usage: substructure.py snap"
    print "assumption: output_snap contains particles_dm in AHF format"
    print "wrong number of arguments"
    exit(1)

snap = int(sys.argv[1])
# read in halos repeatedly
inf = my.open_file(mys.d(snap) + "particles_dm", "r")
alm = int(inf.readline())
size = []
split = []
for i in range(alm):
    siz = int(inf.readline())
    size.append(siz)
    part = []
    for c in range(siz):
        part.append(int(inf.readline()))
    split.append(part)
inf.close()

print "read in successful"

コード例 #11
0
ファイル: master.py プロジェクト: hasanmoudud/darcoda
if (i == 1):
    for k in range(18):
        my.run("master.py " + str(k))
    sys.exit(0)

action = int(sys.argv[1])

if (action == -1):
    mys.clear()

if (action == 0):
    print "prepare output folder structure, MySQL structure"
    #    mys.setup()
    #    mys.fill_sim(simdir,num,nstart,nstop)
    for ncounter in range(nstop - nstart + 1):
        d = mys.d(nstart + ncounter)
        #        d=simdir+"/output_"+str(ncounter+nstart).zfill(5)+"/";
        my.mkdir(d + 'amr')
        my.mkdir(d + 'grav')
        my.mkdir(d + 'hydro')
        my.mkdir(d + 'part')
        my.mv(d + "amr_*", d + "amr")
        my.mv(d + "grav_*", d + '/grav')
        my.mv(d + "hydro_*", d + '/hydro')
        my.mv(d + 'part_*', d + '/part')

# convert to Gadget file format
if (action == 1):
    for ncounter in range(nstop - nstart + 1):
        nc = ncounter + nstart
        num5 = str(nc).zfill(5)
コード例 #12
0
ファイル: shrink_sphere.py プロジェクト: PascalSteger/darcoda
    exit(0)

snap=int(sys.argv[1])
hid=int(sys.argv[2])

eps=1e-5
frad = 0.9 # shrinked sphere has radius frad*maxr,
           # i.e. frad = 0.90 means 10% smaller

#print "missing file"
if(not mys.exists_snap(snap)):
    print "snapshot "+str(snap)+" missing"
    exit(0)

xc,yc,zc,mvir,rvir=mys.getxyzmr(snap,1)
halo = my.open_file(mys.d(snap)+"dm/dm_"+str(hid)+".dat","r")
x=[];y=[];z=[];m=[]
for line in halo:
    val=line.split()
    m.append(float(val[0]))
    x.append(float(val[1]))
    y.append(float(val[2]))
    z.append(float(val[3]))

x = array(x); y = array(y); z = array(z); m = array(m)
#print x

def converged(xc,yc,zc,xc2,yc2,zc2):
    return  abs(xc-xc2)/abs(xc)   < eps \
        and abs(yc-yc2)/abs(yc)   < eps \
        and abs(zc-zc2)/abs(zc)   < eps #\
コード例 #13
0
ファイル: substructure.py プロジェクト: PascalSteger/darcoda
import sys
import os
from numpy import *
import initialize as my
import mys

if(len(sys.argv)!=2):
	print "usage: substructure.py snap"
	print "assumption: output_snap contains particles_dm in AHF format"
	print "wrong number of arguments"
	exit(1)

snap = int(sys.argv[1])
# read in halos repeatedly
inf = my.open_file(mys.d(snap)+"particles_dm","r")
alm = int(inf.readline())
size = []; split = []
for i in range(alm):
    siz = int(inf.readline())
    size.append(siz)
    part = []
    for c in range(siz):
        part.append(int(inf.readline()))
    split.append(part)
inf.close()

print "read in successful"

def count_shared(m1,m2):
    cc = 0
コード例 #14
0
os.nice(10)

show= True; run = True; loop=True

# choose: get_particles    for all particles
#         get_particles_dm for dm  particles only
gps = "get_particles"

i = len(sys.argv)
if(i!=2):
    print "usage: gen_particles_list.py snap"
    exit(1)
    
facr = 1 # * rvir from AHF for maximal radial distance to include particles
snap = int(sys.argv[1])
d    = mys.d(snap)
pdm=d+"particles_dm"
xl,yl,zl,ml,rl = mys.getxyzmr(snap,2)

nhalo= mys.get_nhalo(snap)
os.system("rm "+d+"particles_dm")
os.system("echo '"+str(nhalo)+"' >> "+pdm)

for i in range(len(xl)):
    xc=str(xl[i]); yc=str(yl[i]); zc=str(zl[i]); r=str(facr*rl[i])
    tmpdat = d+"tmp_"+str(i+1)+".dat"

    # all particles (DM/stars mixed)
    cmd1 = gps+" -inp "+d
    cmd1 +=" -xc "+xc+" -yc "+yc+" -zc "+zc+" -r "+r
    cmd1 +=">"+tmpdat
コード例 #15
0
ファイル: master.py プロジェクト: PascalSteger/darcoda
if(i==1):
    for k in range(18):
        my.run("master.py "+str(k))
    sys.exit(0)
    
action = int(sys.argv[1])

if(action==-1):
    mys.clear()

if(action==0):
    print "prepare output folder structure, MySQL structure"
#    mys.setup()
#    mys.fill_sim(simdir,num,nstart,nstop)
    for ncounter in range(nstop-nstart+1):
        d=mys.d(nstart+ncounter)
#        d=simdir+"/output_"+str(ncounter+nstart).zfill(5)+"/";
        my.mkdir(d+'amr')
        my.mkdir(d+'grav')
        my.mkdir(d+'hydro')
        my.mkdir(d+'part')
        my.mv(d+"amr_*",d+"amr")
        my.mv(d+"grav_*",d+'/grav')
        my.mv(d+"hydro_*",d+'/hydro')
        my.mv(d+'part_*',d+'/part')

# convert to Gadget file format
if(action==1):
    for ncounter in range(nstop-nstart+1):
        nc = ncounter + nstart
        num5 = str(nc).zfill(5)
コード例 #16
0
ファイル: gen_spheres.py プロジェクト: hasanmoudud/darcoda
show = True
run = True

gsd = "get_sphere_dm"
gss = "get_sphere_stars"

i = len(sys.argv)
if (i != 3):
    print "usage: gen_spheres.py snap typ"
    exit(1)

facr = 1  # * rvir from AHF for maximal radial distance to include particles

snap = sys.argv[1]
typ = int(sys.argv[2])
sim = mys.d(snap)

# get xc,yc,zc,mvir,rvir

xcl, ycl, zcl, mvirl, rvirl = mys.getxyzmr(snap, typ)
xsl, ysl, zsl, rsl = mys.getxyzrstars(snap, typ)

#print 'select ',xcl[0]
#print len(xcl)

for i in range(len(xcl)):
    xc = str(xcl[i])
    xs = str(xsl[i])
    yc = str(ycl[i])
    ys = str(ysl[i])
    zc = str(zcl[i])
コード例 #17
0
ファイル: merger_tree.py プロジェクト: PascalSteger/darcoda
# can be used with twice the same snapshot to get subhalo tree

import sys
import os
import initialize as my
import mys
from numpy import *

if(len(sys.argv)!=3):
	print "usage: merger_tree.py snap1 snap2"
	print "assumption: output_00snap1,2 contain particles_dm in AHF format"
	exit(1)
snap1 = int(sys.argv[1]); snap2 = int(sys.argv[2])
	
# read in halos repeatedly
fname=mys.d(snap1)+"particles_dm"
print fname
in1 = my.open_file(fname,"r")
alm1 = int(in1.readline())
size1 = []; split1 = []
for i in range(alm1):
    size = int(in1.readline())
    size1.append(size)
    part = []
    for c in range(size):
        part.append(int(in1.readline()))
    split1.append(part)
in1.close()

in2 = my.open_file(mys.d(snap2)+"particles_dm","r")
alm2 = int(in2.readline())