Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion aviary/core/aviary_group.py
Original file line number Diff line number Diff line change
Expand Up @@ -1052,7 +1052,7 @@ def add_post_mission_systems(self, verbosity=None):
'excess_fuel_constraint',
ecomp,
promotes_inputs=[
('total_fuel_capacity', Aircraft.Fuel.TOTAL_CAPACITY),
('total_fuel_capacity', Aircraft.Fuel.MAX_CAPACITY_MASS),
('unusable_fuel', Aircraft.Fuel.UNUSABLE_FUEL_MASS),
('overall_fuel', Mission.TOTAL_FUEL_MASS),
],
Expand Down
2 changes: 1 addition & 1 deletion aviary/core/aviary_problem.py
Original file line number Diff line number Diff line change
Expand Up @@ -1789,7 +1789,7 @@ def run_payload_range(self, verbosity=None):
# NOTE this operating mass is based on the previously run mission - assumed this is the
# design mission!! Includes cargo containers needed for design (max payload)
operating_mass = float(self.get_val(Mission.OPERATING_MASS)[0])
fuel_capacity = float(self.get_val(Aircraft.Fuel.TOTAL_CAPACITY)[0])
fuel_capacity = float(self.get_val(Aircraft.Fuel.MAX_CAPACITY_MASS)[0])
unusable_fuel = float(self.get_val(Aircraft.Fuel.UNUSABLE_FUEL_MASS)[0])
max_payload = float(self.get_val(Aircraft.CrewPayload.TOTAL_PAYLOAD_MASS)[0])

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -649,7 +649,7 @@
" 'excess_fuel_constraint',\n",
" ecomp,\n",
" promotes_inputs=[\n",
" ('total_fuel_capacity', Aircraft.Fuel.TOTAL_CAPACITY),\n",
" ('total_fuel_capacity', Aircraft.Fuel.MAX_CAPACITY_MASS),\n",
" ('unusable_fuel', Aircraft.Fuel.UNUSABLE_FUEL_MASS),\n",
" ('overall_fuel', Mission.TOTAL_FUEL_MASS),\n",
" ],\n",
Expand Down
2 changes: 1 addition & 1 deletion aviary/docs/examples_unreviewed/modified_aircraft.csv
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ aircraft:fuel:auxiliary_fuel_mass_capacity,0.0,lbm
aircraft:fuel:fuel_system_mass_scaler,1.0,unitless
aircraft:fuel:fuselage_fuel_mass_capacity,0.0,lbm
aircraft:fuel:num_tanks,7,unitless
aircraft:fuel:total_capacity,45694.0,lbm
aircraft:fuel:max_capacity_mass,45694.0,lbm
aircraft:fuel:unusable_fuel_mass_scaler,1.0,unitless
aircraft:furnishings:mass_scaler,1.1,unitless
aircraft:fuselage:length,128.0,ft
Expand Down
6 changes: 3 additions & 3 deletions aviary/docs/theory_guide/gasp_based_bwb.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -254,7 +254,7 @@
"glue_variable(get_variable_name(Aircraft.Fuel.FUEL_SYSTEM_MASS), md_code=True)\n",
"glue_variable(get_variable_name(Aircraft.Design.STRUCTURE_MASS), md_code=True)\n",
"glue_variable(get_variable_name(Aircraft.Propulsion.MASS), md_code=True)\n",
"glue_variable(get_variable_name(Aircraft.Fuel.TOTAL_CAPACITY), md_code=True)\n",
"glue_variable(get_variable_name(Aircraft.Fuel.MAX_CAPACITY_MASS), md_code=True)\n",
"glue_variable(get_variable_name(Aircraft.Propulsion.TOTAL_ENGINE_POD_MASS), md_code=True)"
]
},
Expand All @@ -281,7 +281,7 @@
"| {glue:md}`Aircraft.Design.STRUCTURE_MASS` | 44471 | WST | 45623 | the mass in GASP is computed after engine sizing. |\n",
"| `FUEL_MASS` | 34188 | WFADES | 33268 | The mass in GASP is computed after engine sizing. |\n",
"| {glue:md}`Aircraft.Propulsion.MASS` | 8628 | WP | 8592 | the mass in GASP is computed after engine sizing. |\n",
"| {glue:md}`Aircraft.Fuel.TOTAL_CAPACITY` | 38068 | WFAMAX | 33268 | The mass in GASP is computed after engine sizing. |\n",
"| {glue:md}`Aircraft.Fuel.MAX_CAPACITY_MASS` | 38068 | WFAMAX | 33268 | The mass in GASP is computed after engine sizing. |\n",
"| {glue:md}`Aircraft.Propulsion.TOTAL_ENGINE_POD_MASS` | 1687 | WPES | the mass in GASP is computed after engine sizing. |\n",
"| `FUEL_MASS_REQUIRED` | 34188 | WFAREQ | 36595 | Aviary does not include margin. |\n",
"| | | | |\n",
Expand All @@ -292,7 +292,7 @@
"\n",
"![GASP based fuel mass computation](./images/gasp_bwb_fuel_mass.png)\n",
"\n",
"A Newton solver is applied until `FUEL_MASS`, `wingfuel_mass_min` and {glue:md}`Aircraft.Fuel.TOTAL_CAPACITY` are converged.\n",
"A Newton solver is applied until `FUEL_MASS`, `wingfuel_mass_min` and {glue:md}`Aircraft.Fuel.MAX_CAPACITY_MASS` are converged.\n",
"\n",
"For conventional aircraft, {glue:md}`BWBFuselageMass` is replaced by {glue:md}`FuselageMass`."
]
Expand Down
8 changes: 4 additions & 4 deletions aviary/docs/theory_guide/mass.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,17 +17,17 @@ The Fuel Capacity Group contains 4 subsystems:

1. Wing Fuel Capacity

There are 2 different relationships that can be used, and Aviary will switch between them based on the value of the Aircraft.Fuel.WING_REF_CAPACITY_TERM_A parameter.
There are 2 different relationships that can be used, and Aviary will switch between them based on the value of the Aircraft.Fuel.WING_CAPACITY_TERM_EXPONENTIAL parameter.

If Aircraft.Fuel.WING_REF_CAPACITY_TERM_A > 0:
If Aircraft.Fuel.WING_CAPACITY_TERM_EXPONENTIAL > 0:

Aviary allows the user to specify their own relationship for fuel capacity as a polynomial function of the difference in wing area to some reference area. This is for compatability to legacy FLOPS, but in reality an aviary user will probably write their own OpenMDAO component for calculating wing fuel capacity rather than fitting their own coefficients to an equation of the form:

Wing Fuel Capacity = Wing_Reference_Capacity * (coeff_a * Area Delta^1.5 + coeff_b * Area_Delta)

Where coeff_a and coeff_b are user specified (Aircraft.Fuel.WING_REF_CAPACITY_TERM_A, Aircraft.Fuel.WING_REF_CAPACITY_TERM_B)
Where coeff_a and coeff_b are user specified (Aircraft.Fuel.WING_CAPACITY_TERM_EXPONENTIAL, Aircraft.Fuel.WING_CAPACITY_TERM_LINEAR)

Where Area_Delta = Aircraft.Wing.AREA - Aircraft.Fuel.WING_REF_CAPACITY_AREA (user specified)
Where Area_Delta = Aircraft.Wing.AREA - Aircraft.Fuel.WING_REFERENCE_AREA (user specified)

Else (default):

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
"glue_variable('operating_mass', av.Mission.OPERATING_MASS, md_code=True)\n",
"glue_variable('total_payload_mass', av.Aircraft.CrewPayload.TOTAL_PAYLOAD_MASS, md_code=True)\n",
"glue_variable('design_gross_mass', av.Aircraft.Design.GROSS_MASS, md_code=True)\n",
"glue_variable('total_fuel_capacity', av.Aircraft.Fuel.TOTAL_CAPACITY, md_code=True)\n",
"glue_variable('total_fuel_capacity', av.Aircraft.Fuel.MAX_CAPACITY_MASS, md_code=True)\n",
"\n",
"file_path3 = av.get_path('validation_cases/validation_data/test_models/aircraft_for_bench_FwFm.csv')\n",
"\n",
Expand Down
2 changes: 1 addition & 1 deletion aviary/interface/reports.py
Original file line number Diff line number Diff line change
Expand Up @@ -280,7 +280,7 @@ def _get_phase_diff(model, traj, phase, var_name, units, indices=[0, -1]):

