Example #1
0
def set_fields(star):
    sout = Star(settings)
    sout = star
    f = open('./data/' + star.filename)
    offset = 0
    for row in f:
        if offset == 0 and "FINAL MODEL" in row:
            offset = 1
            continue

        if offset == 1:
            sout.luminosity = float(
                (row.split(','))[-1].replace('L:', '').replace('D', 'e'))
            offset = 2
            continue

        if offset == 2:
            sout.Teff = float(
                (row.split(','))[0].replace('Teff:', '').replace('D', 'e'))
            offset = 3
            continue

        if offset == 3:
            offset = 4
            i = 1
            continue

        if offset == 4:
            s = row.replace('D', 'e').split()
            sout.coordinate_field[i] = float(s[1])
            sout.radius_field[i] = 10**float(s[2])
            sout.pressure_field[i] = 10**float(s[3])
            sout.temperature_field[i] = 10**float(s[4])
            sout.density_field[i] = 10**float(s[5])
            sout.luminosity_field[i] = 10**float(s[6])
            i += 1
            if s[0] == '200':
                break

    sout.coordinate_field[0] = sout.coordinate_field[1]
    sout.radius_field[0] = sout.radius_field[1]
    sout.pressure_field[0] = sout.pressure_field[1]
    sout.temperature_field[0] = sout.temperature_field[1]
    sout.density_field[0] = sout.density_field[1]
    sout.luminosity_field[0] = sout.luminosity_field[1]

    sout.coordinate_field[-1] = sout.coordinate_field[-2]
    sout.radius_field[-1] = sout.radius_field[-2]
    sout.pressure_field[-1] = sout.pressure_field[-2]
    sout.temperature_field[-1] = sout.temperature_field[-2]
    sout.density_field[-1] = sout.density_field[-2]
    sout.luminosity_field[-1] = sout.luminosity_field[-2]

    return sout