Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
28442df
add a new Aviary variable Aircraft.Engine.INLET_AREA_COEFFICIENT
xjjiang Mar 25, 2026
a2e5a1f
add aircraft:engine:inlet_area_coefficient to models
xjjiang Mar 25, 2026
7c0c908
rename BWBEngineSize to NewEngineSize and start using NewEngineSize f…
xjjiang Mar 25, 2026
ade049e
modified unit tests after engine sizing algorithm is changed.
xjjiang Mar 25, 2026
1bfc0ab
rename BWBEngineSize to NewEngineSize
xjjiang Mar 25, 2026
cf84888
Merge branch 'main' into engine_ref_diameter
xjjiang Mar 25, 2026
49251df
minor updates
xjjiang Mar 25, 2026
5305b6a
Merge branch 'engine_ref_diameter' of github.com:xjjiang/om-Aviary in…
xjjiang Mar 26, 2026
fea2347
test with IPOPT
xjjiang Mar 26, 2026
7369312
minor update
xjjiang Mar 26, 2026
0235d5d
work in progress
xjjiang Mar 26, 2026
70ca852
fix multi-engine case unit test
xjjiang Mar 26, 2026
18b6c7e
update engine tests
xjjiang Mar 26, 2026
f26f7e3
remove engine reference diameter and engine scale factor
xjjiang Mar 26, 2026
b67462e
add Aircraft.Engine.SCALE_FACTOR back
xjjiang Mar 26, 2026
d69336d
remove Aircraft.Engine.REFERENCE_DIAMETER and replace EngineSize by G…
xjjiang Mar 26, 2026
d2e64fd
Merge branch 'OpenMDAO:main' into engine_ref_diameter
xjjiang Mar 31, 2026
977c242
modified the description of Aircraft.Engine.INLET_AREA_COEFFICIENT
xjjiang Mar 31, 2026
1ac94b9
Merge branch 'OpenMDAO:main' into engine_ref_diameter
xjjiang Apr 1, 2026
8abb9e7
Merge branch 'main' into engine_ref_diameter
xjjiang Apr 2, 2026
658ad5a
use Aircraft.Design.GROSS_MASS, not Mission.Design.GROSS_MASS
xjjiang Apr 2, 2026
1062ee4
replace Mission.Design.GROSS_MASS by Aircraft.Design.GROSS_MASS
xjjiang Apr 2, 2026
8ec3e88
replace Mission.Design.GROSS_MASS by Mission.GROSS_MASS
xjjiang Apr 2, 2026
5ea2758
Merge branch 'main' into engine_ref_diameter
xjjiang Apr 3, 2026
191a638
Merge branch 'OpenMDAO:main' into engine_ref_diameter
xjjiang Apr 3, 2026
07421bb
modified the description of Aircraft.Engine.INLET_AREA_COEFFICIENT
xjjiang Apr 6, 2026
cb4890e
Merge branch 'OpenMDAO:main' into engine_ref_diameter
xjjiang Apr 9, 2026
ef10d68
Merge branch 'OpenMDAO:main' into engine_ref_diameter
xjjiang Apr 9, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions aviary/docs/theory_guide/gasp_based_bwb.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
"\n",
"from aviary.api import Aircraft\n",
"from aviary.subsystems.geometry.gasp_based.engine import (\n",
" BWBEngineSizeGroup,\n",
" EngineSize,\n",
" GASPEngineSizeGroup,\n",
" GASPEngineSize,\n",
" PercentNotInFuselage,\n",
")\n",
"from aviary.subsystems.geometry.gasp_based.fuselage import (\n",
Expand All @@ -33,8 +33,8 @@
"glue_variable(get_variable_name(BWBFuselageParameters2), md_code=True)\n",
"glue_variable(get_variable_name(BWBFuselageSize), md_code=True)\n",
"glue_variable(get_variable_name(BWBFuselageGroup), md_code=True)\n",
"glue_variable(get_variable_name(EngineSize), md_code=True)\n",
"glue_variable(get_variable_name(BWBEngineSizeGroup), md_code=True)\n",
"glue_variable(get_variable_name(GASPEngineSize), md_code=True)\n",
"glue_variable(get_variable_name(GASPEngineSizeGroup), md_code=True)\n",
"glue_variable(get_variable_name(PercentNotInFuselage), md_code=True)\n",
"\n",
"glue_variable(get_variable_name(Aircraft.Wing.VERTICAL_MOUNT_LOCATION), md_code=True)"
Expand All @@ -57,8 +57,8 @@
"- {glue:md}`BWBFuselageParameters2`: This component computes several fuselage geometric parameters based on both the user inputs and cabin layout.\n",
"- {glue:md}`BWBFuselageSize`: It carries out the computation of fuselage length and wetted area of BWB model.\n",
"- {glue:md}`BWBFuselageGroup`: {glue:md}`BWBFuselageParameters1` + {glue:md}`BWBCabinLayout` + {glue:md}`BWBFuselageParameters2` + {glue:md}`BWBFuselageSize`\n",
"- {glue:md}`PercentNotInFuselage`: For BWB, engines may be partially buried into fuselage. This component computes the percentage of corresponding surface area of nacelles not buried in fuselage. This parameter is passed to {glue:md}`EngineSize` component which computes the wetted area of nacelle. This function has infinity derivatives at the two ends. We use two cubic polynomials to smooth it.\n",
"- {glue:md}`BWBEngineSizeGroup`: {glue:md}`PercentNotInFuselage` + {glue:md}`EngineSize`. For Tube+Wing aircraft, we assume that engines are not buried into fuselage and hence {glue:md}`EngineSize` is good enough. But this feature can be extended to conventional aircraft.\n",
"- {glue:md}`PercentNotInFuselage`: For BWB, engines may be partially buried into fuselage. This component computes the percentage of corresponding surface area of nacelles not buried in fuselage. This parameter is passed to {glue:md}`GASPEngineSize` component which computes the wetted area of nacelle. This function has infinity derivatives at the two ends. We use two cubic polynomials to smooth it.\n",
"- {glue:md}`GASPEngineSizeGroup`: {glue:md}`PercentNotInFuselage` + {glue:md}`GASPEngineSize`. For Tube+Wing aircraft, we assume that engines are not buried into fuselage and hence {glue:md}`GASPEngineSize` is good enough. But this feature can be extended to conventional aircraft.\n",
"- {glue:md}`ExposedWing`: Computation of exposed wing area. This is useful for BWB, but is available to tube+wing model too. For {glue:md}`Aircraft.Wing.VERTICAL_MOUNT_LOCATION` in the range (0, 1), the function has infinity derivatives at the two ends. We use two cubic polynomials to smooth it."
]
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@
V3_bug_fixed_options.set_val(Aircraft.Fuselage.WETTED_AREA, 4000, units='ft**2')
V3_bug_fixed_options.set_val(Aircraft.VerticalTail.MOMENT_RATIO, 2.362, units='unitless')
V3_bug_fixed_options.set_val(Aircraft.HorizontalTail.ASPECT_RATIO, val=4.75, units='unitless')
V3_bug_fixed_options.set_val(Aircraft.Engine.REFERENCE_DIAMETER, 5.8, units='ft')
V3_bug_fixed_options.set_val(Aircraft.Engine.INLET_AREA_COEFFICIENT, 0.00030975, units='unitless')
V3_bug_fixed_options.set_val(Aircraft.Nacelle.CORE_DIAMETER_RATIO, 1.25, units='unitless')
V3_bug_fixed_options.set_val(Aircraft.Nacelle.FINENESS, 2, units='unitless')

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,12 @@ aircraft:design:type,transport,unitless
aircraft:engine:additional_mass_fraction,0.14,unitless
aircraft:engine:data_file,models/engines/turbofan_23k_1.csv,unitless
aircraft:engine:global_throttle, True, unitless
aircraft:engine:inlet_area_coefficient,0.000301265,unitless
aircraft:engine:mass_scaler,1,unitless
aircraft:engine:mass_specific,0.21366,lbm/lbf
aircraft:engine:num_engines,2,unitless
aircraft:engine:pod_mass_scaler,1,unitless
aircraft:engine:pylon_factor,1.25,unitless
aircraft:engine:reference_diameter,5.8,ft
aircraft:engine:reference_sls_thrust,28690,lbf
aircraft:engine:scale_factor,1.0,unitless
aircraft:engine:scaled_sls_thrust,28690,lbf
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,6 @@ aircraft:engine:propeller:diameter, 13.5, ft
aircraft:engine:propeller:integrated_lift_coefficient, 0.5, unitless
aircraft:engine:propeller:tip_speed_max, 720, ft/s
aircraft:engine:pylon_factor, 0.7, unitless
aircraft:engine:reference_diameter, 5.8, ft
aircraft:engine:reference_sls_thrust, 5000, lbf
aircraft:engine:rpm_design, 13820, rpm
aircraft:engine:fixed_rpm, 13820, rpm
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@ aircraft:engine:mass_specific,0.2153,lbm/lbf
aircraft:engine:num_engines,2,unitless
aircraft:engine:pod_mass_scaler,1,unitless
aircraft:engine:pylon_factor,0.6,unitless
aircraft:engine:reference_diameter,6.04,ft
aircraft:engine:reference_sls_thrust,28690,lbf
aircraft:engine:scale_factor,0.8295573370512374,unitless
aircraft:engine:scaled_sls_thrust,23800,lbf
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ aircraft:engine:fuel_flow_scaler_constant_term,0.,unitless
aircraft:engine:fuel_flow_scaler_linear_term,0.,unitless
aircraft:engine:geopotential_alt,False,unitless
aircraft:engine:ignore_negative_thrust,False,unitless
aircraft:engine:inlet_area_coefficient,0.00030975,unitless
aircraft:engine:interpolation_method,slinear,unitless
aircraft:engine:mass_scaler,1.15,unitless
aircraft:engine:mass,7400,lbm
Expand All @@ -32,7 +33,6 @@ aircraft:engine:num_fuselage_engines,0,unitless
aircraft:engine:num_wing_engines,2,unitless
aircraft:engine:pod_mass_scaler,1,unitless
aircraft:engine:pylon_factor,1.25,unitless
aircraft:engine:reference_diameter,5.8,ft
aircraft:engine:reference_mass,7400,lbm
aircraft:engine:reference_sls_thrust,28928.1,lbf
aircraft:engine:scale_factor,1.0,unitless
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@ aircraft:engine:mass_scaler,1,unitless
aircraft:engine:num_engines,2,unitless
aircraft:engine:pod_mass_scaler,1,unitless
aircraft:engine:pylon_factor,1.25,unitless
aircraft:engine:reference_diameter,5.8,ft
aircraft:engine:reference_sls_thrust,28690,lbf
aircraft:engine:scale_factor,1.0,unitless
aircraft:engine:scaled_sls_thrust,28690,lbf
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,14 +31,14 @@ aircraft:electrical:system_mass_per_passenger,16.0,lbm
aircraft:engine:additional_mass_fraction,0.135,unitless
aircraft:engine:data_file,models/engines/turbofan_23k_1.csv,unitless
aircraft:engine:global_throttle, True, unitless
aircraft:engine:inlet_area_coefficient,0.000301265,unitless
aircraft:engine:mass_scaler,1,unitless
aircraft:engine:mass_specific,0.21366,lbm/lbf
aircraft:engine:mass_scaler,1,unitless
aircraft:engine:num_engines,2,unitless
aircraft:engine:num_wing_engines,2,unitless
aircraft:engine:pod_mass_scaler,1,unitless
aircraft:engine:pylon_factor,1.25,unitless
aircraft:engine:reference_diameter,5.8,ft
aircraft:engine:reference_sls_thrust,28690,lbf
aircraft:engine:scale_factor,1.0,unitless
aircraft:engine:scaled_sls_thrust,28690,lbf
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@ aircraft:engine:mass_specific,0.21366,lbm/lbf
aircraft:engine:num_engines,2,unitless
aircraft:engine:pod_mass_scaler,1,unitless
aircraft:engine:pylon_factor,1.25,unitless
aircraft:engine:reference_diameter,6.15,ft
aircraft:engine:reference_sls_thrust,28690,lbf
aircraft:engine:scale_factor,0.7376089229696758,unitless
aircraft:engine:scaled_sls_thrust,21162,lbf
Expand Down
157 changes: 32 additions & 125 deletions aviary/subsystems/geometry/gasp_based/engine.py
Original file line number Diff line number Diff line change
Expand Up @@ -159,26 +159,21 @@ def compute_partials(self, inputs, J):
J['percent_exposed', Aircraft.Nacelle.PERCENT_DIAM_BURIED_IN_FUSELAGE] = d_pct_swn


