diff --git a/aviary/utils/preprocessors.py b/aviary/utils/preprocessors.py index deec2fb94..54f22bcee 100644 --- a/aviary/utils/preprocessors.py +++ b/aviary/utils/preprocessors.py @@ -397,6 +397,21 @@ def preprocess_propulsion(aviary_options: AviaryValues, engine_models: list = No aviary_options.set_val(Aircraft.Engine.NUM_WING_ENGINES, num_wing_engines_all) aviary_options.set_val(Aircraft.Engine.NUM_FUSELAGE_ENGINES, num_fuse_engines_all) + # Update nacelle-related variables in aero to be sized to the number of + # engine types. + if num_engine_type > 1: + + keys = [ + Aircraft.Nacelle.LAMINAR_FLOW_LOWER, + Aircraft.Nacelle.LAMINAR_FLOW_UPPER + ] + + for var in keys: + try: + aviary_options.get_val(var) + except KeyError: + aviary_options.set_val(var, np.zeros(num_engine_type)) + if Mission.Summary.FUEL_FLOW_SCALER not in aviary_options: aviary_options.set_val(Mission.Summary.FUEL_FLOW_SCALER, 1.0) diff --git a/aviary/validation_cases/benchmark_tests/test_bench_multiengine.py b/aviary/validation_cases/benchmark_tests/test_bench_multiengine.py index 05093fc0b..4be6268fb 100644 --- a/aviary/validation_cases/benchmark_tests/test_bench_multiengine.py +++ b/aviary/validation_cases/benchmark_tests/test_bench_multiengine.py @@ -124,8 +124,8 @@ def test_multiengine_static(self): alloc_cruise = prob.get_val('traj.cruise.parameter_vals:throttle_allocations') alloc_descent = prob.get_val('traj.descent.parameter_vals:throttle_allocations') - assert_near_equal(alloc_climb[0], 0.5, tolerance=1e-2) - assert_near_equal(alloc_cruise[0], 0.64, tolerance=1e-2) + assert_near_equal(alloc_climb[0], 0.51, tolerance=1e-2) + assert_near_equal(alloc_cruise[0], 0.747, tolerance=1e-2) assert_near_equal(alloc_descent[0], 0.999, tolerance=1e-2) @require_pyoptsparse(optimizer="SNOPT") @@ -166,7 +166,7 @@ def test_multiengine_dynamic(self): alloc_descent = prob.get_val('traj.descent.controls:throttle_allocations') # Cruise is pretty constant, check exact value. - assert_near_equal(alloc_cruise[0], 0.646, tolerance=1e-2) + assert_near_equal(alloc_cruise[0], 0.75, tolerance=1e-2) # Check general trend: favors engine 1. self.assertGreater(alloc_climb[2], 0.55)