Ejemplo n.º 1
0
def readPlanetCom():
    """function that read a 'planet.com' file and return a planetcom object
    """

    try:
        planetcomfile = open('planet.com','r')
    except IOError:
        print("Warning: The file 'planet.com' does not exist")
        return -1
    lines = planetcomfile.readlines()
# En fortran on peut aussi noter les puissances de 10 via un "d", ce qui n'est pas accepté en python.
    lines = [line.split(':')[0].replace('d','e') for line in lines]
    planetcomfile.close()
    

    m = map(float,lines[0].split())
    a = map(float,lines[1].split())
    e = map(float,lines[2].split())
    I = map(float,lines[3].split())
    is_I_damping = map(bool,map(int,lines[4].split()))
    pfd = map(bool,map(int,lines[5].split()))
    pfo = map(bool,map(int,lines[6].split()))
    accretion = map(bool,map(int,lines[7].split()))
    accretion_parameter = map(float,lines[8].split())
    maximum_mass = map(float,lines[9].split())
    smoothing = map(float,lines[10].split())
    region_excluded = map(float,lines[11].split())

    planetcomobject = planetcom(m=m, a=a, e=e, I=I, is_I_damping=is_I_damping, pfd=pfd, pfo=pfo, accretion=accretion, accretion_parameter=accretion_parameter, maximum_mass=maximum_mass, smoothing=smoothing, region_excluded=region_excluded)

    return planetcomobject
Ejemplo n.º 2
0
def readPlanetCom():
    """function that read a 'planet.com' file and return a planetcom object
    """

    try:
        planetcomfile = open('planet.com', 'r')
    except IOError:
        print("Warning: The file 'planet.com' does not exist")
        return -1
    lines = planetcomfile.readlines()
    # En fortran on peut aussi noter les puissances de 10 via un "d", ce qui n'est pas accepté en python.
    lines = [line.split(':')[0].replace('d', 'e') for line in lines]
    planetcomfile.close()

    m = map(float, lines[0].split())
    a = map(float, lines[1].split())
    e = map(float, lines[2].split())
    I = map(float, lines[3].split())
    is_I_damping = map(bool, map(int, lines[4].split()))
    pfd = map(bool, map(int, lines[5].split()))
    pfo = map(bool, map(int, lines[6].split()))
    accretion = map(bool, map(int, lines[7].split()))
    accretion_parameter = map(float, lines[8].split())
    maximum_mass = map(float, lines[9].split())
    smoothing = map(float, lines[10].split())
    region_excluded = map(float, lines[11].split())

    planetcomobject = planetcom(m=m,
                                a=a,
                                e=e,
                                I=I,
                                is_I_damping=is_I_damping,
                                pfd=pfd,
                                pfo=pfo,
                                accretion=accretion,
                                accretion_parameter=accretion_parameter,
                                maximum_mass=maximum_mass,
                                smoothing=smoothing,
                                region_excluded=region_excluded)

    return planetcomobject
Ejemplo n.º 3
0
        az_res.append(
            int(2 * pi / ((parcom.rmax - parcom.rmin) /
                          (parcom.rmin * rad_res[-1]))) + 1)

    return zip(planetcom.m, zip(rad_res, az_res))


if __name__ == '__main__':
    parcom(rmin=0.6,
           rmax=2.5,
           aspect_ratio=0.05,
           flaring_index=0.e0,
           density=2.e-3,
           density_exponent=-0.5e0,
           wd_rint=0.75e0,
           wd_rout=2.3e0).write()

    test = readParCom()
    test.write()

    m = [2 * (i + 1) * 3e-6 for i in range(5)]
    a = [1 + i * 0.2 for i in range(5)]
    e = [0.01 for i in range(5)]
    I = [1. + 0.2 * i for i in range(5)]

    planetcom(m, a, e, I).write()
    test = readPlanetCom()
    test.write()

    print(getResolution())
Ejemplo n.º 4
0
        # we round the value to the next positive integer.
        rad_res.append(int((parcom.rmax - parcom.rmin) / (x_s / CELL_NUMBER)) + 1)

        # We want to have square cells at the inner edge. It's not very important, 
        # but if we care about azimuthal res, square cells at inner edge is important
        az_res.append(int(2 * pi / ((parcom.rmax - parcom.rmin) / (parcom.rmin * rad_res[-1]))) + 1)
    

    return zip(planetcom.m, zip(rad_res,az_res))

if __name__=='__main__':
    parcom(rmin=0.6, rmax=2.5, aspect_ratio=0.05, flaring_index=0.e0, density=2.e-3, density_exponent=-0.5e0, wd_rint=0.75e0, wd_rout=2.3e0).write()

    test=readParCom()
    test.write()

    m = [2 * (i + 1) * 3e-6 for i in range(5)]
    a=[1 + i * 0.2 for i in range(5)]
    e=[0.01 for i in range(5)]
    I=[1. + 0.2*i for i in range(5)]

    planetcom(m, a, e, I).write()
    test = readPlanetCom()
    test.write()

    print(getResolution())