totals.set_val(
'Total Fuel Capacity',
prob.get_val(f'{var_name}aircraft:fuel:total_capacity', units='lbm')[0],
prob.get_val(f'{var_name}aircraft:fuel:max_capacity_mass', units='lbm')[0],
units='lbm',
)
totals.set_val(
Expand Down
2 changes: 1 addition & 1 deletion aviary/interface/test/sizing_results_for_test.json
Original file line number Diff line number Diff line change
Expand Up @@ -502,7 +502,7 @@
"<class 'int'>"
],
[
"aircraft:fuel:total_capacity",
"aircraft:fuel:max_capacity_mass",
45694.0,
"lbm",
"<class 'float'>"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ aircraft:fuel:wing_fuel_fraction,0.7752,unitless
aircraft:fuel:fuel_system_mass_scaler,0.93202,unitless
aircraft:fuel:fuselage_fuel_mass_capacity,0,lbm
aircraft:fuel:num_tanks,7,unitless
aircraft:fuel:total_capacity,33136.4,lbm
aircraft:fuel:max_capacity_mass,33136.4,lbm
aircraft:fuel:unusable_fuel_mass_scaler,1,unitless
aircraft:fuel:wing_fuel_mass_capacity,33136.4,lbm
aircraft:furnishings:mass_scaler,0.81859,unitless
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,9 +84,9 @@ aircraft:fuel:ignore_fuel_capacity_constraint,False,unitless
aircraft:fuel:num_tanks,7,unitless
aircraft:fuel:unusable_fuel_mass_scaler,1.0,unitless
aircraft:fuel:wing_fuel_fraction,0.6883549569366508,unitless
aircraft:fuel:wing_ref_capacity,0.0,lbm
aircraft:fuel:wing_ref_capacity_term_a,0.0,unitless
aircraft:fuel:wing_ref_capacity_term_b,0.0,unitless
aircraft:fuel:wing_reference_capacity,0.0,lbm
aircraft:fuel:wing_reference_capacity_term_a,0.0,unitless
aircraft:fuel:wing_reference_capacity_term_b,0.0,unitless
aircraft:furnishings:mass_scaler,1.118,unitless
aircraft:fuselage:sidebody_thickness_to_chord,0.1792,unitless
aircraft:fuselage:laminar_flow_lower,0.0,unitless
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ aircraft:fuel:density,6.7,lbm/galUS
aircraft:fuel:fuel_system_mass_scaler,1.0,unitless
aircraft:fuel:fuselage_fuel_mass_capacity,0.0,lbm
aircraft:fuel:num_tanks,7,unitless
aircraft:fuel:total_capacity,45694.0,lbm
aircraft:fuel:max_capacity_mass,45694.0,lbm
aircraft:fuel:unusable_fuel_mass_scaler,1.0,unitless
aircraft:furnishings:mass_scaler,1.1,unitless
aircraft:fuselage:length,128.0,ft
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ aircraft:fuel:auxiliary_fuel_mass_capacity,0.0,lbm
aircraft:fuel:density,6.7,lbm/galUS
aircraft:fuel:fuel_system_mass_scaler,1.0,unitless
aircraft:fuel:num_tanks,7,unitless
aircraft:fuel:total_capacity,46063.0,lbm
aircraft:fuel:max_capacity_mass,46063.0,lbm
aircraft:fuel:unusable_fuel_mass_scaler,1.0,unitless
aircraft:fuel:wing_fuel_fraction,0.7752,unitless
aircraft:furnishings:mass_scaler,1.0,unitless
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ aircraft:fuel:auxiliary_fuel_mass_capacity,0.0,lbm
aircraft:fuel:density,6.7,lbm/galUS
aircraft:fuel:fuel_system_mass_scaler,1.0,unitless
aircraft:fuel:num_tanks,7,unitless
aircraft:fuel:total_capacity,46063.0,lbm
aircraft:fuel:max_capacity_mass,46063.0,lbm
aircraft:fuel:unusable_fuel_mass_scaler,1.0,unitless
aircraft:fuel:wing_fuel_fraction,0.7752,unitless
aircraft:furnishings:mass_scaler,1.0,unitless
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ aircraft:fuel:auxiliary_fuel_mass_capacity,0.0,lbm
aircraft:fuel:density,6.7,lbm/galUS
aircraft:fuel:fuel_system_mass_scaler,1.0,unitless
aircraft:fuel:num_tanks,7,unitless
aircraft:fuel:total_capacity,46063.0,lbm
aircraft:fuel:max_capacity_mass,46063.0,lbm
aircraft:fuel:unusable_fuel_mass_scaler,1.0,unitless
aircraft:furnishings:mass_scaler,1.0,unitless
aircraft:fuselage:length,124.75,ft
Expand Down
73 changes: 38 additions & 35 deletions aviary/subsystems/mass/flops_based/fuel_capacity.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,13 +43,13 @@ class FuselageFuelCapacity(om.ExplicitComponent):
"""Compute the maximum fuel that can be carried in the fuselage."""

def setup(self):
add_aviary_input(self, Aircraft.Fuel.TOTAL_CAPACITY, units='lbm')
add_aviary_input(self, Aircraft.Fuel.MAX_CAPACITY_MASS, units='lbm')
add_aviary_input(self, Aircraft.Fuel.WING_FUEL_MASS_CAPACITY, units='lbm')
add_aviary_output(self, Aircraft.Fuel.FUSELAGE_FUEL_MASS_CAPACITY, units='lbm')

def setup_partials(self):
self.declare_partials(
Aircraft.Fuel.FUSELAGE_FUEL_MASS_CAPACITY, Aircraft.Fuel.TOTAL_CAPACITY, val=1.0
Aircraft.Fuel.FUSELAGE_FUEL_MASS_CAPACITY, Aircraft.Fuel.MAX_CAPACITY_MASS, val=1.0
)
self.declare_partials(
Aircraft.Fuel.FUSELAGE_FUEL_MASS_CAPACITY,
Expand All @@ -59,22 +59,22 @@ def setup_partials(self):

def compute(self, inputs, outputs):
outputs[Aircraft.Fuel.FUSELAGE_FUEL_MASS_CAPACITY] = (
inputs[Aircraft.Fuel.TOTAL_CAPACITY] - inputs[Aircraft.Fuel.WING_FUEL_MASS_CAPACITY]
inputs[Aircraft.Fuel.MAX_CAPACITY_MASS] - inputs[Aircraft.Fuel.WING_FUEL_MASS_CAPACITY]
)


class AuxFuelCapacity(om.ExplicitComponent):
"""Compute the maximum fuel that can be carried in the auxiliary tanks."""

def setup(self):
add_aviary_input(self, Aircraft.Fuel.TOTAL_CAPACITY, units='lbm')
add_aviary_input(self, Aircraft.Fuel.MAX_CAPACITY_MASS, units='lbm')
add_aviary_input(self, Aircraft.Fuel.WING_FUEL_MASS_CAPACITY, units='lbm')
add_aviary_input(self, Aircraft.Fuel.FUSELAGE_FUEL_MASS_CAPACITY, units='lbm')
add_aviary_output(self, Aircraft.Fuel.AUXILIARY_FUEL_MASS_CAPACITY, units='lbm')

def setup_partials(self):
self.declare_partials(
Aircraft.Fuel.AUXILIARY_FUEL_MASS_CAPACITY, Aircraft.Fuel.TOTAL_CAPACITY, val=1.0
Aircraft.Fuel.AUXILIARY_FUEL_MASS_CAPACITY, Aircraft.Fuel.MAX_CAPACITY_MASS, val=1.0
)
self.declare_partials(
Aircraft.Fuel.AUXILIARY_FUEL_MASS_CAPACITY,
Expand All @@ -89,7 +89,7 @@ def setup_partials(self):

def compute(self, inputs, outputs):
outputs[Aircraft.Fuel.AUXILIARY_FUEL_MASS_CAPACITY] = (
inputs[Aircraft.Fuel.TOTAL_CAPACITY]
inputs[Aircraft.Fuel.MAX_CAPACITY_MASS]
- inputs[Aircraft.Fuel.WING_FUEL_MASS_CAPACITY]
- inputs[Aircraft.Fuel.FUSELAGE_FUEL_MASS_CAPACITY]
)
Expand All @@ -102,21 +102,21 @@ def setup(self):
add_aviary_input(self, Aircraft.Fuel.WING_FUEL_MASS_CAPACITY, units='lbm')
add_aviary_input(self, Aircraft.Fuel.FUSELAGE_FUEL_MASS_CAPACITY, units='lbm')
add_aviary_input(self, Aircraft.Fuel.AUXILIARY_FUEL_MASS_CAPACITY, units='lbm')
add_aviary_output(self, Aircraft.Fuel.TOTAL_CAPACITY, units='lbm')
add_aviary_output(self, Aircraft.Fuel.MAX_CAPACITY_MASS, units='lbm')

def setup_partials(self):
self.declare_partials(
Aircraft.Fuel.TOTAL_CAPACITY, Aircraft.Fuel.WING_FUEL_MASS_CAPACITY, val=1.0
Aircraft.Fuel.MAX_CAPACITY_MASS, Aircraft.Fuel.WING_FUEL_MASS_CAPACITY, val=1.0
)
self.declare_partials(
Aircraft.Fuel.TOTAL_CAPACITY, Aircraft.Fuel.FUSELAGE_FUEL_MASS_CAPACITY, val=1.0
Aircraft.Fuel.MAX_CAPACITY_MASS, Aircraft.Fuel.FUSELAGE_FUEL_MASS_CAPACITY, val=1.0
)
self.declare_partials(
Aircraft.Fuel.TOTAL_CAPACITY, Aircraft.Fuel.AUXILIARY_FUEL_MASS_CAPACITY, val=1.0
Aircraft.Fuel.MAX_CAPACITY_MASS, Aircraft.Fuel.AUXILIARY_FUEL_MASS_CAPACITY, val=1.0
)

def compute(self, inputs, outputs):
outputs[Aircraft.Fuel.TOTAL_CAPACITY] = (
outputs[Aircraft.Fuel.MAX_CAPACITY_MASS] = (
inputs[Aircraft.Fuel.WING_FUEL_MASS_CAPACITY]
+ inputs[Aircraft.Fuel.FUSELAGE_FUEL_MASS_CAPACITY]
+ inputs[Aircraft.Fuel.AUXILIARY_FUEL_MASS_CAPACITY]
Expand All @@ -128,10 +128,10 @@ class WingFuelCapacity(om.ExplicitComponent):

def setup(self):
add_aviary_input(self, Aircraft.Fuel.DENSITY, units='lbm/ft**3')
add_aviary_input(self, Aircraft.Fuel.WING_REF_CAPACITY, units='lbm')
add_aviary_input(self, Aircraft.Fuel.WING_REF_CAPACITY_AREA, units='unitless')
add_aviary_input(self, Aircraft.Fuel.WING_REF_CAPACITY_TERM_A, units='unitless')
add_aviary_input(self, Aircraft.Fuel.WING_REF_CAPACITY_TERM_B, units='unitless')
add_aviary_input(self, Aircraft.Fuel.WING_REFERENCE_CAPACITY, units='lbm')
add_aviary_input(self, Aircraft.Fuel.WING_REFERENCE_AREA, units='ft**2')
add_aviary_input(self, Aircraft.Fuel.WING_CAPACITY_TERM_EXPONENTIAL, units='unitless')
add_aviary_input(self, Aircraft.Fuel.WING_CAPACITY_TERM_LINEAR, units='unitless')
add_aviary_input(self, Aircraft.Fuel.WING_FUEL_FRACTION, units='unitless')
add_aviary_input(self, Aircraft.Wing.AREA, units='ft**2')
add_aviary_input(self, Aircraft.Wing.SPAN, units='ft')
Expand All @@ -144,18 +144,18 @@ def setup_partials(self):
self.declare_partials('*', '*')

def compute(self, inputs, outputs):
wing_ref_cap_terma = inputs[Aircraft.Fuel.WING_REF_CAPACITY_TERM_A]
wing_cap_terma = inputs[Aircraft.Fuel.WING_CAPACITY_TERM_EXPONENTIAL]
wing_area = inputs[Aircraft.Wing.AREA]

if wing_ref_cap_terma.real > 0.0:
wing_ref_cap = inputs[Aircraft.Fuel.WING_REF_CAPACITY]
wing_ref_cap_area = inputs[Aircraft.Fuel.WING_REF_CAPACITY_AREA]
wing_ref_cap_termb = inputs[Aircraft.Fuel.WING_REF_CAPACITY_TERM_B]
if wing_cap_terma.real > 0.0:
wing_ref_cap = inputs[Aircraft.Fuel.WING_REFERENCE_CAPACITY]
wing_ref_area = inputs[Aircraft.Fuel.WING_REFERENCE_AREA]
wing_cap_termb = inputs[Aircraft.Fuel.WING_CAPACITY_TERM_LINEAR]

fuel_cap_wing = (
wing_ref_cap
+ wing_ref_cap_terma * (wing_area**1.5 - wing_ref_cap_area**1.5)
+ wing_ref_cap_termb * (wing_area - wing_ref_cap_area)
+ wing_cap_terma * (wing_area**1.5 - wing_ref_area**1.5)
+ wing_cap_termb * (wing_area - wing_ref_area)
)

else:
Expand All @@ -177,30 +177,33 @@ def compute(self, inputs, outputs):
outputs[Aircraft.Fuel.WING_FUEL_MASS_CAPACITY] = fuel_cap_wing / GRAV_ENGLISH_LBM

def compute_partials(self, inputs, partials):
wing_ref_cap_terma = inputs[Aircraft.Fuel.WING_REF_CAPACITY_TERM_A]
wing_cap_terma = inputs[Aircraft.Fuel.WING_CAPACITY_TERM_EXPONENTIAL]
wing_area = inputs[Aircraft.Wing.AREA]

if wing_ref_cap_terma.real > 0.0:
wing_ref_cap_area = inputs[Aircraft.Fuel.WING_REF_CAPACITY_AREA]
wing_ref_cap_termb = inputs[Aircraft.Fuel.WING_REF_CAPACITY_TERM_B]
if wing_cap_terma.real > 0.0:
wing_ref_area = inputs[Aircraft.Fuel.WING_REFERENCE_AREA]
wing_cap_termb = inputs[Aircraft.Fuel.WING_CAPACITY_TERM_LINEAR]

partials[Aircraft.Fuel.WING_FUEL_MASS_CAPACITY, Aircraft.Fuel.WING_REF_CAPACITY] = 1.0
partials[
Aircraft.Fuel.WING_FUEL_MASS_CAPACITY, Aircraft.Fuel.WING_REFERENCE_CAPACITY
] = 1.0

partials[
Aircraft.Fuel.WING_FUEL_MASS_CAPACITY, Aircraft.Fuel.WING_REF_CAPACITY_TERM_A
] = wing_area**1.5 - wing_ref_cap_area**1.5
Aircraft.Fuel.WING_FUEL_MASS_CAPACITY,
Aircraft.Fuel.WING_CAPACITY_TERM_EXPONENTIAL,
] = wing_area**1.5 - wing_ref_area**1.5

partials[
Aircraft.Fuel.WING_FUEL_MASS_CAPACITY, Aircraft.Fuel.WING_REF_CAPACITY_TERM_B
] = wing_area - wing_ref_cap_area
Aircraft.Fuel.WING_FUEL_MASS_CAPACITY, Aircraft.Fuel.WING_CAPACITY_TERM_LINEAR
] = wing_area - wing_ref_area

partials[Aircraft.Fuel.WING_FUEL_MASS_CAPACITY, Aircraft.Wing.AREA] = (
1.5 * wing_ref_cap_terma * wing_area**0.5 + wing_ref_cap_termb
1.5 * wing_cap_terma * wing_area**0.5 + wing_cap_termb
)

partials[
Aircraft.Fuel.WING_FUEL_MASS_CAPACITY, Aircraft.Fuel.WING_REF_CAPACITY_AREA
] = -1.5 * wing_ref_cap_terma * wing_ref_cap_area**0.5 - wing_ref_cap_termb
partials[Aircraft.Fuel.WING_FUEL_MASS_CAPACITY, Aircraft.Fuel.WING_REFERENCE_AREA] = (
-1.5 * wing_cap_terma * wing_ref_area**0.5 - wing_cap_termb
)

else:
fuel_density = inputs[Aircraft.Fuel.DENSITY] * GRAV_ENGLISH_LBM
Expand Down
Loading
Loading