@sh.add_function(dsp, outputs=['clutch_tc_powers'])
def calculate_clutch_tc_powers(
clutch_tc_efficiencies, gear_box_speeds_in, clutch_tc_powers_out,
engine_speeds_out):
"""
Calculates the power that flows in the clutch or torque converter [kW].
:param clutch_tc_efficiencies:
Clutch or torque converter efficiency [-].
:type clutch_tc_efficiencies: numpy.array
:param gear_box_speeds_in:
Gear box speed vector [RPM].
:type gear_box_speeds_in: numpy.array
:param clutch_tc_powers_out:
Clutch or torque converter power out [kW].
:type clutch_tc_powers_out: numpy.array
:param engine_speeds_out:
Engine speed [RPM].
:type engine_speeds_out: numpy.array
:return:
Clutch or torque converter power [kW].
:rtype: numpy.array
"""
b = gear_box_speeds_in >= engine_speeds_out
eff = np.where(clutch_tc_efficiencies == 0, 1, clutch_tc_efficiencies)
return clutch_tc_powers_out * np.where(b, eff, 1 / eff)