class EngineSize(om.ExplicitComponent):
class GASPEngineSize(om.ExplicitComponent):
"""
GASP engine geometry calculation. It returns Aircraft.Nacelle.AVG_DIAMETER,
Nacelle.AVG_LENGTH, and Aircraft.Nacelle.SURFACE_AREA. This does not follow GASP
algorithm exactly.
Engine geometry calculation based on engine diameter. It returns Aircraft.Nacelle.AVG_DIAMETER,
Nacelle.AVG_LENGTH, and Aircraft.Nacelle.SURFACE_AREA. It follows the algorithm in GASP.
"""

def initialize(self):
add_aviary_option(self, Aircraft.Engine.NUM_ENGINES)
add_aviary_option(self, Aircraft.Engine.INLET_AREA_COEFFICIENT)
add_aviary_option(self, Settings.VERBOSITY)

def setup(self):
num_engine_type = len(self.options[Aircraft.Engine.NUM_ENGINES])

add_aviary_input(
self, Aircraft.Engine.REFERENCE_DIAMETER, shape=num_engine_type, units='ft'
)
add_aviary_input(
self, Aircraft.Engine.SCALE_FACTOR, shape=num_engine_type, units='unitless'
)
add_aviary_input(self, Aircraft.Design.GROSS_MASS, units='lbm')
add_aviary_input(
self, Aircraft.Nacelle.CORE_DIAMETER_RATIO, shape=num_engine_type, units='unitless'
)
Expand All @@ -190,125 +185,38 @@ def setup(self):
add_aviary_output(self, Aircraft.Nacelle.SURFACE_AREA, shape=num_engine_type, units='ft**2')

