from math import sqrt

current = 10.4  # Amps
temperature = 250.0  # degress F
k20 = 10.37  # 1.26 / 1000.0  # ohms of 1 circular mil foot of conductor
circular_mils = 10384.0  # cross-sectional area in circular mils of conductor
alpha_copper = 0.00393
alpha_aluminum = 0.00330


def voltage_drop(length, current, temperature, k75, circular_mils, alpha):
    return sqrt(3) * k20 * (1.0 + alpha * ((5.0 / 9.0) * (temperature - 32.0) - 20.0)) * length * current / circular_mils


def calc_voltage_needed(input_voltage, voltage_drop):
    return input_voltage + voltage_drop


motor_input_voltage = 380.0
print("---")
for x in [1000.0, 2000.0, 3000.0, 4000.0, 5000.0, 6000.0, 7000.0, 8000.0, 9000.0, 10000.0]:
    v_dropped = voltage_drop(x, current, temperature, k20, circular_mils, alpha_copper)
    v_output = calc_voltage_needed(motor_input_voltage, v_dropped)
    print("Length: {}".format(x))
    print("Voltage Drop: {} V".format(round(v_dropped, 3)))
    print("Output Voltage: {} V".format(round(v_output, 3)))
    print("Motor Input Voltage {} V".format(round(motor_input_voltage, 3)))
    print("---")
