def Ainslie1DEffects(coordinates_upstream,
                     thrust_coefficient,
                     coordinates_downstream,
                     angle,
                     wind_speed_upstream,
                     ambient_turbulence_intensity,
                     diameter=190.8):
    angle3 = angle + 180.0
    partial_deficits = []
    normalised_upstream = [
        coordinates_upstream[i] / diameter for i in range(1, 3)
    ]
    normalised_downstream = [[
        coordinates_downstream[j][i] / diameter for i in range(1, 3)
    ] for j in range(len(coordinates_downstream))]

    for i in range(len(normalised_downstream)):

        parallel_distance = determine_front(angle3, normalised_upstream[0],
                                            normalised_upstream[1],
                                            normalised_downstream[i][0],
                                            normalised_downstream[i][1])
        perpendicular_distance = crosswind_distance(
            angle3, normalised_upstream[0], normalised_upstream[1],
            normalised_downstream[i][0], normalised_downstream[i][1])
        if perpendicular_distance <= 1.7 and parallel_distance > 0.0:  # 1.7 gives same results as a bigger distance, many times faster.
            partial_deficits.append(
                ainslie1d.ainslie(thrust_coefficient, wind_speed_upstream,
                                  parallel_distance, perpendicular_distance,
                                  ambient_turbulence_intensity))
        else:
            partial_deficits.append(0.0)

    return partial_deficits
Esempio n. 2
0
def Ainslie2DEffects(coordinates_upstream, thrust_coefficient,
                     coordinates_downstream, angle, wind_speed_upstream,
                     ambient_turbulence_intensity):
    angle3 = angle + 180.0
    partial_deficits = []
    normalised_upstream = [coordinates_upstream[i] / 80.0 for i in range(2)]
    normalised_downstream = [[
        coordinates_downstream[j][i] / 80.0 for i in range(2)
    ] for j in range(len(coordinates_downstream))]
    # start = time()
    for i in range(len(normalised_downstream)):
        parallel_distance = determine_front(angle3, normalised_upstream[0],
                                            normalised_upstream[1],
                                            normalised_downstream[i][0],
                                            normalised_downstream[i][1])
        perpendicular_distance = crosswind_distance(
            angle3, normalised_upstream[0], normalised_upstream[1],
            normalised_downstream[i][0], normalised_downstream[i][1])
        if perpendicular_distance <= 2.0 and parallel_distance > 0.0:
            partial_deficits.append(
                ainslie2d.ainslie_full(thrust_coefficient, wind_speed_upstream,
                                       parallel_distance,
                                       perpendicular_distance,
                                       ambient_turbulence_intensity))
        else:
            partial_deficits.append(0.0)

    return partial_deficits