def setup_partials(self):
# derivatives w.r.t vectorized engine inputs have known sparsity pattern
num_engine_type = len(self.options[Aircraft.Engine.NUM_ENGINES])
shape = np.arange(num_engine_type)

innames = [
Aircraft.Engine.REFERENCE_DIAMETER,
Aircraft.Engine.SCALE_FACTOR,
Aircraft.Nacelle.CORE_DIAMETER_RATIO,
Aircraft.Nacelle.FINENESS,
]
nn = np.zeros(num_engine_type, dtype=int)

self.declare_partials(
Aircraft.Nacelle.AVG_DIAMETER, innames[:-1], rows=shape, cols=shape, val=1.0
Aircraft.Nacelle.AVG_DIAMETER,
[
Aircraft.Design.GROSS_MASS,
],
rows=shape,
cols=nn,
)
self.declare_partials(Aircraft.Nacelle.AVG_LENGTH, innames, rows=shape, cols=shape, val=1.0)
self.declare_partials(
Aircraft.Nacelle.SURFACE_AREA,
innames + ['percent_exposed'],
Aircraft.Nacelle.AVG_LENGTH,
[
Aircraft.Design.GROSS_MASS,
],
rows=shape,
cols=shape,
val=1.0,
)

def compute(self, inputs, outputs):
verbosity = self.options[Settings.VERBOSITY]
d_ref = inputs[Aircraft.Engine.REFERENCE_DIAMETER]
scale_fac = inputs[Aircraft.Engine.SCALE_FACTOR]
d_nac_eng = inputs[Aircraft.Nacelle.CORE_DIAMETER_RATIO]
ld_nac = inputs[Aircraft.Nacelle.FINENESS]
if any(x <= 0.0 for x in scale_fac):
if verbosity > Verbosity.BRIEF:
print('Aircraft.Engine.SCALE_FACTOR must be positive.')

