def test_regression_tandem(sample_inputs_fixture): """ Tandem turbines """ sample_inputs_fixture.floris["wake"]["model_strings"]["velocity_model"] = VELOCITY_MODEL sample_inputs_fixture.floris["wake"]["model_strings"]["deflection_model"] = DEFLECTION_MODEL sample_inputs_fixture.floris["wake"]["model_strings"]["combination_model"] = COMBINATION_MODEL floris = Floris.from_dict(sample_inputs_fixture.floris) floris.initialize_domain() floris.steady_state_atmospheric_condition() n_turbines = floris.farm.n_turbines n_wind_speeds = floris.flow_field.n_wind_speeds n_wind_directions = floris.flow_field.n_wind_directions velocities = floris.flow_field.u yaw_angles = floris.farm.yaw_angles test_results = np.zeros((n_wind_directions, n_wind_speeds, n_turbines, 4)) farm_avg_velocities = average_velocity( velocities, ) farm_cts = Ct( velocities, yaw_angles, floris.farm.turbine_fCts, floris.farm.turbine_type_map, ) farm_powers = power( floris.flow_field.air_density, velocities, yaw_angles, floris.farm.pPs, floris.farm.turbine_power_interps, floris.farm.turbine_type_map, ) farm_axial_inductions = axial_induction( velocities, yaw_angles, floris.farm.turbine_fCts, floris.farm.turbine_type_map, ) for i in range(n_wind_directions): for j in range(n_wind_speeds): for k in range(n_turbines): test_results[i, j, k, 0] = farm_avg_velocities[i, j, k] test_results[i, j, k, 1] = farm_cts[i, j, k] test_results[i, j, k, 2] = farm_powers[i, j, k] test_results[i, j, k, 3] = farm_axial_inductions[i, j, k] if DEBUG: print_test_values( farm_avg_velocities, farm_cts, farm_powers, farm_axial_inductions, ) assert_results_arrays(test_results[0], baseline)
def test_regression_secondary_steering(sample_inputs_fixture): """ Tandem turbines with the upstream turbine yawed and secondary steering enabled """ sample_inputs_fixture.floris["wake"]["model_strings"]["velocity_model"] = VELOCITY_MODEL sample_inputs_fixture.floris["wake"]["model_strings"]["deflection_model"] = DEFLECTION_MODEL sample_inputs_fixture.floris["wake"]["enable_transverse_velocities"] = True sample_inputs_fixture.floris["wake"]["enable_secondary_steering"] = True sample_inputs_fixture.floris["wake"]["enable_yaw_added_recovery"] = False floris = Floris.from_dict(sample_inputs_fixture.floris) yaw_angles = np.zeros((N_WIND_DIRECTIONS, N_WIND_SPEEDS, N_TURBINES)) yaw_angles[:,:,0] = 5.0 floris.farm.yaw_angles = yaw_angles floris.initialize_domain() floris.steady_state_atmospheric_condition() n_turbines = floris.farm.n_turbines n_wind_speeds = floris.flow_field.n_wind_speeds n_wind_directions = floris.flow_field.n_wind_directions velocities = floris.flow_field.u yaw_angles = floris.farm.yaw_angles test_results = np.zeros((n_wind_directions, n_wind_speeds, n_turbines, 4)) farm_avg_velocities = average_velocity( velocities, ) farm_cts = Ct( velocities, yaw_angles, floris.farm.turbine_fCts, floris.farm.turbine_type_map, ) farm_powers = power( floris.flow_field.air_density, velocities, yaw_angles, floris.farm.pPs, floris.farm.turbine_power_interps, floris.farm.turbine_type_map, ) farm_axial_inductions = axial_induction( velocities, yaw_angles, floris.farm.turbine_fCts, floris.farm.turbine_type_map, ) for i in range(n_wind_directions): for j in range(n_wind_speeds): for k in range(n_turbines): test_results[i, j, k, 0] = farm_avg_velocities[i, j, k] test_results[i, j, k, 1] = farm_cts[i, j, k] test_results[i, j, k, 2] = farm_powers[i, j, k] test_results[i, j, k, 3] = farm_axial_inductions[i, j, k] if DEBUG: print_test_values( farm_avg_velocities, farm_cts, farm_powers, farm_axial_inductions, ) assert_results_arrays(test_results[0], secondary_steering_baseline)