d_eng = d_ref * np.sqrt(scale_fac)
outputs[Aircraft.Nacelle.AVG_DIAMETER] = d_eng * d_nac_eng
outputs[Aircraft.Nacelle.AVG_LENGTH] = ld_nac * outputs[Aircraft.Nacelle.AVG_DIAMETER]
outputs[Aircraft.Nacelle.SURFACE_AREA] = (
np.pi
* outputs[Aircraft.Nacelle.AVG_DIAMETER]
* outputs[Aircraft.Nacelle.AVG_LENGTH]
* inputs['percent_exposed']
)

def compute_partials(self, inputs, J):
d_ref = inputs[Aircraft.Engine.REFERENCE_DIAMETER]
scale_fac = inputs[Aircraft.Engine.SCALE_FACTOR]
d_nac_eng = inputs[Aircraft.Nacelle.CORE_DIAMETER_RATIO]
ld_nac = inputs[Aircraft.Nacelle.FINENESS]

tr = np.sqrt(scale_fac)
d_eng = d_ref * tr
d_nac = d_eng * d_nac_eng
l_nac = d_nac * ld_nac

J[Aircraft.Nacelle.AVG_DIAMETER, Aircraft.Engine.REFERENCE_DIAMETER] = tr * d_nac_eng
J[Aircraft.Nacelle.AVG_DIAMETER, Aircraft.Engine.SCALE_FACTOR] = (
d_nac_eng * d_ref / (2 * tr)
cols=nn,
)
J[Aircraft.Nacelle.AVG_DIAMETER, Aircraft.Nacelle.CORE_DIAMETER_RATIO] = d_eng

for wrt in [
Aircraft.Engine.REFERENCE_DIAMETER,
Aircraft.Engine.SCALE_FACTOR,
Aircraft.Nacelle.CORE_DIAMETER_RATIO,
]:
J[Aircraft.Nacelle.AVG_LENGTH, wrt] = J[Aircraft.Nacelle.AVG_DIAMETER, wrt] * ld_nac
J[Aircraft.Nacelle.SURFACE_AREA, wrt] = (
np.pi
* (
J[Aircraft.Nacelle.AVG_DIAMETER, wrt] * l_nac
+ J[Aircraft.Nacelle.AVG_LENGTH, wrt] * d_nac
)
* inputs['percent_exposed']
)

J[Aircraft.Nacelle.AVG_LENGTH, Aircraft.Nacelle.FINENESS] = d_nac
J[Aircraft.Nacelle.SURFACE_AREA, Aircraft.Nacelle.FINENESS] = (
np.pi
* J[Aircraft.Nacelle.AVG_LENGTH, Aircraft.Nacelle.FINENESS]
* d_nac
* inputs['percent_exposed']
)
J[Aircraft.Nacelle.SURFACE_AREA, 'percent_exposed'] = (
np.pi * d_eng * d_nac_eng * ld_nac * d_eng * d_nac_eng
)


class BWBEngineSize(om.ExplicitComponent):
"""
Engine geometry calculation for BWB. It returns Aircraft.Nacelle.AVG_DIAMETER,
Nacelle.AVG_LENGTH, and Aircraft.Nacelle.SURFACE_AREA. It follows the algorithm in GASP.
Users can use this component instead of EngineSize.
"""

def initialize(self):
add_aviary_option(self, Aircraft.Engine.NUM_ENGINES)
add_aviary_option(self, Settings.VERBOSITY)

def setup(self):
num_engine_type = len(self.options[Aircraft.Engine.NUM_ENGINES])

add_aviary_input(self, Aircraft.Design.GROSS_MASS, units='lbm')
add_aviary_input(
self, Aircraft.Nacelle.CORE_DIAMETER_RATIO, shape=num_engine_type, units='unitless'
self.declare_partials(
Aircraft.Nacelle.SURFACE_AREA,
[
Aircraft.Design.GROSS_MASS,
],
rows=shape,
cols=nn,
)
add_aviary_input(self, Aircraft.Nacelle.FINENESS, shape=num_engine_type, units='unitless')
self.add_input('percent_exposed', val=np.ones(num_engine_type), units='unitless')

add_aviary_output(self, Aircraft.Nacelle.AVG_DIAMETER, shape=num_engine_type, units='ft')
add_aviary_output(self, Aircraft.Nacelle.AVG_LENGTH, shape=num_engine_type, units='ft')
add_aviary_output(self, Aircraft.Nacelle.SURFACE_AREA, shape=num_engine_type, units='ft**2')

def setup_partials(self):
num_engine_type = len(self.options[Aircraft.Engine.NUM_ENGINES])
shape = np.arange(num_engine_type)
self.declare_partials(
Aircraft.Nacelle.AVG_DIAMETER,
[
Aircraft.Design.GROSS_MASS,
Aircraft.Nacelle.CORE_DIAMETER_RATIO,
],
rows=shape,
Expand All @@ -317,7 +225,6 @@ def setup_partials(self):
self.declare_partials(
Aircraft.Nacelle.AVG_LENGTH,
[
Aircraft.Design.GROSS_MASS,
Aircraft.Nacelle.CORE_DIAMETER_RATIO,
Aircraft.Nacelle.FINENESS,
],
Expand All @@ -327,7 +234,6 @@ def setup_partials(self):
self.declare_partials(
Aircraft.Nacelle.SURFACE_AREA,
[
Aircraft.Design.GROSS_MASS,
Aircraft.Nacelle.CORE_DIAMETER_RATIO,
Aircraft.Nacelle.FINENESS,
'percent_exposed',
Expand All @@ -337,15 +243,15 @@ def setup_partials(self):
)

def compute(self, inputs, outputs):
verbosity = self.options[Settings.VERBOSITY]
num_engine = self.options[Aircraft.Engine.NUM_ENGINES]
coeff_inlet = self.options[Aircraft.Engine.INLET_AREA_COEFFICIENT]

gross_mass = inputs[Aircraft.Design.GROSS_MASS]
core_diam_ratio = inputs[Aircraft.Nacelle.CORE_DIAMETER_RATIO]
fineness_nac = inputs[Aircraft.Nacelle.FINENESS]
pct_exposed = inputs['percent_exposed']

area_engine = 0.3 * gross_mass / 1500.0 / num_engine
area_engine = coeff_inlet * gross_mass / num_engine
diam_engine = np.sqrt(4.0 * area_engine / np.pi)
diam_nacelle = core_diam_ratio * diam_engine
len_nacelle = fineness_nac * diam_nacelle
Expand All @@ -357,19 +263,20 @@ def compute(self, inputs, outputs):

def compute_partials(self, inputs, J):
num_engine = self.options[Aircraft.Engine.NUM_ENGINES]
coeff_inlet = self.options[Aircraft.Engine.INLET_AREA_COEFFICIENT]

gross_mass = inputs[Aircraft.Design.GROSS_MASS]
gross_mass = np.full(len(num_engine), gross_mass)
core_diam_ratio = inputs[Aircraft.Nacelle.CORE_DIAMETER_RATIO]
fineness_nac = inputs[Aircraft.Nacelle.FINENESS]
pct_exposed = inputs['percent_exposed']

area_engine = 0.3 * gross_mass / 1500.0 / num_engine
area_engine = coeff_inlet * gross_mass / num_engine
diam_engine = np.sqrt(4.0 * area_engine / np.pi)
diam_nacelle = core_diam_ratio * diam_engine
len_nacelle = fineness_nac * diam_nacelle
wet_area_nacelle = np.pi * diam_nacelle * len_nacelle * pct_exposed

darea_engine_dgross_mass = 0.3 * np.ones(1) / 1500.0 / num_engine
darea_engine_dgross_mass = coeff_inlet * np.ones(1) / num_engine
ddiam_engine_dgross_mass = 2 / np.pi / diam_engine * darea_engine_dgross_mass
ddiam_nacelle_dgross_mass = core_diam_ratio * ddiam_engine_dgross_mass
ddiam_nacelle_dcore_diam_ratio = diam_engine
Expand Down Expand Up @@ -412,7 +319,7 @@ def compute_partials(self, inputs, J):
J[Aircraft.Nacelle.SURFACE_AREA, 'percent_exposed'] = dwet_area_nacelle_dpct_exposed


class BWBEngineSizeGroup(om.Group):
class GASPEngineSizeGroup(om.Group):
def setup(self):
self.add_subsystem(
'perc',
Expand All @@ -423,7 +330,7 @@ def setup(self):

self.add_subsystem(
'eng_size',
BWBEngineSize(),
GASPEngineSize(),
promotes_inputs=['*'] + ['percent_exposed'],
promotes_outputs=['*'],
)
Loading
Loading