.")
else:
self.fail('Expecting TypeError.')
diff --git a/aviary/utils/test/test_doctape.py b/aviary/utils/test/test_doctape.py
new file mode 100644
index 000000000..d13b8d1c1
--- /dev/null
+++ b/aviary/utils/test/test_doctape.py
@@ -0,0 +1,67 @@
+import unittest
+import numpy as np
+
+from openmdao.utils.assert_utils import assert_near_equal, assert_equal_numstrings, assert_equal_arrays
+
+from aviary.utils.doctape import gramatical_list, check_value, check_contains, check_args, run_command_no_file_error, get_attribute_name, get_all_keys, get_value, get_previous_line, get_variable_name
+
+
+class DocTAPETests(unittest.TestCase):
+ """
+ Testing the DocTAPE functions to make sure they all run in all supported Python versions
+ Docs are only built with latest, but these test will be run with latest and dev as well
+ """
+
+ def test_gramatical_list(self):
+ string = gramatical_list(['a', 'b', 'c'])
+ assert_equal_numstrings(string, 'a, b, and c')
+
+ def test_check_value(self):
+ check_value(1, 1.0)
+
+ def test_check_contains(self):
+ check_contains(1, [1, 2, 3])
+
+ def test_check_args(self):
+ check_args(check_args, 'func')
+
+ def test_run_command_no_file_error(self):
+ run_command_no_file_error('python -c "print()"')
+
+ def test_get_attribute_name(self):
+ class dummy_object:
+ attr1 = 1
+ name = get_attribute_name(dummy_object, 1)
+ assert_equal_numstrings(name, 'attr1')
+
+ def test_get_all_keys(self):
+ keys = get_all_keys({'d1': {'d2': 2}})
+ assert_equal_arrays(np.array(keys), np.array(['d1', 'd2']))
+
+ def test_get_value(self):
+ val = get_value({'d1': {'d2': 2}}, 'd1.d2')
+ assert_near_equal(val, 2)
+
+ def test_get_previous_line(self):
+ something = "something_else"
+ line1 = get_previous_line()
+ line2 = get_previous_line(2)
+ assert_equal_numstrings(line1, 'something = "something_else"')
+ assert_equal_numstrings(line2[1].strip(), 'line1 = get_previous_line()')
+
+ def test_get_variable_name(self):
+ var = 7
+ name = get_variable_name(var)
+ assert_equal_numstrings(name, 'var')
+
+ # requires IPython shell
+ # def test_glue_variable(self):
+ # glue_variable('plain_text')
+
+ # requires IPython shell
+ # def test_glue_keys(self):
+ # glue_keys({'d1':{'d2':2}})
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/aviary/validation_cases/benchmark_tests/test_FLOPS_balanced_field_length.py b/aviary/validation_cases/benchmark_tests/test_FLOPS_balanced_field_length.py
index 92ae6fb52..fd66f9d75 100644
--- a/aviary/validation_cases/benchmark_tests/test_FLOPS_balanced_field_length.py
+++ b/aviary/validation_cases/benchmark_tests/test_FLOPS_balanced_field_length.py
@@ -22,6 +22,7 @@
from aviary.utils.functions import \
set_aviary_initial_values, set_aviary_input_defaults
from aviary.utils.preprocessors import preprocess_options
+from aviary.variable_info.functions import setup_model_options
from aviary.variable_info.variables import Dynamic, Aircraft
@@ -107,6 +108,8 @@ def _do_run(self, driver: Driver, optimizer, *args):
varnames = [Aircraft.Wing.ASPECT_RATIO]
set_aviary_input_defaults(takeoff.model, varnames, aviary_options)
+ setup_model_options(takeoff, aviary_options)
+
# suppress warnings:
# "input variable '...' promoted using '*' was already promoted using 'aircraft:*'
with warnings.catch_warnings():
diff --git a/aviary/validation_cases/benchmark_tests/test_FLOPS_based_sizing_N3CC.py b/aviary/validation_cases/benchmark_tests/test_FLOPS_based_sizing_N3CC.py
index f7007f33e..3afb8330b 100644
--- a/aviary/validation_cases/benchmark_tests/test_FLOPS_based_sizing_N3CC.py
+++ b/aviary/validation_cases/benchmark_tests/test_FLOPS_based_sizing_N3CC.py
@@ -29,12 +29,12 @@
from aviary.utils.aviary_values import AviaryValues
from aviary.utils.functions import set_aviary_input_defaults
from aviary.utils.functions import set_aviary_initial_values
-from aviary.utils.preprocessors import preprocess_crewpayload
+from aviary.utils.preprocessors import preprocess_crewpayload, preprocess_propulsion
from aviary.utils.test_utils.assert_utils import warn_timeseries_near_equal
from aviary.utils.test_utils.default_subsystems import get_default_mission_subsystems
from aviary.validation_cases.validation_tests import get_flops_inputs
from aviary.variable_info.enums import LegacyCode
-from aviary.variable_info.functions import setup_trajectory_params
+from aviary.variable_info.functions import setup_trajectory_params, setup_model_options
from aviary.variable_info.variables import Aircraft, Dynamic, Mission
from aviary.variable_info.variable_meta_data import _MetaData as BaseMetaData
@@ -188,6 +188,7 @@ def run_trajectory(sim=True):
# default subsystems
engine = build_engine_deck(aviary_inputs)
+ preprocess_propulsion(aviary_inputs, engine)
default_mission_subsystems = get_default_mission_subsystems('FLOPS', engine)
climb_options = EnergyPhase(
@@ -308,8 +309,11 @@ def run_trajectory(sim=True):
'landing', landing, promotes_inputs=['aircraft:*', 'mission:*'],
promotes_outputs=['mission:*'])
- traj.link_phases(["climb", "cruise", "descent"], [
- "time", Dynamic.Mission.MASS, Dynamic.Mission.DISTANCE], connected=strong_couple)
+ traj.link_phases(
+ ["climb", "cruise", "descent"],
+ ["time", Dynamic.Vehicle.MASS, Dynamic.Mission.DISTANCE],
+ connected=strong_couple,
+ )
# Need to declare dymos parameters for every input that is promoted out of the missions.
externs = {'climb': {}, 'cruise': {}, 'descent': {}}
@@ -433,6 +437,8 @@ def run_trajectory(sim=True):
]
set_aviary_input_defaults(prob.model, varnames, aviary_inputs)
+ setup_model_options(prob, aviary_inputs)
+
prob.setup(force_alloc_complex=True)
set_aviary_initial_values(prob, aviary_inputs)
@@ -444,13 +450,21 @@ def run_trajectory(sim=True):
prob.set_val('traj.climb.t_initial', t_i_climb, units='s')
prob.set_val('traj.climb.t_duration', t_duration_climb, units='s')
- prob.set_val('traj.climb.controls:altitude', climb.interp(
- Dynamic.Mission.ALTITUDE, ys=[alt_i_climb, alt_f_climb]), units='m')
prob.set_val(
- 'traj.climb.controls:mach', climb.interp(
- Dynamic.Mission.MACH, ys=[mach_i_climb, mach_f_climb]), units='unitless')
- prob.set_val('traj.climb.states:mass', climb.interp(
- Dynamic.Mission.MASS, ys=[mass_i_climb, mass_f_climb]), units='kg')
+ 'traj.climb.controls:altitude',
+ climb.interp(Dynamic.Mission.ALTITUDE, ys=[alt_i_climb, alt_f_climb]),
+ units='m',
+ )
+ prob.set_val(
+ 'traj.climb.controls:mach',
+ climb.interp(Dynamic.Atmosphere.MACH, ys=[mach_i_climb, mach_f_climb]),
+ units='unitless',
+ )
+ prob.set_val(
+ 'traj.climb.states:mass',
+ climb.interp(Dynamic.Vehicle.MASS, ys=[mass_i_climb, mass_f_climb]),
+ units='kg',
+ )
prob.set_val('traj.climb.states:distance', climb.interp(
Dynamic.Mission.DISTANCE, ys=[distance_i_climb, distance_f_climb]), units='m')
@@ -462,26 +476,42 @@ def run_trajectory(sim=True):
else:
controls_str = 'polynomial_controls'
- prob.set_val(f'traj.cruise.{controls_str}:altitude', cruise.interp(
- Dynamic.Mission.ALTITUDE, ys=[alt_i_cruise, alt_f_cruise]), units='m')
prob.set_val(
- f'traj.cruise.{controls_str}:mach', cruise.interp(
- Dynamic.Mission.MACH, ys=[cruise_mach, cruise_mach]), units='unitless')
- prob.set_val('traj.cruise.states:mass', cruise.interp(
- Dynamic.Mission.MASS, ys=[mass_i_cruise, mass_f_cruise]), units='kg')
+ f'traj.cruise.{controls_str}:altitude',
+ cruise.interp(Dynamic.Mission.ALTITUDE, ys=[alt_i_cruise, alt_f_cruise]),
+ units='m',
+ )
+ prob.set_val(
+ f'traj.cruise.{controls_str}:mach',
+ cruise.interp(Dynamic.Atmosphere.MACH, ys=[cruise_mach, cruise_mach]),
+ units='unitless',
+ )
+ prob.set_val(
+ 'traj.cruise.states:mass',
+ cruise.interp(Dynamic.Vehicle.MASS, ys=[mass_i_cruise, mass_f_cruise]),
+ units='kg',
+ )
prob.set_val('traj.cruise.states:distance', cruise.interp(
Dynamic.Mission.DISTANCE, ys=[distance_i_cruise, distance_f_cruise]), units='m')
prob.set_val('traj.descent.t_initial', t_i_descent, units='s')
prob.set_val('traj.descent.t_duration', t_duration_descent, units='s')
- prob.set_val('traj.descent.controls:altitude', descent.interp(
- Dynamic.Mission.ALTITUDE, ys=[alt_i_descent, alt_f_descent]), units='m')
prob.set_val(
- 'traj.descent.controls:mach', descent.interp(
- Dynamic.Mission.MACH, ys=[mach_i_descent, mach_f_descent]), units='unitless')
- prob.set_val('traj.descent.states:mass', descent.interp(
- Dynamic.Mission.MASS, ys=[mass_i_descent, mass_f_descent]), units='kg')
+ 'traj.descent.controls:altitude',
+ descent.interp(Dynamic.Mission.ALTITUDE, ys=[alt_i_descent, alt_f_descent]),
+ units='m',
+ )
+ prob.set_val(
+ 'traj.descent.controls:mach',
+ descent.interp(Dynamic.Atmosphere.MACH, ys=[mach_i_descent, mach_f_descent]),
+ units='unitless',
+ )
+ prob.set_val(
+ 'traj.descent.states:mass',
+ descent.interp(Dynamic.Vehicle.MASS, ys=[mass_i_descent, mass_f_descent]),
+ units='kg',
+ )
prob.set_val('traj.descent.states:distance', descent.interp(
Dynamic.Mission.DISTANCE, ys=[distance_i_descent, distance_f_descent]), units='m')
diff --git a/aviary/validation_cases/benchmark_tests/test_FLOPS_detailed_landing.py b/aviary/validation_cases/benchmark_tests/test_FLOPS_detailed_landing.py
index 950506bcf..1610ba160 100644
--- a/aviary/validation_cases/benchmark_tests/test_FLOPS_detailed_landing.py
+++ b/aviary/validation_cases/benchmark_tests/test_FLOPS_detailed_landing.py
@@ -19,6 +19,7 @@
set_aviary_initial_values, set_aviary_input_defaults
from aviary.utils.preprocessors import preprocess_options
from aviary.utils.test_utils.default_subsystems import get_default_mission_subsystems
+from aviary.variable_info.functions import setup_model_options
from aviary.variable_info.variables import Aircraft, Dynamic
@@ -101,6 +102,8 @@ def _do_run(self, driver: Driver, optimizer, *args):
varnames = [Aircraft.Wing.ASPECT_RATIO]
set_aviary_input_defaults(landing.model, varnames, aviary_options)
+ setup_model_options(landing, aviary_options)
+
# suppress warnings:
# "input variable '...' promoted using '*' was already promoted using 'aircraft:*'
with warnings.catch_warnings():
diff --git a/aviary/validation_cases/benchmark_tests/test_FLOPS_detailed_takeoff.py b/aviary/validation_cases/benchmark_tests/test_FLOPS_detailed_takeoff.py
index 49dd1ee69..032905087 100644
--- a/aviary/validation_cases/benchmark_tests/test_FLOPS_detailed_takeoff.py
+++ b/aviary/validation_cases/benchmark_tests/test_FLOPS_detailed_takeoff.py
@@ -19,6 +19,7 @@
set_aviary_initial_values, set_aviary_input_defaults
from aviary.utils.test_utils.default_subsystems import get_default_mission_subsystems
from aviary.utils.preprocessors import preprocess_options
+from aviary.variable_info.functions import setup_model_options
from aviary.variable_info.variables import Aircraft, Dynamic
@@ -116,6 +117,8 @@ def _do_run(self, driver: Driver, optimizer, *args):
varnames = [Aircraft.Wing.ASPECT_RATIO]
set_aviary_input_defaults(takeoff.model, varnames, aviary_options)
+ setup_model_options(takeoff, aviary_options)
+
# suppress warnings:
# "input variable '...' promoted using '*' was already promoted using 'aircraft:*'
with warnings.catch_warnings():
diff --git a/aviary/validation_cases/benchmark_tests/test_battery_in_a_mission.py b/aviary/validation_cases/benchmark_tests/test_battery_in_a_mission.py
index 4ac7d0990..7fe7e744e 100644
--- a/aviary/validation_cases/benchmark_tests/test_battery_in_a_mission.py
+++ b/aviary/validation_cases/benchmark_tests/test_battery_in_a_mission.py
@@ -56,8 +56,7 @@ def test_subsystems_in_a_mission(self):
prob = av.AviaryProblem()
prob.load_inputs(
- "models/test_aircraft/aircraft_for_bench_FwFm_with_electric.csv", phase_info
- )
+ "models/test_aircraft/aircraft_for_bench_FwFm_with_electric.csv", phase_info)
# Preprocess inputs
prob.check_and_preprocess_inputs()
@@ -84,34 +83,54 @@ def test_subsystems_in_a_mission(self):
prob.set_val(av.Aircraft.Battery.PACK_ENERGY_DENSITY, 550, units='kJ/kg')
prob.set_val(av.Aircraft.Battery.PACK_MASS, 1000, units='lbm')
prob.set_val(av.Aircraft.Battery.ADDITIONAL_MASS, 115, units='lbm')
- prob.set_val(av.Aircraft.Battery.EFFICIENCY, 0.95, units='unitless')
prob.run_aviary_problem()
electric_energy_used = prob.get_val(
'traj.cruise.timeseries.'
- f'{av.Dynamic.Mission.CUMULATIVE_ELECTRIC_ENERGY_USED}',
+ f'{av.Dynamic.Vehicle.CUMULATIVE_ELECTRIC_ENERGY_USED}',
units='kW*h',
)
- fuel_burned = prob.get_val(av.Mission.Summary.FUEL_BURNED, units='lbm')
soc = prob.get_val(
- 'traj.cruise.rhs_all.battery.battery_state_of_charge', units='unitless'
+ 'traj.cruise.timeseries.'
+ f'{av.Dynamic.Vehicle.BATTERY_STATE_OF_CHARGE}',
)
+ fuel_burned = prob.get_val(av.Mission.Summary.FUEL_BURNED, units='lbm')
# Check outputs
# indirectly check mission trajectory by checking total fuel/electric split
- assert_near_equal(electric_energy_used[-1], 38.60538132, 1.e-7)
- assert_near_equal(fuel_burned, 676.87235486, 1.e-7)
+ assert_near_equal(electric_energy_used[-1], 38.60747069, 1.e-7)
+ assert_near_equal(fuel_burned, 676.93670291, 1.e-7)
# check battery state-of-charge over mission
+
assert_near_equal(
- soc,
- [0.99999578, 0.97551324, 0.94173584, 0.93104625, 0.93104625,
- 0.8810605, 0.81210498, 0.79028433, 0.79028433, 0.73088701,
- 0.64895148, 0.62302415, 0.62302415, 0.57309323, 0.50421334,
- 0.48241661, 0.48241661, 0.45797918, 0.42426402, 0.41359413],
+ soc.ravel(),
+ [0.9999957806265609,
+ 0.975511918724275,
+ 0.9417326925421843,
+ 0.931042529806735,
+ 0.931042529806735,
+ 0.8810540781831623,
+ 0.8120948314123136,
+ 0.7902729948636958,
+ 0.7902729948636958,
+ 0.7308724676601358,
+ 0.6489324990486358,
+ 0.6230037623262401,
+ 0.6230037623262401,
+ 0.5730701397031007,
+ 0.5041865153698425,
+ 0.4823886057245942,
+ 0.4823886057245942,
+ 0.4579498542268948,
+ 0.4242328589510152,
+ 0.4135623891269744],
1e-7,
)
if __name__ == "__main__":
- unittest.main()
+ # unittest.main()
+ test = TestSubsystemsMission()
+ test.setUp()
+ test.test_subsystems_in_a_mission()
diff --git a/aviary/validation_cases/benchmark_tests/test_bench_FwFm.py b/aviary/validation_cases/benchmark_tests/test_bench_FwFm.py
index 1a07bb967..3e1160ae9 100644
--- a/aviary/validation_cases/benchmark_tests/test_bench_FwFm.py
+++ b/aviary/validation_cases/benchmark_tests/test_bench_FwFm.py
@@ -20,7 +20,7 @@
class ProblemPhaseTestCase(unittest.TestCase):
"""
- Setup of a large single aisle commercial transport aircraft using
+ Setup of a large single aisle commercial transport aircraft using
FLOPS mass method and HEIGHT_ENERGY mission method. Expected outputs based
on 'models/test_aircraft/aircraft_for_bench_FwFm.csv' model.
"""
@@ -426,7 +426,7 @@ def test_bench_FwFm_SNOPT_MPI(self):
if __name__ == '__main__':
- unittest.main()
- # test = TestBenchFwFmSerial()
- # test.setUp()
- # test.test_bench_FwFm_SNOPT()
+ # unittest.main()
+ test = TestBenchFwFmSerial()
+ test.setUp()
+ test.test_bench_FwFm_SNOPT()
diff --git a/aviary/validation_cases/benchmark_tests/test_bench_GwGm.py b/aviary/validation_cases/benchmark_tests/test_bench_GwGm.py
index 34b883d7f..59d823bb7 100644
--- a/aviary/validation_cases/benchmark_tests/test_bench_GwGm.py
+++ b/aviary/validation_cases/benchmark_tests/test_bench_GwGm.py
@@ -14,7 +14,7 @@
@use_tempdirs
class ProblemPhaseTestCase(unittest.TestCase):
"""
- Test the setup and run of a large single aisle commercial transport aircraft using
+ Test the setup and run of a large single aisle commercial transport aircraft using
GASP mass method and TWO_DEGREES_OF_FREEDOM mission method. Expected outputs
based on 'models/test_aircraft/aircraft_for_bench_FwFm.csv' model.
"""
@@ -212,7 +212,7 @@ def test_bench_GwGm_shooting(self):
)
assert_near_equal(
- prob.get_val(Mission.Summary.RANGE, units='NM'), 3774.3, tolerance=rtol
+ prob.get_val(Mission.Summary.RANGE, units='NM'), 3675.0, tolerance=rtol
)
assert_near_equal(
@@ -231,7 +231,7 @@ def test_bench_GwGm_shooting(self):
if __name__ == '__main__':
- # unittest.main()
- test = ProblemPhaseTestCase()
- test.setUp()
- test.test_bench_GwGm_shooting()
+ unittest.main()
+ # test = ProblemPhaseTestCase()
+ # test.setUp()
+ # test.test_bench_GwGm_SNOPT()
diff --git a/aviary/validation_cases/benchmark_tests/test_bench_electrified_large_turboprop_freighter.py b/aviary/validation_cases/benchmark_tests/test_bench_electrified_large_turboprop_freighter.py
new file mode 100644
index 000000000..054170193
--- /dev/null
+++ b/aviary/validation_cases/benchmark_tests/test_bench_electrified_large_turboprop_freighter.py
@@ -0,0 +1,101 @@
+import numpy as np
+import unittest
+import openmdao.api as om
+
+
+from numpy.testing import assert_almost_equal
+from openmdao.utils.testing_utils import use_tempdirs
+
+from aviary.interface.methods_for_level2 import AviaryProblem
+from aviary.subsystems.propulsion.turboprop_model import TurbopropModel
+from aviary.subsystems.propulsion.motor.motor_builder import MotorBuilder
+from aviary.utils.process_input_decks import create_vehicle
+from aviary.variable_info.variables import Aircraft, Mission, Settings
+
+from aviary.models.large_turboprop_freighter.phase_info import (
+ two_dof_phase_info,
+ energy_phase_info,
+)
+
+
+@use_tempdirs
+# TODO need to add asserts with "truth" values
+class LargeElectrifiedTurbopropFreighterBenchmark(unittest.TestCase):
+
+ def build_and_run_problem(self):
+
+ # Build problem
+ prob = AviaryProblem()
+
+ # load inputs from .csv to build engine
+ options, guesses = create_vehicle(
+ "models/large_turboprop_freighter/large_turboprop_freighter.csv"
+ )
+
+ options.set_val(Settings.EQUATIONS_OF_MOTION, 'height_energy')
+ # options.set_val(Aircraft.Engine.NUM_ENGINES, 2)
+ # options.set_val(Aircraft.Engine.WING_LOCATIONS, 0.385)
+ scale_factor = 3
+ options.set_val(Aircraft.Engine.RPM_DESIGN, 6000, 'rpm')
+ options.set_val(Aircraft.Engine.FIXED_RPM, 6000, 'rpm')
+ options.set_val(Aircraft.Engine.Gearbox.GEAR_RATIO, 5.88)
+ options.set_val(Aircraft.Engine.Gearbox.EFFICIENCY, 1.0)
+ options.set_val(Aircraft.Engine.SCALE_FACTOR, scale_factor) # 11.87)
+ options.set_val(
+ Aircraft.Engine.SCALED_SLS_THRUST,
+ options.get_val(Aircraft.Engine.REFERENCE_SLS_THRUST, 'lbf') * scale_factor,
+ 'lbf',
+ )
+
+ # turboprop = TurbopropModel('turboprop', options=options)
+ # turboprop2 = TurbopropModel('turboprop2', options=options)
+
+ motor = MotorBuilder(
+ 'motor',
+ )
+
+ electroprop = TurbopropModel(
+ 'electroprop', options=options, shaft_power_model=motor
+ )
+
+ # load_inputs needs to be updated to accept an already existing aviary options
+ prob.load_inputs(
+ options, # "models/large_turboprop_freighter/large_turboprop_freighter.csv",
+ energy_phase_info,
+ engine_builders=[electroprop],
+ )
+ prob.aviary_inputs.set_val(Settings.VERBOSITY, 2)
+
+ # FLOPS aero specific stuff? Best guesses for values here
+ prob.aviary_inputs.set_val(Mission.Constraints.MAX_MACH, 0.5)
+ prob.aviary_inputs.set_val(Aircraft.Wing.AREA, 1744.59, 'ft**2')
+ # prob.aviary_inputs.set_val(Aircraft.Wing.ASPECT_RATIO, 10.078)
+ prob.aviary_inputs.set_val(
+ Aircraft.Wing.THICKNESS_TO_CHORD,
+ 0.1500) # average between root and chord T/C
+ prob.aviary_inputs.set_val(Aircraft.Fuselage.MAX_WIDTH, 4.3, 'm')
+ prob.aviary_inputs.set_val(Aircraft.Fuselage.MAX_HEIGHT, 3.95, 'm')
+ prob.aviary_inputs.set_val(Aircraft.Fuselage.AVG_DIAMETER, 4.125, 'm')
+
+ prob.check_and_preprocess_inputs()
+ prob.add_pre_mission_systems()
+ prob.add_phases()
+ prob.add_post_mission_systems()
+ prob.link_phases()
+ prob.add_driver("IPOPT", max_iter=0, verbosity=0)
+ prob.add_design_variables()
+ prob.add_objective()
+
+ prob.setup()
+ # prob.model.list_vars(units=True, print_arrays=True)
+ om.n2(prob)
+
+ prob.set_initial_guesses()
+ prob.run_aviary_problem("dymos_solution.db")
+
+ om.n2(prob)
+
+
+if __name__ == '__main__':
+ test = LargeElectrifiedTurbopropFreighterBenchmark()
+ test.build_and_run_problem()
diff --git a/aviary/validation_cases/benchmark_tests/test_bench_large_turboprop_freighter.py b/aviary/validation_cases/benchmark_tests/test_bench_large_turboprop_freighter.py
new file mode 100644
index 000000000..1454af94d
--- /dev/null
+++ b/aviary/validation_cases/benchmark_tests/test_bench_large_turboprop_freighter.py
@@ -0,0 +1,69 @@
+import numpy as np
+import unittest
+import openmdao.api as om
+
+
+from numpy.testing import assert_almost_equal
+from openmdao.utils.testing_utils import use_tempdirs
+
+from aviary.interface.methods_for_level2 import AviaryProblem
+from aviary.subsystems.propulsion.turboprop_model import TurbopropModel
+from aviary.subsystems.propulsion.motor.motor_builder import MotorBuilder
+from aviary.utils.process_input_decks import create_vehicle
+from aviary.variable_info.variables import Aircraft, Mission, Settings
+
+from aviary.models.large_turboprop_freighter.phase_info import (
+ two_dof_phase_info,
+ energy_phase_info,
+)
+
+
+@use_tempdirs
+@unittest.skip("Skipping until all builders are updated with get_parameters()")
+# TODO need to add asserts with "truth" values
+class LargeTurbopropFreighterBenchmark(unittest.TestCase):
+
+ def build_and_run_problem(self):
+
+ # Build problem
+ prob = AviaryProblem()
+
+ # load inputs from .csv to build engine
+ options, _ = create_vehicle(
+ "models/large_turboprop_freighter/large_turboprop_freighter.csv"
+ )
+
+ turboprop = TurbopropModel('turboprop', options=options)
+
+ # load_inputs needs to be updated to accept an already existing aviary options
+ prob.load_inputs(
+ "models/large_turboprop_freighter/large_turboprop_freighter.csv",
+ two_dof_phase_info,
+ engine_builders=[turboprop],
+ )
+ prob.aviary_inputs.set_val(Settings.VERBOSITY, 2)
+
+ # FLOPS aero specific stuff? Best guesses for values here
+ prob.aviary_inputs.set_val(Mission.Constraints.MAX_MACH, 0.5)
+ prob.aviary_inputs.set_val(Aircraft.Fuselage.AVG_DIAMETER, 4.125, 'm')
+
+ prob.check_and_preprocess_inputs()
+ prob.add_pre_mission_systems()
+ prob.add_phases()
+ prob.add_post_mission_systems()
+ prob.link_phases()
+ prob.add_driver("IPOPT", max_iter=0, verbosity=0)
+ prob.add_design_variables()
+ prob.add_objective()
+ prob.setup()
+ # om.n2(prob)
+
+ prob.set_initial_guesses()
+ prob.run_aviary_problem("dymos_solution.db")
+
+ om.n2(prob)
+
+
+if __name__ == '__main__':
+ test = LargeTurbopropFreighterBenchmark()
+ test.build_and_run_problem()
diff --git a/aviary/validation_cases/benchmark_tests/test_bench_multiengine.py b/aviary/validation_cases/benchmark_tests/test_bench_multiengine.py
index 05093fc0b..5fd0ac36a 100644
--- a/aviary/validation_cases/benchmark_tests/test_bench_multiengine.py
+++ b/aviary/validation_cases/benchmark_tests/test_bench_multiengine.py
@@ -1,5 +1,6 @@
from copy import deepcopy
import unittest
+import numpy as np
import openmdao.api as om
from openmdao.core.problem import _clear_problem_names
@@ -11,6 +12,7 @@
from aviary.models.multi_engine_single_aisle.multi_engine_single_aisle_data import inputs, engine_1_inputs, engine_2_inputs
from aviary.subsystems.propulsion.utils import build_engine_deck
from aviary.variable_info.enums import ThrottleAllocation
+from aviary.variable_info.variables import Aircraft
# Build problem
@@ -33,6 +35,9 @@
local_phase_info['descent']['user_options']['no_climb'] = True
local_phase_info['descent']['user_options']['use_polynomial_control'] = True
+inputs.set_val(Aircraft.Nacelle.LAMINAR_FLOW_LOWER, np.zeros(2))
+inputs.set_val(Aircraft.Nacelle.LAMINAR_FLOW_UPPER, np.zeros(2))
+
@use_tempdirs
class MultiengineTestcase(unittest.TestCase):
@@ -125,8 +130,8 @@ def test_multiengine_static(self):
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_descent[0], 0.999, tolerance=1e-2)
+ assert_near_equal(alloc_cruise[0], 0.593, tolerance=1e-2)
+ assert_near_equal(alloc_descent[0], 0.408, tolerance=1e-2)
@require_pyoptsparse(optimizer="SNOPT")
def test_multiengine_dynamic(self):
@@ -166,7 +171,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.595, tolerance=1e-2)
# Check general trend: favors engine 1.
self.assertGreater(alloc_climb[2], 0.55)
diff --git a/aviary/validation_cases/validation_data/flops_data/full_mission_test_data.py b/aviary/validation_cases/validation_data/flops_data/full_mission_test_data.py
index 02aca9e40..92086d0f6 100644
--- a/aviary/validation_cases/validation_data/flops_data/full_mission_test_data.py
+++ b/aviary/validation_cases/validation_data/flops_data/full_mission_test_data.py
@@ -62,55 +62,87 @@
data.set_val(
# states:altitude
Dynamic.Mission.ALTITUDE,
- val=[29.3112920637369, 10668, 26.3564405194251, ],
+ val=[
+ 29.3112920637369,
+ 10668,
+ 26.3564405194251,
+ ],
units='m',
)
data.set_val(
# outputs
Dynamic.Mission.ALTITUDE_RATE,
- val=[29.8463233754212, -5.69941245767868E-09, -4.32644785970493, ],
+ val=[
+ 29.8463233754212,
+ -5.69941245767868e-09,
+ -4.32644785970493,
+ ],
units='ft/s',
)
data.set_val(
# outputs
Dynamic.Mission.ALTITUDE_RATE_MAX,
- val=[3679.0525544843, 3.86361517135375, 6557.07891846677, ],
+ val=[
+ 3679.0525544843,
+ 3.86361517135375,
+ 6557.07891846677,
+ ],
units='ft/min',
)
data.set_val(
# outputs
- Dynamic.Mission.DRAG,
- val=[9978.32211087097, 8769.90342254821, 7235.03338269778, ],
+ Dynamic.Vehicle.DRAG,
+ val=[
+ 9978.32211087097,
+ 8769.90342254821,
+ 7235.03338269778,
+ ],
units='lbf',
)
data.set_val(
# outputs
- Dynamic.Mission.FUEL_FLOW_RATE,
- val=[16602.302762413, 5551.61304633633, 1286, ],
+ Dynamic.Vehicle.Propulsion.FUEL_FLOW_RATE,
+ val=[
+ 16602.302762413,
+ 5551.61304633633,
+ 1286,
+ ],
units='lbm/h',
)
data.set_val(
- Dynamic.Mission.MACH,
- val=[0.482191004489294, 0.785, 0.345807620281699, ],
+ Dynamic.Atmosphere.MACH,
+ val=[
+ 0.482191004489294,
+ 0.785,
+ 0.345807620281699,
+ ],
units='unitless',
)
data.set_val(
# states:mass
- Dynamic.Mission.MASS,
- val=[81796.1389890711, 74616.9849763798, 65193.7423491884, ],
+ Dynamic.Vehicle.MASS,
+ val=[
+ 81796.1389890711,
+ 74616.9849763798,
+ 65193.7423491884,
+ ],
units='kg',
)
# TODO: double check values
data.set_val(
- Dynamic.Mission.THROTTLE,
- val=[0.5, 0.5, 0., ],
+ Dynamic.Vehicle.Propulsion.THROTTLE,
+ val=[
+ 0.5,
+ 0.5,
+ 0.0,
+ ],
units='unitless',
)
@@ -131,28 +163,44 @@
data.set_val(
# outputs
Dynamic.Mission.SPECIFIC_ENERGY_RATE,
- val=[18.4428113202544191, -1.7371801250963E-9, -5.9217623736010768, ],
+ val=[
+ 18.4428113202544191,
+ -1.7371801250963e-9,
+ -5.9217623736010768,
+ ],
units='m/s',
)
data.set_val(
# outputs
Dynamic.Mission.SPECIFIC_ENERGY_RATE_EXCESS,
- val=[28.03523893220630, 3.8636151713537548, 28.706899839848, ],
+ val=[
+ 28.03523893220630,
+ 3.8636151713537548,
+ 28.706899839848,
+ ],
units='m/s',
)
data.set_val(
# outputs
- Dynamic.Mission.THRUST_TOTAL,
- val=[30253.9128379374, 8769.90342132054, 0, ],
+ Dynamic.Vehicle.Propulsion.THRUST_TOTAL,
+ val=[
+ 30253.9128379374,
+ 8769.90342132054,
+ 0,
+ ],
units='lbf',
)
data.set_val(
# outputs
- Dynamic.Mission.THRUST_MAX_TOTAL,
- val=[40799.6009633346, 11500.32, 42308.2709683461, ],
+ Dynamic.Vehicle.Propulsion.THRUST_MAX_TOTAL,
+ val=[
+ 40799.6009633346,
+ 11500.32,
+ 42308.2709683461,
+ ],
units='lbf',
)
@@ -166,13 +214,21 @@
data.set_val(
# states:velocity
Dynamic.Mission.VELOCITY,
- val=[164.029012458452, 232.775306059091, 117.638805929526, ],
+ val=[
+ 164.029012458452,
+ 232.775306059091,
+ 117.638805929526,
+ ],
units='m/s',
)
data.set_val(
# state_rates:velocity
Dynamic.Mission.VELOCITY_RATE,
- val=[0.558739800813549, 3.33665416459715E-17, -0.38372209277242, ],
+ val=[
+ 0.558739800813549,
+ 3.33665416459715e-17,
+ -0.38372209277242,
+ ],
units='m/s**2',
)
diff --git a/aviary/validation_cases/validation_tests.py b/aviary/validation_cases/validation_tests.py
index 9b6e25b23..bf27ac5e5 100644
--- a/aviary/validation_cases/validation_tests.py
+++ b/aviary/validation_cases/validation_tests.py
@@ -12,6 +12,7 @@
from aviary.utils.preprocessors import preprocess_options
from aviary.validation_cases.validation_data.flops_data.FLOPS_Test_Data import \
FLOPS_Test_Data, FLOPS_Lacking_Test_Data
+from aviary.variable_info.functions import extract_options
from aviary.variable_info.variables import Aircraft
Version = Enum('Version', ['ALL', 'TRANSPORT', 'ALTERNATE', 'BWB'])
@@ -272,6 +273,9 @@ def get_flops_data(case_name: str, keys: str = None, preprocess: bool = False) -
keys : str, or iter of str
List of variables whose values will be transferred from the validation data.
The default is all variables.
+ preprocess: bool
+ If true, the input data will be passed through preprocess_options() to
+ fill in any missing options before being returned. The default is False.
"""
flops_data_copy: AviaryValues = get_flops_inputs(case_name, preprocess=preprocess)
flops_data_copy.update(get_flops_outputs(case_name))
@@ -314,6 +318,40 @@ def get_flops_inputs(case_name: str, keys: str = None, preprocess: bool = False)
return AviaryValues({key: flops_inputs_copy.get_item(key) for key in keys_list})
+def get_flops_options(case_name: str, keys: str = None, preprocess: bool = False) -> AviaryValues:
+ """
+ Returns a dictionary containing options for the named FLOPS validation case.
+
+ Parameters
+ ----------
+ case_name : str
+ Name of the case being run. Input data will be looked up from
+ the corresponding case in the FLOPS validation data collection.
+ keys : str, or iter of str
+ List of variables whose values will be transferred from the input data.
+ The default is all variables.
+ preprocess: bool
+ If true, the input data will be passed through preprocess_options() to
+ fill in any missing options before being returned. The default is False.
+ """
+ try:
+ flops_data: dict = FLOPS_Test_Data[case_name]
+ except KeyError:
+ flops_data: dict = FLOPS_Lacking_Test_Data[case_name]
+
+ flops_inputs_copy: AviaryValues = flops_data['inputs'].deepcopy()
+ if preprocess:
+ preprocess_options(flops_inputs_copy,
+ engine_models=build_engine_deck(flops_inputs_copy))
+
+ if keys is None:
+ options = extract_options(flops_inputs_copy)
+ else:
+ options = extract_options(keys)
+
+ return options
+
+
def get_flops_outputs(case_name: str, keys: str = None) -> AviaryValues:
"""
Returns an AviaryValues object containing output data for the named FLOPS validation case.
diff --git a/aviary/variable_info/enums.py b/aviary/variable_info/enums.py
index e4583609f..e2d2edaff 100644
--- a/aviary/variable_info/enums.py
+++ b/aviary/variable_info/enums.py
@@ -68,7 +68,7 @@ class GASPEngineType(Enum):
"""
Defines the type of engine to use in GASP-based mass calculations.
Note that only the value for the first engine model will be used.
- Currenly only the TURBOJET option is implemented, but other types of engines will be added in the future.
+ Currenly only the TURBOJET and TURBOPROP options are implemented, but other types of engines will be added in the future.
"""
# Reciprocating engine with carburator
RECIP_CARB = 1
@@ -151,10 +151,18 @@ class ProblemType(Enum):
weight and empty weight constant. Using the specified actual
gross weight, it will then find the maximum distance the off-design
aircraft can fly.
+
+ MULTI_MISSION: Similar to a SIZING mission, however it varies the
+ design gross weight and actual gross weight across multiple missions
+ to and closes design range for each mission. This causes the empty
+ weight and the fuel weight to change. The final result will be a
+ single empty weight, for all the different missions, and multiple
+ values for fuel weight, unique to each mission.
"""
SIZING = 'sizing'
ALTERNATE = 'alternate'
FALLOUT = 'fallout'
+ MULTI_MISSION = 'multimission'
class SpeedType(Enum):
diff --git a/aviary/variable_info/functions.py b/aviary/variable_info/functions.py
index 8c28147a0..9961ae891 100644
--- a/aviary/variable_info/functions.py
+++ b/aviary/variable_info/functions.py
@@ -1,10 +1,15 @@
-import dymos as dm
+from enum import Enum
+
+import numpy as np
+
import openmdao.api as om
-from dymos.utils.misc import _unspecified
from openmdao.core.component import Component
+from openmdao.utils.units import convert_units
+import dymos as dm
+from dymos.utils.misc import _unspecified
from aviary.utils.aviary_values import AviaryValues
-from aviary.variable_info.variables import Settings
+from aviary.variable_info.variables import Aircraft, Settings
from aviary.variable_info.variable_meta_data import _MetaData
# ---------------------------
@@ -12,14 +17,35 @@
# ---------------------------
-def add_aviary_input(comp, varname, val=None, units=None, desc=None, shape_by_conn=False, meta_data=_MetaData, shape=None):
- '''
+def add_aviary_input(comp, varname, val=None, units=None, desc=None, shape_by_conn=False,
+ meta_data=_MetaData, shape=None):
+ """
This function provides a clean way to add variables from the
variable hierarchy into components as Aviary inputs. It takes
the standard OpenMDAO inputs of the variable's name, initial
value, units, and description, as well as the component which
the variable is being added to.
- '''
+
+ Parameters
+ ----------
+ comp: Component
+ OpenMDAO component to add this variable.
+ varname: str
+ Name of variable.
+ val: float or ndarray
+ Default value for variable.
+ units: str
+ (Optional) when speficying val, units should also be specified.
+ desc: str
+ (Optional) description text for the variable.
+ shape_by_conn: bool
+ Set to True to infer the shape from the connected output.
+ meta_data: dict
+ (Optional) Aviary metadata dictionary. If unspecified, the built-in metadata will
+ be used.
+ shape: tuple
+ (Optional) shape for this input.
+ """
meta = meta_data[varname]
if units:
input_units = units
@@ -38,14 +64,34 @@ def add_aviary_input(comp, varname, val=None, units=None, desc=None, shape_by_co
desc=input_desc, shape_by_conn=shape_by_conn, shape=shape)
-def add_aviary_output(comp, varname, val, units=None, desc=None, shape_by_conn=False, meta_data=_MetaData):
- '''
+def add_aviary_output(comp, varname, val, units=None, desc=None, shape_by_conn=False,
+ meta_data=_MetaData):
+ """
This function provides a clean way to add variables from the
variable hierarchy into components as Aviary outputs. It takes
the standard OpenMDAO inputs of the variable's name, initial
value, units, and description, as well as the component which
the variable is being added to.
- '''
+
+ Parameters
+ ----------
+ comp: Component
+ OpenMDAO component to add this variable.
+ varname: str
+ Name of variable.
+ val: float or ndarray
+ (Optional) Default value for variable. If not specified, the value from metadata
+ is used.
+ units: str
+ (Optional) when speficying val, units should also be specified.
+ desc: str
+ (Optional) description text for the variable.
+ shape_by_conn: bool
+ Set to True to infer the shape from the connected output.
+ meta_data: dict
+ (Optional) Aviary metadata dictionary. If unspecified, the built-in metadata will
+ be used.
+ """
meta = meta_data[varname]
if units:
output_units = units
@@ -62,6 +108,130 @@ def add_aviary_output(comp, varname, val, units=None, desc=None, shape_by_conn=F
desc=output_desc, shape_by_conn=shape_by_conn)
+def units_setter(opt_meta, value):
+ """
+ Check and convert new units tuple into
+
+ Parameters
+ ----------
+ opt_meta : dict
+ Dictionary of entries for the option.
+ value : any
+ New value for the option.
+
+ Returns
+ -------
+ any
+ Post processed value to set into the option.
+ """
+ new_val, new_units = value
+ old_val, units = opt_meta['val']
+
+ converted_val = convert_units(new_val, new_units, units)
+ return (converted_val, units)
+
+
+def int_enum_setter(opt_meta, value):
+ """
+ Support setting the option with a string or int and converting it to the
+ proper enum object.
+
+ Parameters
+ ----------
+ opt_meta : dict
+ Dictionary of entries for the option.
+ value : any
+ New value for the option.
+
+ Returns
+ -------
+ any
+ Post processed value to set into the option.
+ """
+ types = opt_meta['types']
+ for type_ in types:
+ if type_ not in (list, np.ndarray):
+ enum_class = type_
+ break
+
+ if isinstance(value, Enum):
+ return value
+
+ elif isinstance(value, int):
+ return enum_class(value)
+
+ elif isinstance(value, str):
+ return getattr(enum_class, value)
+
+ elif isinstance(value, list):
+ values = []
+ for val in value:
+ if isinstance(val, Enum):
+ values.append(val)
+ elif isinstance(val, int):
+ values.append(enum_class(val))
+ elif isinstance(val, str):
+ values.append(getattr(enum_class, val))
+ else:
+ break
+ else:
+ return values
+
+ msg = f"Value '{value}' not valid for option with types {enum_class}"
+ raise TypeError(msg)
+
+
+def add_aviary_option(comp, name, val=_unspecified, units=None, desc=None, meta_data=_MetaData):
+ """
+ Adds an option to an Aviary component. Default values from the metadata are used
+ unless a new value is specified.
+
+ Parameters
+ ----------
+ comp: Component
+ OpenMDAO component to add this option.
+ name: str
+ Name of variable.
+ val: float or ndarray
+ (Optional) Default value for option. If not specified, the value from metadata
+ is used.
+ desc: str
+ (Optional) description text for the variable.
+ units: str
+ (Optional) OpenMDAO units string. This can be specified for variables with units.
+ meta_data: dict
+ (Optional) Aviary metadata dictionary. If unspecified, the built-in metadata will
+ be used.
+ """
+ meta = meta_data[name]
+ if not desc:
+ desc = meta['desc']
+ if val is _unspecified:
+ val = meta['default_value']
+
+ types = meta['types']
+ if meta['multivalue']:
+ if isinstance(types, tuple):
+ types = (list, *types)
+ else:
+ types = (list, types)
+
+ if units not in [None, 'unitless']:
+ types = tuple
+ comp.options.declare(name, default=(val, units),
+ types=types, desc=desc,
+ set_function=units_setter)
+
+ elif isinstance(val, Enum):
+ comp.options.declare(name, default=val,
+ types=types, desc=desc,
+ set_function=int_enum_setter)
+
+ else:
+ comp.options.declare(name, default=val,
+ types=types, desc=desc)
+
+
def override_aviary_vars(group: om.Group, aviary_inputs: AviaryValues,
manual_overrides=None, external_overrides=None):
'''
@@ -256,3 +426,104 @@ def get_units(key, meta_data=None) -> str:
meta_data = _MetaData
return meta_data[key]['units']
+
+
+def extract_options(aviary_inputs: AviaryValues, metadata=_MetaData) -> dict:
+ """
+ Extract a dictionary of options from the given aviary_inputs.
+
+ Parameters
+ ----------
+ aviary_inputs : AviaryValues
+ Instance of AviaryValues containing all initial values.
+ meta_data : dict
+ (Optional) Dictionary of aircraft metadata. Uses Aviary's built-in
+ metadata by default.
+
+ Returns
+ -------
+ dict
+ Dictionary of option names and values.
+ """
+ options = {}
+ for key, meta in metadata.items():
+
+ if key not in aviary_inputs:
+ continue
+
+ if not meta['option']:
+ continue
+
+ val, units = aviary_inputs.get_item(key)
+ meta_units = meta['units']
+
+ if meta_units == 'unitless' or meta_units is None:
+ options[key] = val
+
+ else:
+ # Implement as (quanitity, unit)
+ options[key] = (val, units)
+
+ return options
+
+
+def setup_model_options(prob: om.Problem, aviary_inputs: AviaryValues,
+ meta_data=_MetaData, engine_models=None, prefix=''):
+ """
+ Setup the correct model options for an aviary problem.
+
+ Parameters
+ ----------
+ prob: Problem
+ OpenMDAO problem prior to setup.
+ aviary_inputs : AviaryValues
+ Instance of AviaryValues containing all initial values.
+ meta_data : dict
+ (Optional) Dictionary of aircraft metadata. Uses Aviary's built-in
+ metadata by default.
+ engine_models : List of EngineModels or None
+ (Optional) Engine models
+ prefix : str
+ Prefix for model options. Used for multi-mission.
+ """
+
+ # Use OpenMDAO's model options to pass all options through the system hierarchy.
+ prob.model_options[f'{prefix}*'] = extract_options(aviary_inputs,
+ meta_data)
+
+ # Multi-engines need to index into their options.
+ try:
+ num_engine_models = len(aviary_inputs.get_val(Aircraft.Engine.NUM_ENGINES))
+ except KeyError:
+ # No engine data.
+ return
+
+ if num_engine_models > 1:
+
+ if engine_models is None:
+ engine_models = prob.engine_builders
+
+ for idx in range(num_engine_models):
+ eng_name = engine_models[idx].name
+
+ # TODO: For future flexibility, need to tag the required engine options.
+ opt_names = [
+ Aircraft.Engine.SCALE_PERFORMANCE,
+ Aircraft.Engine.SUBSONIC_FUEL_FLOW_SCALER,
+ Aircraft.Engine.SUPERSONIC_FUEL_FLOW_SCALER,
+ Aircraft.Engine.FUEL_FLOW_SCALER_CONSTANT_TERM,
+ Aircraft.Engine.FUEL_FLOW_SCALER_LINEAR_TERM,
+ ]
+ opt_names_units = [
+ Aircraft.Engine.REFERENCE_SLS_THRUST,
+ Aircraft.Engine.CONSTANT_FUEL_CONSUMPTION,
+ ]
+ opts = {}
+ for key in opt_names:
+ opts[key] = aviary_inputs.get_item(key)[0][idx]
+ for key in opt_names_units:
+ val, units = aviary_inputs.get_item(key)
+ opts[key] = (val[idx], units)
+
+ path = f"{prefix}*core_propulsion.{eng_name}*"
+ prob.model_options[path] = opts
diff --git a/aviary/variable_info/variable_meta_data.py b/aviary/variable_info/variable_meta_data.py
index 06b2c52fb..b0c71ccfc 100644
--- a/aviary/variable_info/variable_meta_data.py
+++ b/aviary/variable_info/variable_meta_data.py
@@ -1,13 +1,21 @@
'''
Define meta data associated with variables in the Aviary data hierarchy.
'''
+
import numpy as np
from copy import deepcopy
from pathlib import Path
from aviary.utils.develop_metadata import add_meta_data
-from aviary.variable_info.enums import EquationsOfMotion, FlapType, GASPEngineType, LegacyCode, Verbosity, ProblemType
+from aviary.variable_info.enums import (
+ EquationsOfMotion,
+ FlapType,
+ GASPEngineType,
+ LegacyCode,
+ Verbosity,
+ ProblemType,
+)
from aviary.variable_info.variables import Aircraft, Dynamic, Mission, Settings
# ---------------------------
@@ -51,13 +59,15 @@
# - see also: Aircraft.AirConditioning.MASS_SCALER
Aircraft.AirConditioning.MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['WTS.WSP(23, 2)', '~WEIGHT.WAC', '~WTSTAT.WSP(23, 2)'],
- "FLOPS": None,
- "LEAPS1": ['(WeightABC)self._air_conditioning_group_weight',
- 'aircraft.outputs.L0_weights_summary.air_conditioning_group_weight',
- ]
- },
+ historical_name={
+ "GASP": None,
+ # ['WTS.WSP(23, 2)', '~WEIGHT.WAC', '~WTSTAT.WSP(23, 2)'],
+ "FLOPS": None,
+ "LEAPS1": [
+ '(WeightABC)self._air_conditioning_group_weight',
+ 'aircraft.outputs.L0_weights_summary.air_conditioning_group_weight',
+ ],
+ },
units='lbm',
desc='air conditioning system mass',
default_value=None,
@@ -66,10 +76,7 @@
add_meta_data(
Aircraft.AirConditioning.MASS_COEFFICIENT,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.CW(6)',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.CW(6)', "FLOPS": None, "LEAPS1": None},
units='unitless',
desc='mass trend coefficient of air conditioning',
default_value=1.0,
@@ -78,11 +85,12 @@
add_meta_data(
Aircraft.AirConditioning.MASS_SCALER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['&DEFINE.WTIN.WAC', 'MISWT.WAC', 'MISWT.OAC'],
- "FLOPS": 'WTIN.WAC',
- "LEAPS1": 'aircraft.inputs.L0_overrides.air_conditioning_group_weight'
- },
+ historical_name={
+ "GASP": None,
+ # ['&DEFINE.WTIN.WAC', 'MISWT.WAC', 'MISWT.OAC'],
+ "FLOPS": 'WTIN.WAC',
+ "LEAPS1": 'aircraft.inputs.L0_overrides.air_conditioning_group_weight',
+ },
units='unitless',
desc='air conditioning system mass scaler',
default_value=1.0,
@@ -103,13 +111,15 @@
# - see also: Aircraft.AntiIcing.MASS_SCALER
Aircraft.AntiIcing.MASS,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.CW(7)',
- # ['WTS.WSP(24, 2)', '~WEIGHT.WAI', '~WTSTAT.WSP(24, 2)'],
- "FLOPS": None,
- "LEAPS1": ['(WeightABC)self._aux_gear_weight',
- 'aircraft.outputs.L0_weights_summary.aux_gear_weight',
- ]
- },
+ historical_name={
+ "GASP": 'INGASP.CW(7)',
+ # ['WTS.WSP(24, 2)', '~WEIGHT.WAI', '~WTSTAT.WSP(24, 2)'],
+ "FLOPS": None,
+ "LEAPS1": [
+ '(WeightABC)self._aux_gear_weight',
+ 'aircraft.outputs.L0_weights_summary.aux_gear_weight',
+ ],
+ },
units='lbm',
desc='mass of anti-icing system (auxiliary gear)',
default_value=None,
@@ -118,11 +128,12 @@
add_meta_data(
Aircraft.AntiIcing.MASS_SCALER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['&DEFINE.WTIN.WAI', 'MISWT.WAI', 'MISWT.OAI'],
- "FLOPS": 'WTIN.WAI',
- "LEAPS1": 'aircraft.inputs.L0_overrides.aux_gear_weight'
- },
+ historical_name={
+ "GASP": None,
+ # ['&DEFINE.WTIN.WAI', 'MISWT.WAI', 'MISWT.OAI'],
+ "FLOPS": 'WTIN.WAI',
+ "LEAPS1": 'aircraft.inputs.L0_overrides.aux_gear_weight',
+ },
units='unitless',
desc='anti-icing system mass scaler',
default_value=1.0,
@@ -141,13 +152,15 @@
# - see also: Aircraft.APU.MASS_SCALER
Aircraft.APU.MASS,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.CW(1)',
- # ['WTS.WSP(17, 2)', '~WEIGHT.WAPU', '~WTSTAT.WSP(17, 2)'],
- "FLOPS": None,
- "LEAPS1": ['(WeightABC)self._aux_power_weight',
- 'aircraft.outputs.L0_weights_summary.aux_power_weight',
- ]
- },
+ historical_name={
+ "GASP": 'INGASP.CW(1)',
+ # ['WTS.WSP(17, 2)', '~WEIGHT.WAPU', '~WTSTAT.WSP(17, 2)'],
+ "FLOPS": None,
+ "LEAPS1": [
+ '(WeightABC)self._aux_power_weight',
+ 'aircraft.outputs.L0_weights_summary.aux_power_weight',
+ ],
+ },
units='lbm',
desc='mass of auxiliary power unit',
default_value=None,
@@ -156,11 +169,12 @@
add_meta_data(
Aircraft.APU.MASS_SCALER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['&DEFINE.WTIN.WAPU', 'MISWT.WAPU', 'MISWT.OAPU'],
- "FLOPS": 'WTIN.WAPU',
- "LEAPS1": 'aircraft.inputs.L0_overrides.aux_power_weight'
- },
+ historical_name={
+ "GASP": None,
+ # ['&DEFINE.WTIN.WAPU', 'MISWT.WAPU', 'MISWT.OAPU'],
+ "FLOPS": 'WTIN.WAPU',
+ "LEAPS1": 'aircraft.inputs.L0_overrides.aux_power_weight',
+ },
units='unitless',
desc='mass scaler for auxiliary power unit',
default_value=1.0,
@@ -179,13 +193,15 @@
# - see also: Aircraft.Avionics.MASS_SCALER
Aircraft.Avionics.MASS,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.CW(5)',
- # ['WTS.WSP(21, 2)', '~WEIGHT.WAVONC', '~WTSTAT.WSP(21, 2)'],
- "FLOPS": None,
- "LEAPS1": ['(WeightABC)self._avionics_group_weight',
- 'aircraft.outputs.L0_weights_summary.avionics_group_weight',
- ]
- },
+ historical_name={
+ "GASP": 'INGASP.CW(5)',
+ # ['WTS.WSP(21, 2)', '~WEIGHT.WAVONC', '~WTSTAT.WSP(21, 2)'],
+ "FLOPS": None,
+ "LEAPS1": [
+ '(WeightABC)self._avionics_group_weight',
+ 'aircraft.outputs.L0_weights_summary.avionics_group_weight',
+ ],
+ },
units='lbm',
desc='avionics mass',
default_value=None,
@@ -194,11 +210,12 @@
add_meta_data(
Aircraft.Avionics.MASS_SCALER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['&DEFINE.WTIN.WAVONC', 'MISWT.WAVONC', 'MISWT.OAVONC'],
- "FLOPS": 'WTIN.WAVONC',
- "LEAPS1": 'aircraft.inputs.L0_overrides.avionics_group_weight'
- },
+ historical_name={
+ "GASP": None,
+ # ['&DEFINE.WTIN.WAVONC', 'MISWT.WAVONC', 'MISWT.OAVONC'],
+ "FLOPS": 'WTIN.WAVONC',
+ "LEAPS1": 'aircraft.inputs.L0_overrides.avionics_group_weight',
+ },
units='unitless',
desc='avionics mass scaler',
default_value=1.0,
@@ -216,10 +233,11 @@
add_meta_data(
Aircraft.Battery.ADDITIONAL_MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": 'aircraft.inputs.L0_battery.weight_offset'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None,
+ "LEAPS1": 'aircraft.inputs.L0_battery.weight_offset',
+ },
units='lbm',
desc='mass of non energy-storing parts of the battery',
default_value=0.0,
@@ -228,13 +246,14 @@
add_meta_data(
Aircraft.Battery.DISCHARGE_LIMIT,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.SOCMIN',
- "FLOPS": None,
- "LEAPS1": 'aircraft.inputs.L0_battery.depth_of_discharge'
- },
+ historical_name={
+ "GASP": 'INGASP.SOCMIN',
+ "FLOPS": None,
+ "LEAPS1": 'aircraft.inputs.L0_battery.depth_of_discharge',
+ },
units='unitless',
desc='default constraint on how far the battery can discharge, as a proportion of '
- 'total energy capacity',
+ 'total energy capacity',
default_value=0.2,
)
@@ -250,21 +269,19 @@
add_meta_data(
Aircraft.Battery.ENERGY_CAPACITY,
meta_data=_MetaData,
- historical_name={"GASP": 'EBATTAVL',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'EBATTAVL', "FLOPS": None, "LEAPS1": None},
units='kJ',
- desc="total energy the battery can store"
+ desc="total energy the battery can store",
)
add_meta_data(
Aircraft.Battery.MASS,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.WBATTIN',
- "FLOPS": None,
- "LEAPS1": 'aircraft.inputs.L0_battery.weight'
- },
+ historical_name={
+ "GASP": 'INGASP.WBATTIN',
+ "FLOPS": None,
+ "LEAPS1": 'aircraft.inputs.L0_battery.weight',
+ },
units='lbm',
desc='total mass of the battery',
default_value=0.0,
@@ -273,10 +290,11 @@
add_meta_data(
Aircraft.Battery.PACK_ENERGY_DENSITY,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.ENGYDEN',
- "FLOPS": None,
- "LEAPS1": 'aircraft.inputs.L0_battery.energy_density'
- },
+ historical_name={
+ "GASP": 'INGASP.ENGYDEN',
+ "FLOPS": None,
+ "LEAPS1": 'aircraft.inputs.L0_battery.energy_density',
+ },
units='kW*h/kg',
desc='specific energy density of the battery pack',
default_value=1.0,
@@ -286,10 +304,7 @@
add_meta_data(
Aircraft.Battery.PACK_MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='lbm',
desc='mass of the energy-storing components of the battery',
default_value=0.0,
@@ -298,10 +313,7 @@
add_meta_data(
Aircraft.Battery.PACK_VOLUMETRIC_DENSITY,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='kW*h/L',
desc='volumetric density of the battery pack',
default_value=0,
@@ -310,10 +322,7 @@
add_meta_data(
Aircraft.Battery.VOLUME,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='ft*3',
desc='total volume of the battery pack',
default_value=0.0,
@@ -333,13 +342,15 @@
add_meta_data(
Aircraft.BWB.CABIN_AREA,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['&DEFINE.FUSEIN.ACABIN', 'WDEF.ACABIN'],
- "FLOPS": 'FUSEIN.ACABIN',
- "LEAPS1": ['aircraft.inputs.L0_blended_wing_body_design.cabin_area',
- 'aircraft.cached.L0_blended_wing_body_design.cabin_area',
- ]
- },
+ historical_name={
+ "GASP": None,
+ # ['&DEFINE.FUSEIN.ACABIN', 'WDEF.ACABIN'],
+ "FLOPS": 'FUSEIN.ACABIN',
+ "LEAPS1": [
+ 'aircraft.inputs.L0_blended_wing_body_design.cabin_area',
+ 'aircraft.cached.L0_blended_wing_body_design.cabin_area',
+ ],
+ },
units='ft**2',
desc='fixed area of passenger cabin for blended wing body transports',
default_value=0.0,
@@ -348,12 +359,14 @@
add_meta_data(
Aircraft.BWB.NUM_BAYS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'FUSEIN.NBAY', # ['&DEFINE.FUSEIN.NBAY', 'FUSDTA.NBAY'],
- "LEAPS1": ['aircraft.inputs.L0_blended_wing_body_design.bay_count',
- 'aircraft.cached.L0_blended_wing_body_design.bay_count',
- ]
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'FUSEIN.NBAY', # ['&DEFINE.FUSEIN.NBAY', 'FUSDTA.NBAY'],
+ "LEAPS1": [
+ 'aircraft.inputs.L0_blended_wing_body_design.bay_count',
+ 'aircraft.cached.L0_blended_wing_body_design.bay_count',
+ ],
+ },
units='unitless',
desc='fixed number of bays',
types=int,
@@ -364,11 +377,12 @@
add_meta_data(
Aircraft.BWB.PASSENGER_LEADING_EDGE_SWEEP,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['&DEFINE.FUSEIN.SWPLE', 'FUSDTA.SWPLE'],
- "FLOPS": 'FUSEIN.SWPLE',
- "LEAPS1": 'aircraft.inputs.L0_blended_wing_body_design.passenger_leading_edge_sweep'
- },
+ historical_name={
+ "GASP": None,
+ # ['&DEFINE.FUSEIN.SWPLE', 'FUSDTA.SWPLE'],
+ "FLOPS": 'FUSEIN.SWPLE',
+ "LEAPS1": 'aircraft.inputs.L0_blended_wing_body_design.passenger_leading_edge_sweep',
+ },
units='deg',
desc='sweep angle of the leading edge of the passenger cabin',
default_value=45.0,
@@ -384,10 +398,11 @@
add_meta_data(
Aircraft.Canard.AREA,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.SCAN', # ['&DEFINE.WTIN.SCAN', 'EDETIN.SCAN'],
- "LEAPS1": 'aircraft.inputs.L0_canard.area'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.SCAN', # ['&DEFINE.WTIN.SCAN', 'EDETIN.SCAN'],
+ "LEAPS1": 'aircraft.inputs.L0_canard.area',
+ },
units='ft**2',
desc='canard theoretical area',
default_value=0.0,
@@ -396,10 +411,11 @@
add_meta_data(
Aircraft.Canard.ASPECT_RATIO,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.ARCAN', # ['&DEFINE.WTIN.ARCAN', 'EDETIN.ARCAN'],
- "LEAPS1": 'aircraft.inputs.L0_canard.aspect_ratio'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.ARCAN', # ['&DEFINE.WTIN.ARCAN', 'EDETIN.ARCAN'],
+ "LEAPS1": 'aircraft.inputs.L0_canard.aspect_ratio',
+ },
units='unitless',
desc='canard theoretical aspect ratio',
default_value=None,
@@ -408,36 +424,41 @@
add_meta_data(
Aircraft.Canard.CHARACTERISTIC_LENGTH,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None, # 'MISSA.EL[-1]',
- "LEAPS1": ['aircraft.outputs.L0_aerodynamics.mission_component_char_len_table[-1]',
- 'aircraft.cached.L0_aerodynamics.mission_component_char_len_table[-1]',
- ]
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # 'MISSA.EL[-1]',
+ "LEAPS1": [
+ 'aircraft.outputs.L0_aerodynamics.mission_component_char_len_table[-1]',
+ 'aircraft.cached.L0_aerodynamics.mission_component_char_len_table[-1]',
+ ],
+ },
units='ft',
- desc='Reynolds characteristic length for the canard'
+ desc='Reynolds characteristic length for the canard',
)
add_meta_data(
Aircraft.Canard.FINENESS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None, # 'MISSA.FR[-1]',
- "LEAPS1": ['aircraft.outputs.L0_aerodynamics.mission_fineness_ratio_table[-1]',
- 'aircraft.cached.L0_aerodynamics.mission_fineness_ratio_table[-1]',
- ]
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # 'MISSA.FR[-1]',
+ "LEAPS1": [
+ 'aircraft.outputs.L0_aerodynamics.mission_fineness_ratio_table[-1]',
+ 'aircraft.cached.L0_aerodynamics.mission_fineness_ratio_table[-1]',
+ ],
+ },
units='unitless',
- desc='canard fineness ratio'
+ desc='canard fineness ratio',
)
add_meta_data(
Aircraft.Canard.LAMINAR_FLOW_LOWER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'AERIN.TRLC', # ['&DEFINE.AERIN.TRLC', 'XLAM.TRLC', ],
- "LEAPS1": 'aircraft.inputs.L0_aerodynamics.canard_percent_laminar_flow_lower_surface'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'AERIN.TRLC', # ['&DEFINE.AERIN.TRLC', 'XLAM.TRLC', ],
+ "LEAPS1": 'aircraft.inputs.L0_aerodynamics.canard_percent_laminar_flow_lower_surface',
+ },
units='unitless',
desc='define percent laminar flow for canard lower surface',
default_value=0.0,
@@ -446,10 +467,11 @@
add_meta_data(
Aircraft.Canard.LAMINAR_FLOW_UPPER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'AERIN.TRUC', # ['&DEFINE.AERIN.TRUC', 'XLAM.TRUC', ],
- "LEAPS1": 'aircraft.inputs.L0_aerodynamics.canard_percent_laminar_flow_upper_surface'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'AERIN.TRUC', # ['&DEFINE.AERIN.TRUC', 'XLAM.TRUC', ],
+ "LEAPS1": 'aircraft.inputs.L0_aerodynamics.canard_percent_laminar_flow_upper_surface',
+ },
units='unitless',
desc='define percent laminar flow for canard upper surface',
default_value=0.0,
@@ -460,13 +482,15 @@
# - see also: Aircraft.Canard.MASS_SCALER
Aircraft.Canard.MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['WTS.WSP(5, 2)', '~WEIGHT.WCAN', '~WTSTAT.WSP(5, 2)', '~INERT.WCAN'],
- "FLOPS": None,
- "LEAPS1": ['(WeightABC)self._canard_weight',
- 'aircraft.outputs.L0_weights_summary.canard_weight',
- ]
- },
+ historical_name={
+ "GASP": None,
+ # ['WTS.WSP(5, 2)', '~WEIGHT.WCAN', '~WTSTAT.WSP(5, 2)', '~INERT.WCAN'],
+ "FLOPS": None,
+ "LEAPS1": [
+ '(WeightABC)self._canard_weight',
+ 'aircraft.outputs.L0_weights_summary.canard_weight',
+ ],
+ },
units='lbm',
desc='mass of canards',
default_value=None,
@@ -475,10 +499,11 @@
add_meta_data(
Aircraft.Canard.MASS_SCALER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.FRCAN', # ['&DEFINE.WTIN.FRCAN', 'WTS.FRCAN', ],
- "LEAPS1": 'aircraft.inputs.L0_overrides.canard_weight'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.FRCAN', # ['&DEFINE.WTIN.FRCAN', 'WTS.FRCAN', ],
+ "LEAPS1": 'aircraft.inputs.L0_overrides.canard_weight',
+ },
units='unitless',
desc='mass scaler for canard structure',
default_value=1.0,
@@ -487,10 +512,11 @@
add_meta_data(
Aircraft.Canard.TAPER_RATIO,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.TRCAN', # ['&DEFINE.WTIN.TRCAN', 'WTS.TRCAN'],
- "LEAPS1": 'aircraft.inputs.L0_canard.taper_ratio'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.TRCAN', # ['&DEFINE.WTIN.TRCAN', 'WTS.TRCAN'],
+ "LEAPS1": 'aircraft.inputs.L0_canard.taper_ratio',
+ },
units='unitless',
desc='canard theoretical taper ratio',
default_value=None,
@@ -499,10 +525,11 @@
add_meta_data(
Aircraft.Canard.THICKNESS_TO_CHORD,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.TCCAN', # ['&DEFINE.WTIN.TCCAN', 'EDETIN.TCCAN'],
- "LEAPS1": 'aircraft.inputs.L0_canard.thickness_to_chord_ratio'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.TCCAN', # ['&DEFINE.WTIN.TCCAN', 'EDETIN.TCCAN'],
+ "LEAPS1": 'aircraft.inputs.L0_canard.thickness_to_chord_ratio',
+ },
units='unitless',
desc='canard thickness-chord ratio',
default_value=0.0,
@@ -513,15 +540,17 @@
# - see also: Aircraft.Canard.WETTED_AREA_SCALER
Aircraft.Canard.WETTED_AREA,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None, # ['ACTWET.SWTCN', 'MISSA.SWET[-1]'],
- "LEAPS1": ['aircraft.outputs.L0_aerodynamics.canard_wetted_area',
- 'aircraft.outputs.L0_aerodynamics'
- '.mission_component_wetted_area_table[-1]',
- 'aircraft.cached.L0_aerodynamics'
- '.mission_component_wetted_area_table[-1]',
- ]
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # ['ACTWET.SWTCN', 'MISSA.SWET[-1]'],
+ "LEAPS1": [
+ 'aircraft.outputs.L0_aerodynamics.canard_wetted_area',
+ 'aircraft.outputs.L0_aerodynamics'
+ '.mission_component_wetted_area_table[-1]',
+ 'aircraft.cached.L0_aerodynamics'
+ '.mission_component_wetted_area_table[-1]',
+ ],
+ },
units='ft**2',
desc='canard wetted area',
default_value=None,
@@ -530,10 +559,11 @@
add_meta_data(
Aircraft.Canard.WETTED_AREA_SCALER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'AERIN.SWETC', # ['&DEFINE.AERIN.SWETC', 'AWETO.SWETC', ],
- "LEAPS1": 'aircraft.inputs.L0_aerodynamics.canard_wetted_area'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'AERIN.SWETC', # ['&DEFINE.AERIN.SWETC', 'AWETO.SWETC', ],
+ "LEAPS1": 'aircraft.inputs.L0_aerodynamics.canard_wetted_area',
+ },
units='unitless',
desc='canard wetted area scaler',
default_value=1.0,
@@ -550,10 +580,7 @@
add_meta_data(
Aircraft.Controls.COCKPIT_CONTROL_MASS_SCALER,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.CK15',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.CK15', "FLOPS": None, "LEAPS1": None},
units="unitless",
desc='technology factor on cockpit controls mass',
default_value=1.0,
@@ -562,10 +589,7 @@
add_meta_data(
Aircraft.Controls.CONTROL_MASS_INCREMENT,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.DELWFC',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.DELWFC', "FLOPS": None, "LEAPS1": None},
units='lbm',
desc='incremental flight controls mass',
default_value=0,
@@ -574,10 +598,7 @@
add_meta_data(
Aircraft.Controls.STABILITY_AUGMENTATION_SYSTEM_MASS,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.SKSAS',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.SKSAS', "FLOPS": None, "LEAPS1": None},
units='lbm',
desc='mass of stability augmentation system',
default_value=0,
@@ -586,10 +607,7 @@
add_meta_data(
Aircraft.Controls.STABILITY_AUGMENTATION_SYSTEM_MASS_SCALER,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.CK19',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.CK19', "FLOPS": None, "LEAPS1": None},
units="unitless",
desc='technology factor on stability augmentation system mass',
default_value=1,
@@ -598,10 +616,7 @@
add_meta_data(
Aircraft.Controls.TOTAL_MASS,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.WFC',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.WFC', "FLOPS": None, "LEAPS1": None},
units='lbm',
desc='total mass of cockpit controls, fixed wing controls, and SAS',
)
@@ -619,24 +634,27 @@
add_meta_data(
Aircraft.CrewPayload.BAGGAGE_MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['WTS.WSP(35,2)', '~WEIGHT.WPBAG', '~WTSTAT.WSP(35,2)', '~INERT.WPBAG'],
- "FLOPS": None,
- "LEAPS1": ['(WeightABC)self._passenger_bag_weight',
- 'aircraft.outputs.L0_weights_summary.passenger_bag_weight',
- ]
- },
+ historical_name={
+ "GASP": None,
+ # ['WTS.WSP(35,2)', '~WEIGHT.WPBAG', '~WTSTAT.WSP(35,2)', '~INERT.WPBAG'],
+ "FLOPS": None,
+ "LEAPS1": [
+ '(WeightABC)self._passenger_bag_weight',
+ 'aircraft.outputs.L0_weights_summary.passenger_bag_weight',
+ ],
+ },
units='lbm',
- desc='mass of passenger baggage'
+ desc='mass of passenger baggage',
)
add_meta_data(
Aircraft.CrewPayload.BAGGAGE_MASS_PER_PASSENGER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.BPP', # ['&DEFINE.WTIN.BPP', 'WPAB.BPP'],
- "LEAPS1": 'aircraft.inputs.L0_crew_and_payload.baggage_weight_per_passenger'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.BPP', # ['&DEFINE.WTIN.BPP', 'WPAB.BPP'],
+ "LEAPS1": 'aircraft.inputs.L0_crew_and_payload.baggage_weight_per_passenger',
+ },
units='lbm',
desc='baggage mass per passenger',
option=True,
@@ -648,13 +666,15 @@
# - see also: Aircraft.CrewPayload.CARGO_CONTAINER_MASS_SCALER
Aircraft.CrewPayload.CARGO_CONTAINER_MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['WTS.WSP(32,2)', '~WEIGHT.WCON', '~WTSTAT.WSP(32,2)', '~INERT.WCON',],
- "FLOPS": None,
- "LEAPS1": ['(WeightABC)self._cargo_containers_weight',
- 'aircraft.outputs.L0_weights_summary.cargo_containers_weight',
- ]
- },
+ historical_name={
+ "GASP": None,
+ # ['WTS.WSP(32,2)', '~WEIGHT.WCON', '~WTSTAT.WSP(32,2)', '~INERT.WCON',],
+ "FLOPS": None,
+ "LEAPS1": [
+ '(WeightABC)self._cargo_containers_weight',
+ 'aircraft.outputs.L0_weights_summary.cargo_containers_weight',
+ ],
+ },
units='lbm',
desc='mass of cargo containers',
default_value=None,
@@ -663,11 +683,12 @@
add_meta_data(
Aircraft.CrewPayload.CARGO_CONTAINER_MASS_SCALER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['&DEFINE.WTIN.WCON', 'MISWT.WCON', 'MISWT.OCON'],
- "FLOPS": 'WTIN.WCON',
- "LEAPS1": 'aircraft.inputs.L0_overrides.cargo_containers_weight'
- },
+ historical_name={
+ "GASP": None,
+ # ['&DEFINE.WTIN.WCON', 'MISWT.WCON', 'MISWT.OCON'],
+ "FLOPS": 'WTIN.WCON',
+ "LEAPS1": 'aircraft.inputs.L0_overrides.cargo_containers_weight',
+ },
units='unitless',
desc='Scaler for mass of cargo containers',
default_value=1.0,
@@ -676,41 +697,110 @@
add_meta_data(
Aircraft.CrewPayload.CARGO_MASS,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.WCARGO',
- # ['WTS.WSP(36,2)', '~WEIGHT.WCARGO', '~WTSTAT.WSP(36,2)', '~INERT.WCARGO',],
- "FLOPS": None,
- "LEAPS1": ['(WeightABC)self._cargo_weight',
- 'aircraft.outputs.L0_weights_summary.cargo_weight',
- ]
- },
+ historical_name={
+ "GASP": 'INGASP.WCARGO',
+ # ['WTS.WSP(36,2)', '~WEIGHT.WCARGO', '~WTSTAT.WSP(36,2)', '~INERT.WCARGO',],
+ "FLOPS": None,
+ "LEAPS1": [
+ '(WeightABC)self._cargo_weight',
+ 'aircraft.outputs.L0_weights_summary.cargo_weight',
+ ],
+ },
units='lbm',
- desc='total mass of cargo'
+ desc='total mass of cargo',
)
add_meta_data(
Aircraft.CrewPayload.CATERING_ITEMS_MASS_PER_PASSENGER,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.CW(12)',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.CW(12)', "FLOPS": None, "LEAPS1": None},
units='lbm',
desc='mass of catering items per passenger',
default_value=0.7,
)
+# ___ _
+# | \ ___ ___ (_) __ _ _ _
+# | |) | / -_) (_-< | | / _` | | ' \
+# |___/ \___| /__/ |_| \__, | |_||_|
+# ====================== |___/ ======
+
+add_meta_data(
+ Aircraft.CrewPayload.Design.NUM_BUSINESS_CLASS,
+ meta_data=_MetaData,
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.NPB', # ['&DEFINE.WTIN.NPB', 'WTS.NPB'],
+ "LEAPS1": 'aircraft.inputs.L0_crew_and_payload.business_class_count',
+ },
+ units='unitless',
+ desc='number of business class passengers that the aircraft is designed to accommodate',
+ types=int,
+ option=True,
+ default_value=0, # AviaryValues.get_val(Aircraft.CrewPayload.NUM_BUSINESS_CLASS),
+)
+
+add_meta_data(
+ Aircraft.CrewPayload.Design.NUM_FIRST_CLASS,
+ meta_data=_MetaData,
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.NPF', # ['&DEFINE.WTIN.NPF', 'WTS.NPF'],
+ "LEAPS1": 'aircraft.inputs.L0_crew_and_payload.first_class_count',
+ },
+ units='unitless',
+ desc='number of first class passengers that the aircraft is designed to accommodate',
+ types=int,
+ option=True,
+ default_value=0,
+)
+
+add_meta_data(
+ Aircraft.CrewPayload.Design.NUM_PASSENGERS,
+ meta_data=_MetaData,
+ historical_name={
+ "GASP": 'INGASP.PAX', # number of passenger seats excluding crew
+ "FLOPS": None, # ['CSTDAT.NSV', '~WEIGHT.NPASS', '~WTSTAT.NPASS'],
+ "LEAPS1": 'aircraft.outputs.L0_crew_and_payload.passenger_count',
+ },
+ units='unitless',
+ desc='total number of passengers that the aircraft is designed to accommodate',
+ option=True,
+ default_value=0,
+ types=int,
+)
+
+
+# TODO rename to economy?
+add_meta_data(
+ Aircraft.CrewPayload.Design.NUM_TOURIST_CLASS,
+ meta_data=_MetaData,
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.NPT', # ['&DEFINE.WTIN.NPT', 'WTS.NPT'],
+ "LEAPS1": 'aircraft.inputs.L0_crew_and_payload.tourist_class_count',
+ },
+ units='unitless',
+ desc='number of tourist class passengers that the aircraft is designed to accommodate',
+ types=int,
+ option=True,
+ default_value=0,
+)
+
add_meta_data(
# Note user override
# - see also: Aircraft.CrewPayload.FLIGHT_CREW_MASS_SCALER
Aircraft.CrewPayload.FLIGHT_CREW_MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['WTS.WSP(27, 2)', '~WEIGHT.WFLCRB', '~WTSTAT.WSP(27, 2)', '~INERT.WFLCRB'],
- "FLOPS": None,
- "LEAPS1": ['(WeightABC)self._flight_crew_and_bag_weight',
- 'aircraft.outputs.L0_weights_summary.flight_crew_and_bag_weight',
- ]
- },
+ historical_name={
+ "GASP": None,
+ # ['WTS.WSP(27, 2)', '~WEIGHT.WFLCRB', '~WTSTAT.WSP(27, 2)', '~INERT.WFLCRB'],
+ "FLOPS": None,
+ "LEAPS1": [
+ '(WeightABC)self._flight_crew_and_bag_weight',
+ 'aircraft.outputs.L0_weights_summary.flight_crew_and_bag_weight',
+ ],
+ },
units='lbm',
desc='total mass of the flight crew and their baggage',
default_value=None,
@@ -719,11 +809,12 @@
add_meta_data(
Aircraft.CrewPayload.FLIGHT_CREW_MASS_SCALER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['&DEFINE.WTIN.WFLCRB', 'MISWT.WFLCRB', 'MISWT.OFLCRB'],
- "FLOPS": 'WTIN.WFLCRB',
- "LEAPS1": 'aircraft.inputs.L0_overrides.flight_crew_and_bag_weight'
- },
+ historical_name={
+ "GASP": None,
+ # ['&DEFINE.WTIN.WFLCRB', 'MISWT.WFLCRB', 'MISWT.OFLCRB'],
+ "FLOPS": 'WTIN.WFLCRB',
+ "LEAPS1": 'aircraft.inputs.L0_overrides.flight_crew_and_bag_weight',
+ },
units='unitless',
desc='scaler for total mass of the flight crew and their baggage',
default_value=1.0,
@@ -732,10 +823,11 @@
add_meta_data(
Aircraft.CrewPayload.MASS_PER_PASSENGER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.WPPASS', # ['&DEFINE.WTIN.WPPASS', 'WPAB.WPPASS'],
- "LEAPS1": 'aircraft.inputs.L0_crew_and_payload.weight_per_passenger'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.WPPASS', # ['&DEFINE.WTIN.WPPASS', 'WPAB.WPPASS'],
+ "LEAPS1": 'aircraft.inputs.L0_crew_and_payload.weight_per_passenger',
+ },
units='lbm',
desc='mass per passenger',
option=True,
@@ -745,10 +837,11 @@
add_meta_data(
Aircraft.CrewPayload.MISC_CARGO,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.CARGOF', # ['&DEFINE.WTIN.CARGOF', 'WTS.CARGOF'],
- "LEAPS1": 'aircraft.inputs.L0_crew_and_payload.misc_cargo'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.CARGOF', # ['&DEFINE.WTIN.CARGOF', 'WTS.CARGOF'],
+ "LEAPS1": 'aircraft.inputs.L0_crew_and_payload.misc_cargo',
+ },
units='lbm',
desc='cargo (other than passenger baggage) carried in fuselage',
default_value=0.0,
@@ -759,13 +852,15 @@
# - see also: Aircraft.CrewPayload.NON_FLIGHT_CREW_MASS_SCALER
Aircraft.CrewPayload.NON_FLIGHT_CREW_MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['WTS.WSP(28,2)', '~WEIGHT.WSTUAB', '~WTSTAT.WSP(28, 2)', '~INERT.WSTUAB'],
- "FLOPS": None,
- "LEAPS1": ['(WeightABC)self._cabin_crew_and_bag_weight',
- 'aircraft.outputs.L0_weights_summary.cabin_crew_and_bag_weight',
- ]
- },
+ historical_name={
+ "GASP": None,
+ # ['WTS.WSP(28,2)', '~WEIGHT.WSTUAB', '~WTSTAT.WSP(28, 2)', '~INERT.WSTUAB'],
+ "FLOPS": None,
+ "LEAPS1": [
+ '(WeightABC)self._cabin_crew_and_bag_weight',
+ 'aircraft.outputs.L0_weights_summary.cabin_crew_and_bag_weight',
+ ],
+ },
units='lbm',
desc='total mass of the non-flight crew and their baggage',
default_value=None,
@@ -774,11 +869,12 @@
add_meta_data(
Aircraft.CrewPayload.NON_FLIGHT_CREW_MASS_SCALER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['&DEFINE.WTIN.WSTUAB', 'MISWT.WSTUAB', 'MISWT.OSTUAB'],
- "FLOPS": 'WTIN.WSTUAB',
- "LEAPS1": 'aircraft.inputs.L0_overrides.cabin_crew_and_bag_weight'
- },
+ historical_name={
+ "GASP": None,
+ # ['&DEFINE.WTIN.WSTUAB', 'MISWT.WSTUAB', 'MISWT.OSTUAB'],
+ "FLOPS": 'WTIN.WSTUAB',
+ "LEAPS1": 'aircraft.inputs.L0_overrides.cabin_crew_and_bag_weight',
+ },
units='unitless',
desc='scaler for total mass of the non-flight crew and their baggage',
default_value=1.0,
@@ -787,10 +883,11 @@
add_meta_data(
Aircraft.CrewPayload.NUM_BUSINESS_CLASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.NPB', # ['&DEFINE.WTIN.NPB', 'WTS.NPB'],
- "LEAPS1": 'aircraft.inputs.L0_crew_and_payload.business_class_count'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # ['&DEFINE.WTIN.NPB', 'WTS.NPB'],
+ "LEAPS1": None, # 'aircraft.inputs.L0_crew_and_payload.business_class_count',
+ },
units='unitless',
desc='number of business class passengers',
types=int,
@@ -801,10 +898,11 @@
add_meta_data(
Aircraft.CrewPayload.NUM_FIRST_CLASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.NPF', # ['&DEFINE.WTIN.NPF', 'WTS.NPF'],
- "LEAPS1": 'aircraft.inputs.L0_crew_and_payload.first_class_count'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # ['&DEFINE.WTIN.NPF', 'WTS.NPF'],
+ "LEAPS1": None, # 'aircraft.inputs.L0_crew_and_payload.first_class_count',
+ },
units='unitless',
desc='number of first class passengers',
types=int,
@@ -815,12 +913,14 @@
add_meta_data(
Aircraft.CrewPayload.NUM_FLIGHT_ATTENDANTS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.NSTU', # ['&DEFINE.WTIN.NSTU', 'WTS.NSTU'],
- "LEAPS1": ['aircraft.inputs.L0_crew_and_payload.flight_attendants_count',
- 'aircraft.cached.L0_crew_and_payload.flight_attendants_count',
- ]
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.NSTU', # ['&DEFINE.WTIN.NSTU', 'WTS.NSTU'],
+ "LEAPS1": [
+ 'aircraft.inputs.L0_crew_and_payload.flight_attendants_count',
+ 'aircraft.cached.L0_crew_and_payload.flight_attendants_count',
+ ],
+ },
units='unitless',
desc='number of flight attendants',
types=int,
@@ -831,13 +931,15 @@
add_meta_data(
Aircraft.CrewPayload.NUM_FLIGHT_CREW,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['&DEFINE.WTIN.NFLCR', 'WTS.NFLCR', '~WTSTAT.NFLCR'],
- "FLOPS": 'WTIN.NFLCR',
- "LEAPS1": ['aircraft.inputs.L0_crew_and_payload.flight_crew_count',
- 'aircraft.cached.L0_crew_and_payload.flight_crew_count',
- ]
- },
+ historical_name={
+ "GASP": None,
+ # ['&DEFINE.WTIN.NFLCR', 'WTS.NFLCR', '~WTSTAT.NFLCR'],
+ "FLOPS": 'WTIN.NFLCR',
+ "LEAPS1": [
+ 'aircraft.inputs.L0_crew_and_payload.flight_crew_count',
+ 'aircraft.cached.L0_crew_and_payload.flight_crew_count',
+ ],
+ },
units='unitless',
desc='number of flight crew',
types=int,
@@ -848,12 +950,14 @@
add_meta_data(
Aircraft.CrewPayload.NUM_GALLEY_CREW,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.NGALC', # ['&DEFINE.WTIN.NGALC', 'WTS.NGALC'],
- "LEAPS1": ['aircraft.inputs.L0_crew_and_payload.galley_crew_count',
- 'aircraft.cached.L0_crew_and_payload.galley_crew_count',
- ]
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.NGALC', # ['&DEFINE.WTIN.NGALC', 'WTS.NGALC'],
+ "LEAPS1": [
+ 'aircraft.inputs.L0_crew_and_payload.galley_crew_count',
+ 'aircraft.cached.L0_crew_and_payload.galley_crew_count',
+ ],
+ },
units='unitless',
desc='number of galley crew',
types=int,
@@ -864,10 +968,11 @@
add_meta_data(
Aircraft.CrewPayload.NUM_PASSENGERS,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.PAX',
- "FLOPS": None, # ['CSTDAT.NSV', '~WEIGHT.NPASS', '~WTSTAT.NPASS'],
- "LEAPS1": 'aircraft.outputs.L0_crew_and_payload.passenger_count'
- },
+ historical_name={
+ "GASP": None, # 'INGASP.PAX' here we assume previous studies were changing Design.num_pax not as-flown
+ "FLOPS": None, # ['CSTDAT.NSV', '~WEIGHT.NPASS', '~WTSTAT.NPASS'],
+ "LEAPS1": None, # 'aircraft.outputs.L0_crew_and_payload.passenger_count',
+ },
units='unitless',
desc='total number of passengers',
option=True,
@@ -879,10 +984,11 @@
add_meta_data(
Aircraft.CrewPayload.NUM_TOURIST_CLASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.NPT', # ['&DEFINE.WTIN.NPT', 'WTS.NPT'],
- "LEAPS1": 'aircraft.inputs.L0_crew_and_payload.tourist_class_count'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # ['&DEFINE.WTIN.NPT', 'WTS.NPT'],
+ "LEAPS1": None, # 'aircraft.inputs.L0_crew_and_payload.tourist_class_count',
+ },
units='unitless',
desc='number of tourist class passengers',
types=int,
@@ -893,13 +999,15 @@
add_meta_data(
Aircraft.CrewPayload.PASSENGER_MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['WTS.WSP(34, 2)', '~WEIGHT.WPASS', '~WTSTAT.WSP(34, 2)', '~INERT.WPASS'],
- "FLOPS": None,
- "LEAPS1": ['(WeightABC)self._passenger_weight',
- 'aircraft.outputs.L0_weights_summary.passenger_weight'
- ]
- },
+ historical_name={
+ "GASP": None,
+ # ['WTS.WSP(34, 2)', '~WEIGHT.WPASS', '~WTSTAT.WSP(34, 2)', '~INERT.WPASS'],
+ "FLOPS": None,
+ "LEAPS1": [
+ '(WeightABC)self._passenger_weight',
+ 'aircraft.outputs.L0_weights_summary.passenger_weight',
+ ],
+ },
units='lbm',
desc='TBD: total mass of all passengers without their baggage',
)
@@ -907,10 +1015,7 @@
add_meta_data(
Aircraft.CrewPayload.PASSENGER_MASS_WITH_BAGS,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.UWPAX',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.UWPAX', "FLOPS": None, "LEAPS1": None},
units='lbm',
desc='total mass of one passenger and their bags',
option=True,
@@ -920,13 +1025,11 @@
add_meta_data(
Aircraft.CrewPayload.PASSENGER_PAYLOAD_MASS,
meta_data=_MetaData,
- # note: this GASP variable does not include cargo, but it does include passenger baggage
- historical_name={"GASP": 'INGASP.WPL',
- "FLOPS": None,
- "LEAPS1": None
- },
+ # note: this GASP variable does not include cargo, but it does include
+ # passenger baggage
+ historical_name={"GASP": 'INGASP.WPL', "FLOPS": None, "LEAPS1": None},
units='lbm',
- desc='mass of passenger payload, including passengers, passenger baggage'
+ desc='mass of passenger payload, including passengers, passenger baggage',
)
add_meta_data(
@@ -934,13 +1037,15 @@
# - see also: Aircraft.CrewPayload.PASSENGER_SERVICE_MASS_SCALER
Aircraft.CrewPayload.PASSENGER_SERVICE_MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['WTS.WSP(31, 2)', '~WEIGHT.WSRV', '~WTSTAT.WSP(31, 2)', '~INERT.WSRV'],
- "FLOPS": None,
- "LEAPS1": ['(WeightABC)self._passenger_service_weight',
- 'aircraft.outputs.L0_weights_summary.passenger_service_weight',
- ]
- },
+ historical_name={
+ "GASP": None,
+ # ['WTS.WSP(31, 2)', '~WEIGHT.WSRV', '~WTSTAT.WSP(31, 2)', '~INERT.WSRV'],
+ "FLOPS": None,
+ "LEAPS1": [
+ '(WeightABC)self._passenger_service_weight',
+ 'aircraft.outputs.L0_weights_summary.passenger_service_weight',
+ ],
+ },
units='lbm',
desc='mass of passenger service equipment',
default_value=None,
@@ -949,10 +1054,7 @@
add_meta_data(
Aircraft.CrewPayload.PASSENGER_SERVICE_MASS_PER_PASSENGER,
meta_data=_MetaData,
- historical_name={"GASP": "INGASP.CW(9)",
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": "INGASP.CW(9)", "FLOPS": None, "LEAPS1": None},
default_value=2.0,
units="lbm",
desc='mass of passenger service items mass per passenger',
@@ -961,11 +1063,12 @@
add_meta_data(
Aircraft.CrewPayload.PASSENGER_SERVICE_MASS_SCALER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['&DEFINE.WTIN.WSRV', 'MISWT.WSRV', 'MISWT.OSRV'],
- "FLOPS": 'WTIN.WSRV',
- "LEAPS1": 'aircraft.inputs.L0_overrides.passenger_service_weight'
- },
+ historical_name={
+ "GASP": None,
+ # ['&DEFINE.WTIN.WSRV', 'MISWT.WSRV', 'MISWT.OSRV'],
+ "FLOPS": 'WTIN.WSRV',
+ "LEAPS1": 'aircraft.inputs.L0_overrides.passenger_service_weight',
+ },
units='unitless',
desc='scaler for mass of passenger service equipment',
default_value=1.0,
@@ -974,21 +1077,15 @@
add_meta_data(
Aircraft.CrewPayload.TOTAL_PAYLOAD_MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='lbm',
- desc='total mass of payload, including passengers, passenger baggage, and cargo'
+ desc='total mass of payload, including passengers, passenger baggage, and cargo',
)
add_meta_data(
Aircraft.CrewPayload.WATER_MASS_PER_OCCUPANT,
meta_data=_MetaData,
- historical_name={"GASP": "INGASP.CW(10)",
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": "INGASP.CW(10)", "FLOPS": None, "LEAPS1": None},
default_value=1.0,
units="lbm",
desc='mass of water per occupant (passengers, pilots, and flight attendants)',
@@ -997,10 +1094,11 @@
add_meta_data(
Aircraft.CrewPayload.WING_CARGO,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.CARGOW', # ['&DEFINE.WTIN.CARGOW', 'WTS.CARGOW'],
- "LEAPS1": 'aircraft.inputs.L0_crew_and_payload.wing_cargo'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.CARGOW', # ['&DEFINE.WTIN.CARGOW', 'WTS.CARGOW'],
+ "LEAPS1": 'aircraft.inputs.L0_crew_and_payload.wing_cargo',
+ },
units='lbm',
desc='cargo carried in wing',
default_value=0.0,
@@ -1015,59 +1113,56 @@
# __/ |
# |___/
# =========================================
-
add_meta_data(
Aircraft.Design.BASE_AREA,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'AERIN.SBASE',
- # [ # inputs
- # '&DEFINE.AERIN.SBASE', 'EDETIN.SBASE',
- # # outputs
- # 'MISSA.SBASE', 'MISSA.SBASEX',
- # ],
- "LEAPS1": ['aircraft.inputs.L0_aerodynamics.base_area',
- 'aircraft.outputs.L0_aerodynamics.mission_base_area',
- ]
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'AERIN.SBASE',
+ # [ # inputs
+ # '&DEFINE.AERIN.SBASE', 'EDETIN.SBASE',
+ # # outputs
+ # 'MISSA.SBASE', 'MISSA.SBASEX',
+ # ],
+ "LEAPS1": [
+ 'aircraft.inputs.L0_aerodynamics.base_area',
+ 'aircraft.outputs.L0_aerodynamics.mission_base_area',
+ ],
+ },
units='ft**2',
desc='Aircraft base area (total exit cross-section area minus inlet '
- 'capture areas for internally mounted engines)',
+ 'capture areas for internally mounted engines)',
default_value=0.0,
)
add_meta_data(
Aircraft.Design.CG_DELTA,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.DELCG',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.DELCG', "FLOPS": None, "LEAPS1": None},
units='unitless',
desc='allowable center-of-gravity (cg) travel as a fraction of '
- 'the mean aerodynamic chord',
+ 'the mean aerodynamic chord',
)
add_meta_data(
Aircraft.Design.CHARACTERISTIC_LENGTHS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None, # 'MISSA.EL',
- "LEAPS1": ['aircraft.outputs.L0_aerodynamics.mission_component_char_len_table',
- 'aircraft.cached.L0_aerodynamics.mission_component_char_len_table',
- ]
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # 'MISSA.EL',
+ "LEAPS1": [
+ 'aircraft.outputs.L0_aerodynamics.mission_component_char_len_table',
+ 'aircraft.cached.L0_aerodynamics.mission_component_char_len_table',
+ ],
+ },
units='ft',
- desc='Reynolds characteristic length for each component'
+ desc='Reynolds characteristic length for each component',
)
add_meta_data(
Aircraft.Design.COCKPIT_CONTROL_MASS_COEFFICIENT,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.SKCC',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.SKCC', "FLOPS": None, "LEAPS1": None},
units="unitless",
desc='mass trend coefficient of cockpit controls',
)
@@ -1075,40 +1170,31 @@
add_meta_data(
Aircraft.Design.COMPUTE_HTAIL_VOLUME_COEFF,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units="unitless",
option=True,
default_value=False,
types=bool,
desc='if true, use empirical tail volume coefficient equation. This is '
- 'true if VBARHX is 0 in GASP.'
+ 'true if VBARHX is 0 in GASP.',
)
add_meta_data(
Aircraft.Design.COMPUTE_VTAIL_VOLUME_COEFF,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units="unitless",
option=True,
default_value=False,
types=bool,
desc='if true, use empirical tail volume coefficient equation. This is '
- 'true if VBARVX is 0 in GASP.'
+ 'true if VBARVX is 0 in GASP.',
)
add_meta_data(
Aircraft.Design.DRAG_COEFFICIENT_INCREMENT,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.DELCD',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.DELCD', "FLOPS": None, "LEAPS1": None},
units='unitless',
desc='increment to the profile drag coefficient',
)
@@ -1116,10 +1202,7 @@
add_meta_data(
Aircraft.Design.DRAG_POLAR,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='unitless',
desc='Drag polar computed during Aviary pre-mission.',
)
@@ -1127,10 +1210,7 @@
add_meta_data(
Aircraft.Design.EMERGENCY_EQUIPMENT_MASS,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.CW(11)',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.CW(11)', "FLOPS": None, "LEAPS1": None},
units='lbm',
desc='mass of emergency equipment',
default_value=0.0,
@@ -1139,11 +1219,12 @@
add_meta_data(
Aircraft.Design.EMPTY_MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['&DEFMSS.MISSIN.DOWE', '&FLOPS.RERUN.DOWE', 'ESB.DOWE'],
- "FLOPS": 'MISSIN.DOWE',
- "LEAPS1": 'aircraft.inputs.L0_mission.fixed_operating_weight_empty'
- },
+ historical_name={
+ "GASP": None,
+ # ['&DEFMSS.MISSIN.DOWE', '&FLOPS.RERUN.DOWE', 'ESB.DOWE'],
+ "FLOPS": 'MISSIN.DOWE',
+ "LEAPS1": 'aircraft.inputs.L0_mission.fixed_operating_weight_empty',
+ },
units='lbm',
desc='fixed operating empty mass',
default_value=0.0,
@@ -1154,10 +1235,11 @@
# - see also: Aircraft.Design.EMPTY_MASS_MARGIN_SCALER
Aircraft.Design.EMPTY_MASS_MARGIN,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None, # 'DARM.WMARG',
- "LEAPS1": '(WeightABC)self._weight_empty_margin'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # 'DARM.WMARG',
+ "LEAPS1": '(WeightABC)self._weight_empty_margin',
+ },
units='lbm',
desc='empty mass margin',
default_value=None,
@@ -1168,10 +1250,11 @@
# discarded
Aircraft.Design.EMPTY_MASS_MARGIN_SCALER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.EWMARG', # ['&DEFINE.WTIN.EWMARG', 'DARM.EWMARG'],
- "LEAPS1": 'aircraft.inputs.L0_overrides.weight_empty_margin'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.EWMARG', # ['&DEFINE.WTIN.EWMARG', 'DARM.EWMARG'],
+ "LEAPS1": 'aircraft.inputs.L0_overrides.weight_empty_margin',
+ },
units='unitless',
desc='empty mass margin scaler',
default_value=0.0,
@@ -1179,10 +1262,11 @@
add_meta_data(
Aircraft.Design.EXTERNAL_SUBSYSTEMS_MASS,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None,
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None,
+ "LEAPS1": None,
+ },
meta_data=_MetaData,
units='lbm',
desc='total mass of all user-defined external subsystems',
@@ -1191,35 +1275,31 @@
add_meta_data(
Aircraft.Design.FINENESS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None, # 'MISSA.FR',
- "LEAPS1": ['aircraft.outputs.L0_aerodynamics.mission_fineness_ratio_table',
- 'aircraft.cached.L0_aerodynamics.mission_fineness_ratio_table',
- ]
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # 'MISSA.FR',
+ "LEAPS1": [
+ 'aircraft.outputs.L0_aerodynamics.mission_fineness_ratio_table',
+ 'aircraft.cached.L0_aerodynamics.mission_fineness_ratio_table',
+ ],
+ },
units='unitless',
- desc='table of component fineness ratios'
+ desc='table of component fineness ratios',
)
add_meta_data(
Aircraft.Design.FIXED_EQUIPMENT_MASS,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.WFE',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.WFE', "FLOPS": None, "LEAPS1": None},
units='lbm',
desc='total mass of fixed equipment: APU, Instruments, Hydraulics, Electrical, '
- 'Avionics, AC, Anti-Icing, Auxilary Equipment, and Furnishings',
+ 'Avionics, AC, Anti-Icing, Auxilary Equipment, and Furnishings',
)
add_meta_data(
Aircraft.Design.FIXED_USEFUL_LOAD,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.WFUL',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.WFUL', "FLOPS": None, "LEAPS1": None},
units='lbm',
desc='total mass of fixed useful load: crew, service items, trapped oil, etc',
)
@@ -1227,22 +1307,20 @@
add_meta_data(
Aircraft.Design.IJEFF,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.IJEFF',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.IJEFF', "FLOPS": None, "LEAPS1": None},
desc="A flag used by Jeff V. Bowles to debug GASP code during his 53 years supporting the development of GASP. "
- "This flag is planted here to thank him for his hard work and dedication, Aviary wouldn't be what it is today "
- "without his help.",
+ "This flag is planted here to thank him for his hard work and dedication, Aviary wouldn't be what it is today "
+ "without his help.",
)
add_meta_data(
Aircraft.Design.LAMINAR_FLOW_LOWER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None, # 'MISSA.TRL',
- "LEAPS1": 'aircraft.outputs.L0_aerodynamics.mission_component_percent_laminar_flow_lower_surface_table'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # 'MISSA.TRL',
+ "LEAPS1": 'aircraft.outputs.L0_aerodynamics.mission_component_percent_laminar_flow_lower_surface_table',
+ },
units='unitless',
desc='table of percent laminar flow over lower component surfaces',
default_value=None,
@@ -1251,10 +1329,11 @@
add_meta_data(
Aircraft.Design.LAMINAR_FLOW_UPPER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None, # 'MISSA.TRU',
- "LEAPS1": 'aircraft.outputs.L0_aerodynamics.mission_component_percent_laminar_flow_upper_surface_table'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # 'MISSA.TRU',
+ "LEAPS1": 'aircraft.outputs.L0_aerodynamics.mission_component_percent_laminar_flow_upper_surface_table',
+ },
units='unitless',
desc='table of percent laminar flow over upper component surfaces',
default_value=None,
@@ -1264,22 +1343,20 @@
# Note user override (no scaling)
Aircraft.Design.LANDING_TO_TAKEOFF_MASS_RATIO,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'AERIN.WRATIO', # ['&DEFINE.AERIN.WRATIO', 'ESB.WRATIO'],
- "LEAPS1": 'aircraft.inputs.L0_takeoff_and_landing.landing_to_takeoff_weight_ratio'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'AERIN.WRATIO', # ['&DEFINE.AERIN.WRATIO', 'ESB.WRATIO'],
+ "LEAPS1": 'aircraft.inputs.L0_takeoff_and_landing.landing_to_takeoff_weight_ratio',
+ },
units='unitless',
desc='ratio of maximum landing mass to maximum takeoff mass',
- default_value=None,
+ default_value=0.9,
)
add_meta_data(
Aircraft.Design.LIFT_CURVE_SLOPE,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.CLALPH',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.CLALPH', "FLOPS": None, "LEAPS1": None},
units="1/rad",
desc='lift curve slope at cruise mach number',
)
@@ -1287,13 +1364,14 @@
add_meta_data(
Aircraft.Design.LIFT_DEPENDENT_DRAG_COEFF_FACTOR,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'MISSIN.FCDI', # '~DRGFCT.FCDI',
- "LEAPS1": 'aircraft.outputs.L0_aerodynamics.induced_drag_coeff_fact'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'MISSIN.FCDI', # '~DRGFCT.FCDI',
+ "LEAPS1": 'aircraft.outputs.L0_aerodynamics.induced_drag_coeff_fact',
+ },
units='unitless',
default_value=1.0,
- desc='Scaling factor for lift-dependent drag coefficient'
+ desc='Scaling factor for lift-dependent drag coefficient',
)
add_meta_data(
@@ -1321,10 +1399,7 @@
add_meta_data(
Aircraft.Design.LIFT_POLAR,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='unitless',
desc='Lift polar computed during Aviary pre-mission.',
)
@@ -1332,10 +1407,7 @@
add_meta_data(
Aircraft.Design.MAX_FUSELAGE_PITCH_ANGLE,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.THEMAX',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.THEMAX', "FLOPS": None, "LEAPS1": None},
units='deg',
desc='maximum fuselage pitch allowed',
default_value=15,
@@ -1344,10 +1416,7 @@
add_meta_data(
Aircraft.Design.MAX_STRUCTURAL_SPEED,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.VMLFSL',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.VMLFSL', "FLOPS": None, "LEAPS1": None},
units='mi/h',
desc='maximum structural design flight speed in miles per hour',
default_value=0,
@@ -1358,24 +1427,23 @@
meta_data=_MetaData,
# TODO: check with Aviary and GASPy engineers to ensure these are indeed
# defined the same way
- historical_name={"GASP": 'INGASP.OWE',
- # ['WTS.WSP(33, 2)', '~WEIGHT.WOWE', '~WTSTAT.WSP(33, 2)'],
- "FLOPS": None,
- "LEAPS1": ['(WeightABC)self._operating_weight_empty',
- 'aircraft.outputs.L0_weights_summary.operating_weight_empty',
- ]
- },
+ historical_name={
+ "GASP": 'INGASP.OWE',
+ # ['WTS.WSP(33, 2)', '~WEIGHT.WOWE', '~WTSTAT.WSP(33, 2)'],
+ "FLOPS": None,
+ "LEAPS1": [
+ '(WeightABC)self._operating_weight_empty',
+ 'aircraft.outputs.L0_weights_summary.operating_weight_empty',
+ ],
+ },
units='lbm',
- desc='operating mass empty of the aircraft'
+ desc='operating mass empty of the aircraft',
)
add_meta_data(
Aircraft.Design.PART25_STRUCTURAL_CATEGORY,
meta_data=_MetaData,
- historical_name={"GASP": "INGASP.CATD",
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": "INGASP.CATD", "FLOPS": None, "LEAPS1": None},
option=True,
default_value=3,
types=int,
@@ -1386,10 +1454,7 @@
add_meta_data(
Aircraft.Design.RESERVE_FUEL_ADDITIONAL,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.FRESF',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.FRESF', "FLOPS": None, "LEAPS1": None},
option=True,
units="lbm",
desc='required fuel reserves: directly in lbm',
@@ -1399,27 +1464,21 @@
add_meta_data(
Aircraft.Design.RESERVE_FUEL_FRACTION,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
option=True,
units="unitless",
desc='required fuel reserves: given as a proportion of mission fuel. This value must be nonnegative. '
- 'Mission fuel only includes normal phases and excludes reserve phases. '
- 'If it is 0.5, the reserve fuel is half of the mission fuel (one third of the total fuel). Note '
- 'it can be greater than 1. If it is 2, there would be twice as much reserve fuel as mission fuel '
- '(the total fuel carried would be 1/3 for the mission and 2/3 for the reserve)',
+ 'Mission fuel only includes normal phases and excludes reserve phases. '
+ 'If it is 0.5, the reserve fuel is half of the mission fuel (one third of the total fuel). Note '
+ 'it can be greater than 1. If it is 2, there would be twice as much reserve fuel as mission fuel '
+ '(the total fuel carried would be 1/3 for the mission and 2/3 for the reserve)',
default_value=0,
)
add_meta_data(
Aircraft.Design.SMOOTH_MASS_DISCONTINUITIES,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
option=True,
default_value=False,
types=bool,
@@ -1430,10 +1489,7 @@
add_meta_data(
Aircraft.Design.STATIC_MARGIN,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.STATIC',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.STATIC', "FLOPS": None, "LEAPS1": None},
units='unitless',
desc='aircraft static margin as a fraction of mean aerodynamic chord',
)
@@ -1441,10 +1497,7 @@
add_meta_data(
Aircraft.Design.STRUCTURAL_MASS_INCREMENT,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.DELWST',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.DELWST', "FLOPS": None, "LEAPS1": None},
units='lbm',
desc='structural mass increment that is added (or removed) after the structural mass is calculated',
default_value=0,
@@ -1453,65 +1506,67 @@
add_meta_data(
Aircraft.Design.STRUCTURE_MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['WTS.WSP(9, 2)', '~WEIGHT.WSTRCT', '~WTSTAT.WSP(9, 2)'],
- "FLOPS": None,
- "LEAPS1": ['(WeightABC)self._total_structural_weight',
- 'aircraft.outputs.L0_weights_summary.total_structural_weight',
- ]
- },
+ historical_name={
+ "GASP": None,
+ # ['WTS.WSP(9, 2)', '~WEIGHT.WSTRCT', '~WTSTAT.WSP(9, 2)'],
+ "FLOPS": None,
+ "LEAPS1": [
+ '(WeightABC)self._total_structural_weight',
+ 'aircraft.outputs.L0_weights_summary.total_structural_weight',
+ ],
+ },
units='lbm',
- desc='Total structural group mass'
+ desc='Total structural group mass',
)
add_meta_data(
Aircraft.Design.SUBSONIC_DRAG_COEFF_FACTOR,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'MISSIN.FCDSUB', # '~DRGFCT.FCDSUB',
- "LEAPS1": 'aircraft.outputs.L0_aerodynamics.sub_drag_coeff_fact'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'MISSIN.FCDSUB', # '~DRGFCT.FCDSUB',
+ "LEAPS1": 'aircraft.outputs.L0_aerodynamics.sub_drag_coeff_fact',
+ },
units='unitless',
default_value=1.0,
- desc='Scaling factor for subsonic drag'
+ desc='Scaling factor for subsonic drag',
)
add_meta_data(
Aircraft.Design.SUPERCRITICAL_DIVERGENCE_SHIFT,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.SCFAC',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.SCFAC', "FLOPS": None, "LEAPS1": None},
units='unitless',
- desc='shift in drag divergence Mach number due to '
- 'supercritical design',
+ desc='shift in drag divergence Mach number due to ' 'supercritical design',
)
add_meta_data(
Aircraft.Design.SUPERSONIC_DRAG_COEFF_FACTOR,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'MISSIN.FCDSUP', # '~DRGFCT.FCDSUP',
- "LEAPS1": 'aircraft.outputs.L0_aerodynamics.sup_drag_coeff_fact'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'MISSIN.FCDSUP', # '~DRGFCT.FCDSUP',
+ "LEAPS1": 'aircraft.outputs.L0_aerodynamics.sup_drag_coeff_fact',
+ },
units='unitless',
default_value=1.0,
- desc='Scaling factor for supersonic drag'
+ desc='Scaling factor for supersonic drag',
)
add_meta_data(
Aircraft.Design.SYSTEMS_EQUIP_MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['WTS.WSP(25, 2)', '~WEIGHT.WSYS', '~WTSTAT.WSP(25, 2)'],
- "FLOPS": None,
- "LEAPS1": ['(WeightABC)self._equipment_group_weight',
- 'aircraft.outputs.L0_weights_summary.equipment_group_weight',
- ]
- },
+ historical_name={
+ "GASP": None,
+ # ['WTS.WSP(25, 2)', '~WEIGHT.WSYS', '~WTSTAT.WSP(25, 2)'],
+ "FLOPS": None,
+ "LEAPS1": [
+ '(WeightABC)self._equipment_group_weight',
+ 'aircraft.outputs.L0_weights_summary.equipment_group_weight',
+ ],
+ },
units='lbm',
- desc='Total systems & equipment group mass'
+ desc='Total systems & equipment group mass',
)
add_meta_data(
@@ -1520,52 +1575,52 @@
# value during calculations; in Aviary, these must be separate variables
Aircraft.Design.SYSTEMS_EQUIP_MASS_BASE,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='lbm',
- desc='Total systems & equipment group mass without additional 1% of '
- 'empty mass'
+ desc='Total systems & equipment group mass without additional 1% of ' 'empty mass',
)
add_meta_data(
Aircraft.Design.THRUST_TO_WEIGHT_RATIO,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'CONFIN.TWR',
- "LEAPS1": 'ipropulsion.req_thrust_weight_ratio'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'CONFIN.TWR',
+ "LEAPS1": 'ipropulsion.req_thrust_weight_ratio',
+ },
units='unitless',
- desc='required thrust-to-weight ratio of aircraft'
+ desc='required thrust-to-weight ratio of aircraft',
)
add_meta_data(
Aircraft.Design.TOTAL_WETTED_AREA,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None, # '~WEIGHT.TWET',
- "LEAPS1": '~WeightABC._update_cycle.total_wetted_area'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # '~WEIGHT.TWET',
+ "LEAPS1": '~WeightABC._update_cycle.total_wetted_area',
+ },
units='ft**2',
- desc='total aircraft wetted area'
+ desc='total aircraft wetted area',
)
add_meta_data(
# NOTE: user override (no scaling)
Aircraft.Design.TOUCHDOWN_MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.WLDG',
- # [ # inputs
- # '&DEFINE.WTIN.WLDG', 'WTS.WLDG',
- # # outputs
- # 'CMODLW.WLDGO',
- # ],
- "LEAPS1": ['aircraft.inputs.L0_landing_gear.design_landing_weight',
- 'aircraft.outputs.L0_landing_gear.design_landing_weight',
- ]
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.WLDG',
+ # [ # inputs
+ # '&DEFINE.WTIN.WLDG', 'WTS.WLDG',
+ # # outputs
+ # 'CMODLW.WLDGO',
+ # ],
+ "LEAPS1": [
+ 'aircraft.inputs.L0_landing_gear.design_landing_weight',
+ 'aircraft.outputs.L0_landing_gear.design_landing_weight',
+ ],
+ },
units='lbm',
desc='design landing mass',
default_value=None,
@@ -1574,26 +1629,24 @@
add_meta_data(
Aircraft.Design.ULF_CALCULATED_FROM_MANEUVER,
meta_data=_MetaData,
- historical_name={"GASP": 'CATD',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'CATD', "FLOPS": None, "LEAPS1": None},
option=True,
default_value=False,
types=bool,
units="unitless",
desc='if true, ULF (ultimate load factor) is forced to be calculated from '
- 'the maneuver load factor, even if the gust load factor is larger. '
- 'This was set to true with a negative CATD in GASP.'
+ 'the maneuver load factor, even if the gust load factor is larger. '
+ 'This was set to true with a negative CATD in GASP.',
)
add_meta_data(
Aircraft.Design.USE_ALT_MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.IALTWT',
- "LEAPS1": 'aircraft.inputs.L0_weights.use_alt_weights'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.IALTWT',
+ "LEAPS1": 'aircraft.inputs.L0_weights.use_alt_weights',
+ },
units='unitless',
desc='control whether the alternate mass equations are to be used or not',
option=True,
@@ -1604,41 +1657,46 @@
add_meta_data(
Aircraft.Design.WETTED_AREAS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None, # 'MISSA.SWET',
- "LEAPS1": ['aircraft.outputs.L0_aerodynamics.mission_component_wetted_area_table',
- 'aircraft.cached.L0_aerodynamics.mission_component_wetted_area_table',
- ]
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # 'MISSA.SWET',
+ "LEAPS1": [
+ 'aircraft.outputs.L0_aerodynamics.mission_component_wetted_area_table',
+ 'aircraft.cached.L0_aerodynamics.mission_component_wetted_area_table',
+ ],
+ },
units='ft**2',
- desc='table of component wetted areas'
+ desc='table of component wetted areas',
)
add_meta_data(
Aircraft.Design.ZERO_FUEL_MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['WTS.WSP(37,2)', '~WEIGHT.WZF', '~WTSTAT.WSP(37,2)'],
- "FLOPS": None,
- "LEAPS1": ['(WeightABC)self._zero_fuel_weight',
- 'aircraft.outputs.L0_weights.zero_fuel_weight',
- 'aircraft.outputs.L0_weights_summary.zero_fuel_weight',
- ]
- },
+ historical_name={
+ "GASP": None,
+ # ['WTS.WSP(37,2)', '~WEIGHT.WZF', '~WTSTAT.WSP(37,2)'],
+ "FLOPS": None,
+ "LEAPS1": [
+ '(WeightABC)self._zero_fuel_weight',
+ 'aircraft.outputs.L0_weights.zero_fuel_weight',
+ 'aircraft.outputs.L0_weights_summary.zero_fuel_weight',
+ ],
+ },
units='lbm',
- desc='zero fuel mass'
+ desc='zero fuel mass',
)
add_meta_data(
Aircraft.Design.ZERO_LIFT_DRAG_COEFF_FACTOR,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'MISSIN.FCDO', # '~DRGFCT.FCDO',
- "LEAPS1": 'aircraft.outputs.L0_aerodynamics.geom_drag_coeff_fact'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'MISSIN.FCDO', # '~DRGFCT.FCDO',
+ "LEAPS1": 'aircraft.outputs.L0_aerodynamics.geom_drag_coeff_fact',
+ },
units='unitless',
default_value=1.0,
- desc='Scaling factor for zero-lift drag coefficient'
+ desc='Scaling factor for zero-lift drag coefficient',
)
#
@@ -1653,10 +1711,7 @@
add_meta_data(
Aircraft.Electrical.HAS_HYBRID_SYSTEM,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units="unitless",
option=True,
default_value=True,
@@ -1667,10 +1722,7 @@
add_meta_data(
Aircraft.Electrical.HYBRID_CABLE_LENGTH,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.LCABLE',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.LCABLE', "FLOPS": None, "LEAPS1": None},
units='ft',
desc='length of cable for hybrid electric augmented system',
)
@@ -1680,13 +1732,15 @@
# - see also: Aircraft.Electrical.MASS_SCALER
Aircraft.Electrical.MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['WTS.WSP(20, 2)', '~WEIGHT.WELEC', '~WTSTAT.WSP(20, 2)'],
- "FLOPS": None,
- "LEAPS1": ['(WeightABC)self._electrical_group_weight',
- 'aircraft.outputs.L0_weights_summary.electrical_group_weight',
- ]
- },
+ historical_name={
+ "GASP": None,
+ # ['WTS.WSP(20, 2)', '~WEIGHT.WELEC', '~WTSTAT.WSP(20, 2)'],
+ "FLOPS": None,
+ "LEAPS1": [
+ '(WeightABC)self._electrical_group_weight',
+ 'aircraft.outputs.L0_weights_summary.electrical_group_weight',
+ ],
+ },
units='lbm',
desc='mass of the electrical system',
default_value=None,
@@ -1695,11 +1749,12 @@
add_meta_data(
Aircraft.Electrical.MASS_SCALER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['&DEFINE.WTIN.WELEC', 'MISWT.WELEC', 'MISWT.OELEC'],
- "FLOPS": 'WTIN.WELEC',
- "LEAPS1": 'aircraft.inputs.L0_overrides.electrical_group_weight'
- },
+ historical_name={
+ "GASP": None,
+ # ['&DEFINE.WTIN.WELEC', 'MISWT.WELEC', 'MISWT.OELEC'],
+ "FLOPS": 'WTIN.WELEC',
+ "LEAPS1": 'aircraft.inputs.L0_overrides.electrical_group_weight',
+ },
units='unitless',
desc='mass scaler for the electrical system',
default_value=1.0,
@@ -1720,258 +1775,290 @@
add_meta_data(
Aircraft.Engine.ADDITIONAL_MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='lbm',
desc='additional propulsion system mass added to engine control and starter mass, or '
- 'engine installation mass',
- default_value=0.0
+ 'engine installation mass',
+ default_value=0.0,
)
add_meta_data(
Aircraft.Engine.ADDITIONAL_MASS_FRACTION,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.SKPEI',
- "FLOPS": 'WTIN.WPMISC', # ['&DEFINE.WTIN.WPMISC', 'FAWT.WPMISC'],
- "LEAPS1": 'aircraft.inputs.L0_propulsion.misc_weight'
- },
+ historical_name={
+ "GASP": 'INGASP.SKPEI',
+ "FLOPS": 'WTIN.WPMISC', # ['&DEFINE.WTIN.WPMISC', 'FAWT.WPMISC'],
+ "LEAPS1": 'aircraft.inputs.L0_propulsion.misc_weight',
+ },
units='unitless',
+ option=True,
desc='fraction of (scaled) engine mass used to calculate additional propulsion '
'system mass added to engine control and starter mass, or used to '
'calculate engine installation mass',
+ types=(float, int, np.ndarray),
+ multivalue=True,
default_value=0.0,
)
-# NOTE if FT < 0, this bool is true, if >= 0, this is false and the value of FT is used
-# as the installation loss factor
-add_meta_data(
- Aircraft.Engine.COMPUTE_PROPELLER_INSTALLATION_LOSS,
- meta_data=_MetaData,
- historical_name={"GASP": 'INPROP.FT',
- "FLOPS": None,
- "LEAPS1": None
- },
- units="unitless",
- option=True,
- default_value=True,
- types=bool,
- desc='if true, compute installation loss factor based on blockage factor',
-)
-
add_meta_data(
Aircraft.Engine.CONSTANT_FUEL_CONSUMPTION,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'MISSIN.FLEAK',
- "LEAPS1": ['iengine.fuel_leak', 'aircraft.inputs.L0_engine.fuel_leak']
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'MISSIN.FLEAK',
+ "LEAPS1": ['iengine.fuel_leak', 'aircraft.inputs.L0_engine.fuel_leak'],
+ },
option=True,
units='lbm/h',
desc='Additional constant fuel flow. This value is not scaled with the engine',
- default_value=0.0
+ default_value=0.0,
)
add_meta_data(
Aircraft.Engine.CONTROLS_MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None, # '~WEIGHT.WEC',
- "LEAPS1": '(WeightABC)self._engine_ctrl_weight'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # '~WEIGHT.WEC',
+ "LEAPS1": '(WeightABC)self._engine_ctrl_weight',
+ },
units='lbm',
desc='estimated mass of the engine controls',
- default_value=0.0
+ default_value=0.0,
)
# TODO there should be a GASP name that pairs here
add_meta_data(
Aircraft.Engine.DATA_FILE,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": "ENGDIN.EIFILE",
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": "ENGDIN.EIFILE", "LEAPS1": None},
units='unitless',
types=(str, Path),
default_value=None,
option=True,
- desc='filepath to data file containing engine performance tables'
+ desc='filepath to data file containing engine performance tables',
+)
+
+add_meta_data(
+ Aircraft.Engine.FIXED_RPM,
+ meta_data=_MetaData,
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
+ units='rpm',
+ default_value=1.0,
+ desc='RPM the engine is set to be running at. Overrides RPM provided by '
+ 'engine model or chosen by optimizer. Typically used when pairing a motor or '
+ 'turboshaft using a fixed operating RPM with a propeller.',
)
add_meta_data(
Aircraft.Engine.FLIGHT_IDLE_MAX_FRACTION,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'ENGDIN.FIDMAX',
- "LEAPS1": 'aircraft.L0_fuel_flow.idle_max_fract'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'ENGDIN.FIDMAX',
+ "LEAPS1": 'aircraft.L0_fuel_flow.idle_max_fract',
+ },
units="unitless",
option=True,
default_value=1.0,
desc='If Aircraft.Engine.GENERATE_FLIGHT_IDLE is True, bounds engine '
- 'performance outputs (other than thrust) at flight idle to be below a '
- 'decimal fraction of the max value of that output produced by the engine '
- 'at each flight condition.'
+ 'performance outputs (other than thrust) at flight idle to be below a '
+ 'decimal fraction of the max value of that output produced by the engine '
+ 'at each flight condition.',
)
add_meta_data(
Aircraft.Engine.FLIGHT_IDLE_MIN_FRACTION,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'ENGDIN.FIDMIN',
- "LEAPS1": 'aircraft.L0_fuel_flow.idle_min_fract'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'ENGDIN.FIDMIN',
+ "LEAPS1": 'aircraft.L0_fuel_flow.idle_min_fract',
+ },
units="unitless",
option=True,
default_value=0.08,
desc='If Aircraft.Engine.GENERATE_FLIGHT_IDLE is True, bounds engine '
- 'performance outputs (other than thrust) at flight idle to be above a '
- 'decimal fraction of the max value of that output produced by the engine '
- 'at each flight condition.'
+ 'performance outputs (other than thrust) at flight idle to be above a '
+ 'decimal fraction of the max value of that output produced by the engine '
+ 'at each flight condition.',
)
add_meta_data(
Aircraft.Engine.FLIGHT_IDLE_THRUST_FRACTION,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units="unitless",
option=True,
default_value=0.0,
desc='If Aircraft.Engine.GENERATE_FLIGHT_IDLE is True, defines idle thrust '
- 'condition as a decimal fraction of max thrust produced by the engine at each '
- 'flight condition.'
+ 'condition as a decimal fraction of max thrust produced by the engine at each '
+ 'flight condition.',
)
add_meta_data(
Aircraft.Engine.FUEL_FLOW_SCALER_CONSTANT_TERM,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'ENGDIN.DFFAC',
- "LEAPS1": 'ifuel_flow.scaling_const_term'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'ENGDIN.DFFAC',
+ "LEAPS1": 'ifuel_flow.scaling_const_term',
+ },
units='unitless',
option=True,
desc='Constant term in fuel flow scaling equation',
- default_value=0.0
+ default_value=0.0,
)
add_meta_data(
Aircraft.Engine.FUEL_FLOW_SCALER_LINEAR_TERM,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'ENGDIN.FFFAC',
- "LEAPS1": 'ifuel_flow.scaling_linear_term'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'ENGDIN.FFFAC',
+ "LEAPS1": 'ifuel_flow.scaling_linear_term',
+ },
units='unitless',
desc='Linear term in fuel flow scaling equation',
default_value=0.0,
- option=True
+ option=True,
)
add_meta_data(
Aircraft.Engine.GENERATE_FLIGHT_IDLE,
- historical_name={"GASP": None,
- "FLOPS": 'ENGDIN.IDLE',
- "LEAPS1": 'engine_model.imodel_info.flight_idle_index'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'ENGDIN.IDLE',
+ "LEAPS1": 'engine_model.imodel_info.flight_idle_index',
+ },
meta_data=_MetaData,
units="unitless",
option=True,
default_value=False,
types=bool,
desc='If True, generate flight idle data by extrapolating from engine deck. Flight '
- 'idle is defined as engine performance when thrust is reduced to the level '
- 'defined by Aircraft.Engine.FLIGHT_IDLE_THRUST_FRACTION. Engine outputs are '
- 'extrapolated to this thrust level, bounded by '
- 'Aircraft.Engine.FLIGHT_IDLE_MIN_FRACT and Aircraft.Engine.FLIGHT_IDLE_MIN_FRACT'
+ 'idle is defined as engine performance when thrust is reduced to the level '
+ 'defined by Aircraft.Engine.FLIGHT_IDLE_THRUST_FRACTION. Engine outputs are '
+ 'extrapolated to this thrust level, bounded by '
+ 'Aircraft.Engine.FLIGHT_IDLE_MIN_FRACT and Aircraft.Engine.FLIGHT_IDLE_MIN_FRACT',
)
add_meta_data(
Aircraft.Engine.GEOPOTENTIAL_ALT,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'ENGDIN.IGEO',
- "LEAPS1": 'imodel_info.geopotential_alt'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'ENGDIN.IGEO',
+ "LEAPS1": 'imodel_info.geopotential_alt',
+ },
units='unitless',
option=True,
desc='If True, engine deck altitudes are geopotential and will be converted to '
- 'geometric altitudes. If False, engine deck altitudes are geometric.',
+ 'geometric altitudes. If False, engine deck altitudes are geometric.',
+ types=bool,
+ default_value=False,
+)
+
+# Global hybrid throttle is also False by default to account for parallel-hybrid engines
+# that can't operate at every power level at every condition due to other constraints
+add_meta_data(
+ Aircraft.Engine.GLOBAL_HYBRID_THROTTLE,
+ meta_data=_MetaData,
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
+ units='unitless',
+ desc='Flag for engine decks if the range of provided hybrid throttles is consistent '
+ 'across all flight conditions (e.g. the maximum hybrid throttle seen in the entire '
+ 'deck is 1.0, but a given flight condition only goes to 0.9 -> GLOBAL_HYBRID_THROTTLE '
+ '= TRUE means the engine can be extrapolated out to 1.0 at that point. If '
+ "GLOBAL_HYBRID_THROTTLE is False, then each flight condition's hybrid throttle range is "
+ 'individually normalized from 0 to 1 independent of other points on the deck).',
+ default_value=False,
+ types=bool,
+ option=True,
+)
+
+# TODO Disabling global throttle ranges is preferred (therefore default) to prevent
+# unintended extrapolation, but breaks missions using GASP-based engines that have uneven
+# throttle ranges (need t4 constraint on mission to truly fix).
+add_meta_data(
+ Aircraft.Engine.GLOBAL_THROTTLE,
+ meta_data=_MetaData,
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
+ units='unitless',
+ desc='Flag for engine decks if the range of provided throttles is consistent '
+ 'across all flight conditions (e.g. the maximum throttle seen in the entire '
+ 'deck is 1.0, but a given flight condition only goes to 0.9 -> GLOBAL_THROTTLE '
+ '= TRUE means the engine can be extrapolated out to 1.0 at that point. If '
+ "GLOBAL_THROTTLE is False, then each flight condition's throttle range is "
+ 'individually normalized from 0 to 1 independent of other points on the deck).',
+ default_value=False,
types=bool,
- default_value=False
+ option=True,
)
# TODO dependency on NTYE? Does this var need preprocessing? Can this mention be removed?
add_meta_data(
Aircraft.Engine.HAS_PROPELLERS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
option=True,
units="unitless",
default_value=False,
types=bool,
desc='if True, the aircraft has propellers, otherwise aircraft is assumed to have no '
- 'propellers. In GASP this depended on NTYE',
+ 'propellers. In GASP this depended on NTYE',
)
add_meta_data(
Aircraft.Engine.IGNORE_NEGATIVE_THRUST,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'ENGDIN.NONEG',
- "LEAPS1": 'imodel_info.ignore_negative_thrust'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'ENGDIN.NONEG',
+ "LEAPS1": 'imodel_info.ignore_negative_thrust',
+ },
option=True,
units="unitless",
default_value=False,
types=bool,
desc='If False, all input or generated points are used, otherwise points in the '
- 'engine deck with negative net thrust are ignored.'
+ 'engine deck with negative net thrust are ignored.',
)
add_meta_data(
Aircraft.Engine.INTERPOLATION_METHOD,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units="unitless",
option=True,
default_value='slinear',
types=str,
desc="method used for interpolation on an engine deck's data file, allowable values are "
- 'table methods from openmdao.components.interp_util.interp',
+ 'table methods from openmdao.components.interp_util.interp',
)
add_meta_data(
Aircraft.Engine.MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None, # ['WTS.WSP(10, 2)', '~WTSTAT.WSP(10, 2)'],
- "LEAPS1": 'aircraft.outputs.L0_weights_summary.Engine.WEIGHT'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # ['WTS.WSP(10, 2)', '~WTSTAT.WSP(10, 2)'],
+ "LEAPS1": 'aircraft.outputs.L0_weights_summary.Engine.WEIGHT',
+ },
units='lbm',
desc='scaled mass of a single engine or bare engine if inlet and nozzle mass are '
- 'supplied',
- default_value=0.0
+ 'supplied',
+ default_value=0.0,
)
add_meta_data(
Aircraft.Engine.MASS_SCALER,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.CK5',
- "FLOPS": 'WTIN.EEXP', # '~WEIGHT.EEXP',
- "LEAPS1": 'aircraft.inputs.L0_propulsion.engine_weight_scale'
- },
+ historical_name={
+ "GASP": 'INGASP.CK5',
+ "FLOPS": 'WTIN.EEXP', # '~WEIGHT.EEXP',
+ "LEAPS1": 'aircraft.inputs.L0_propulsion.engine_weight_scale',
+ },
units='unitless',
desc='scaler for engine mass',
default_value=0.0,
@@ -1980,10 +2067,7 @@
add_meta_data(
Aircraft.Engine.MASS_SPECIFIC,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.SWSLS',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.SWSLS', "FLOPS": None, "LEAPS1": None},
units="lbm/lbf",
desc='specific mass of one engine (engine weight/SLS thrust)',
default_value=0.0,
@@ -1992,80 +2076,70 @@
add_meta_data(
Aircraft.Engine.NUM_ENGINES,
meta_data=_MetaData,
- historical_name={"GASP": "INGASP.ENP",
- "FLOPS": None, # ['~ANALYS.NENG', 'LANDG.XENG', ],
- "LEAPS1": 'aircraft.outputs.L0_propulsion.total_engine_count'
- },
+ historical_name={
+ "GASP": "INGASP.ENP",
+ "FLOPS": None, # ['~ANALYS.NENG', 'LANDG.XENG', ],
+ "LEAPS1": 'aircraft.outputs.L0_propulsion.total_engine_count',
+ },
units='unitless',
desc='total number of engines per model on the aircraft '
- '(fuselage, wing, or otherwise)',
- types=int,
+ '(fuselage, wing, or otherwise)',
+ types=(np.ndarray, int),
+ multivalue=True,
option=True,
- default_value=2
+ default_value=[2]
)
add_meta_data(
Aircraft.Engine.NUM_FUSELAGE_ENGINES,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.NEF', # ['&DEFINE.WTIN.NEF', 'EDETIN.NEF'],
- "LEAPS1": 'aircraft.inputs.L0_fuselage.engines_count'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.NEF', # ['&DEFINE.WTIN.NEF', 'EDETIN.NEF'],
+ "LEAPS1": 'aircraft.inputs.L0_fuselage.engines_count',
+ },
units='unitless',
desc='number of fuselage mounted engines per model',
option=True,
- types=int,
- default_value=0
-)
-
-add_meta_data(
- Aircraft.Engine.NUM_PROPELLER_BLADES,
- meta_data=_MetaData,
- historical_name={"GASP": 'INPROP.BL',
- "FLOPS": None,
- "LEAPS1": None
- },
- units='unitless',
- desc='number of blades per propeller',
- option=True,
- types=int,
+ types=(np.ndarray, int),
+ multivalue=True,
default_value=0
)
add_meta_data(
Aircraft.Engine.NUM_WING_ENGINES,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['&DEFINE.WTIN.NEW', 'EDETIN.NEW', '~WWGHT.NEW'],
- "FLOPS": 'WTIN.NEW',
- "LEAPS1": 'aircraft.inputs.L0_wing.engines_count'
- },
+ historical_name={
+ "GASP": None,
+ # ['&DEFINE.WTIN.NEW', 'EDETIN.NEW', '~WWGHT.NEW'],
+ "FLOPS": 'WTIN.NEW',
+ "LEAPS1": 'aircraft.inputs.L0_wing.engines_count',
+ },
units='unitless',
desc='number of wing mounted engines per model',
option=True,
- types=int,
- default_value=0
+ types=(np.ndarray, int),
+ multivalue=True,
+ default_value=[0]
)
add_meta_data(
Aircraft.Engine.POD_MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None, # ['~WEIGHT.WPOD', '~WWGHT.WPOD'],
- "LEAPS1": '(WeightABC)self._engine_pod_weight_list'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # ['~WEIGHT.WPOD', '~WWGHT.WPOD'],
+ "LEAPS1": '(WeightABC)self._engine_pod_weight_list',
+ },
units='lbm',
desc='engine pod mass including nacelles',
- default_value=0.0
+ default_value=0.0,
)
add_meta_data(
Aircraft.Engine.POD_MASS_SCALER,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.CK14',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.CK14', "FLOPS": None, "LEAPS1": None},
units="unitless",
desc='technology factor on mass of engine pods',
default_value=1.0,
@@ -2074,112 +2148,28 @@
add_meta_data(
Aircraft.Engine.POSITION_FACTOR,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.SKEPOS',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.SKEPOS', "FLOPS": None, "LEAPS1": None},
units="unitless",
desc='engine position factor',
default_value=0,
)
-add_meta_data(
- Aircraft.Engine.PROPELLER_ACTIVITY_FACTOR,
- meta_data=_MetaData,
- historical_name={"GASP": 'INPROP.AF',
- "FLOPS": None,
- "LEAPS1": None
- },
- units="unitless",
- desc='propeller actitivty factor per Blade (Range: 80 to 200)',
- default_value=0.0,
-)
-
-add_meta_data(
- Aircraft.Engine.PROPELLER_DATA_FILE,
- meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
- units='unitless',
- types=(str, Path),
- default_value=None,
- option=True,
- desc='filepath to data file containing propeller data map',
-)
-
-add_meta_data(
- Aircraft.Engine.PROPELLER_DIAMETER,
- meta_data=_MetaData,
- historical_name={"GASP": 'INPROP.DPROP',
- "FLOPS": None,
- "LEAPS1": None
- },
- units='ft',
- desc='propeller diameter',
- default_value=0.0,
-)
-
-add_meta_data(
- Aircraft.Engine.PROPELLER_INTEGRATED_LIFT_COEFFICIENT,
- meta_data=_MetaData,
- historical_name={"GASP": 'INPROP.CLI',
- "FLOPS": None,
- "LEAPS1": None
- },
- units='unitless',
- desc='propeller blade integrated design lift coefficient (Range: 0.3 to 0.8)',
- default_value=0.5,
-)
-
-add_meta_data(
- Aircraft.Engine.PROPELLER_TIP_MACH_MAX,
- meta_data=_MetaData,
- historical_name={"GASP": None, # TODO this needs verification
- "FLOPS": None,
- "LEAPS1": None
- },
- units='unitless',
- desc='maximum allowable Mach number at propeller tip (based on helical speed)',
- default_value=1.0,
-)
-
-add_meta_data(
- Aircraft.Engine.PROPELLER_TIP_SPEED_MAX,
- meta_data=_MetaData,
- historical_name={
- "GASP": ['INPROP.TSPDMX', 'INPROP.TPSPDMXe'],
- "FLOPS": None,
- "LEAPS1": None,
- },
- units='ft/s',
- desc='maximum allowable propeller linear tip speed',
- default_value=800.0,
-)
-
add_meta_data(
Aircraft.Engine.PYLON_FACTOR,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.FPYL',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.FPYL', "FLOPS": None, "LEAPS1": None},
units="unitless",
desc='factor for turbofan engine pylon mass',
- default_value=.7
+ default_value=0.7,
)
add_meta_data(
Aircraft.Engine.REFERENCE_DIAMETER,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.DIAM_REF',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.DIAM_REF', "FLOPS": None, "LEAPS1": None},
units='ft',
desc='engine reference diameter',
- default_value=0.0
+ default_value=0.0,
)
# NOTE This unscaled turbine (engine) weight is an input provided by the user, and is not
@@ -2188,13 +2178,14 @@
add_meta_data(
Aircraft.Engine.REFERENCE_MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.WENG', # '~WEIGHT.WENG',
- "LEAPS1": '(WeightABC)self._Engine.WEIGHT'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.WENG', # '~WEIGHT.WENG',
+ "LEAPS1": '(WeightABC)self._Engine.WEIGHT',
+ },
units='lbm',
desc='unscaled mass of a single engine or bare engine if inlet and nozzle mass '
- 'are supplied',
+ 'are supplied',
default_value=None,
option=True,
)
@@ -2202,24 +2193,26 @@
add_meta_data(
Aircraft.Engine.REFERENCE_SLS_THRUST,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.FN_REF',
- "FLOPS": 'WTIN.THRSO',
- "LEAPS1": 'aircraft.inputs.L0_engine*.thrust'
- },
+ historical_name={
+ "GASP": 'INGASP.FN_REF',
+ "FLOPS": 'WTIN.THRSO',
+ "LEAPS1": 'aircraft.inputs.L0_engine*.thrust',
+ },
units='lbf',
desc='maximum thrust of an engine provided in engine model files',
default_value=None,
- option=True
+ option=True,
)
add_meta_data(
Aircraft.Engine.RPM_DESIGN,
meta_data=_MetaData,
- historical_name={"GASP": 'INPROP.XNMAX', # maximum engine speed, rpm
- "FLOPS": None,
- "LEAPS1": None
- },
- units='rpm',
+ historical_name={
+ "GASP": 'INPROP.XNMAX', # maximum engine speed, rpm
+ "FLOPS": None,
+ "LEAPS1": None,
+ },
+ units='rpm',
desc='the designed output RPM from the engine for fixed-RPM shafts',
default_value=None,
)
@@ -2227,54 +2220,58 @@
add_meta_data(
Aircraft.Engine.SCALE_FACTOR,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='unitless',
desc='Thrust-based scaling factor used to scale engine performance data during '
- 'mission analysis',
- default_value=1.0
+ 'mission analysis',
+ default_value=1.0,
)
add_meta_data(
Aircraft.Engine.SCALE_MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": '(types)EngineScaleModes.WEIGHT'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None,
+ "LEAPS1": '(types)EngineScaleModes.WEIGHT',
+ },
desc='Toggle for enabling scaling of engine mass',
option=True,
types=bool,
+ multivalue=True,
default_value=True,
)
add_meta_data(
Aircraft.Engine.SCALE_PERFORMANCE,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": ['iengine.scale_mode',
- '(types)EngineScaleModes.DEFAULT',
- ]
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None,
+ "LEAPS1": [
+ 'iengine.scale_mode',
+ '(types)EngineScaleModes.DEFAULT',
+ ],
+ },
desc='Toggle for enabling scaling of engine performance including thrust, fuel flow, '
- 'and electric power',
+ 'and electric power',
option=True,
types=bool,
+ multivalue=True,
default_value=True,
)
add_meta_data(
Aircraft.Engine.SCALED_SLS_THRUST,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.THIN',
- "FLOPS": 'CONFIN.THRUST',
- "LEAPS1": ['aircraft.outputs.L0_propulsion.max_rated_thrust',
- 'aircraft.cached.L0_propulsion.max_rated_thrust',
- ]
- },
+ historical_name={
+ "GASP": 'INGASP.THIN',
+ "FLOPS": 'CONFIN.THRUST',
+ "LEAPS1": [
+ 'aircraft.outputs.L0_propulsion.max_rated_thrust',
+ 'aircraft.cached.L0_propulsion.max_rated_thrust',
+ ],
+ },
units='lbf',
desc='maximum thrust of an engine after scaling',
default_value=0.0,
@@ -2283,39 +2280,42 @@
add_meta_data(
Aircraft.Engine.STARTER_MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None, # '~WEIGHT.WSTART',
- "LEAPS1": '(WeightABC)self._starter_weight'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # '~WEIGHT.WSTART',
+ "LEAPS1": '(WeightABC)self._starter_weight',
+ },
units='lbm',
desc='starter mass',
- default_value=0.0
+ default_value=0.0,
)
add_meta_data(
Aircraft.Engine.SUBSONIC_FUEL_FLOW_SCALER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'ENGDIN.FFFSUB',
- "LEAPS1": 'aircraft.L0_fuel_flow.subsonic_factor'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'ENGDIN.FFFSUB',
+ "LEAPS1": 'aircraft.L0_fuel_flow.subsonic_factor',
+ },
units='unitless',
desc='scaling factor on fuel flow when Mach number is subsonic',
default_value=1.0,
- option=True
+ option=True,
)
add_meta_data(
Aircraft.Engine.SUPERSONIC_FUEL_FLOW_SCALER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'ENGDIN.FFFSUP',
- "LEAPS1": 'aircraft.L0_fuel_flow.supersonic_factor'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'ENGDIN.FFFSUP',
+ "LEAPS1": 'aircraft.L0_fuel_flow.supersonic_factor',
+ },
units='unitless',
desc='scaling factor on fuel flow when Mach number is supersonic',
default_value=1.0,
- option=True
+ option=True,
)
add_meta_data(
@@ -2323,13 +2323,15 @@
# - see also: Aircraft.Engine.THRUST_REVERSERS_MASS_SCALER
Aircraft.Engine.THRUST_REVERSERS_MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['WTS.WSP(11, 2)', '~WEIGHT.WTHR', '~WTSTAT.WSP(11, 2)', '~INERT.WTHR'],
- "FLOPS": None,
- "LEAPS1": ['(WeightABC)self._thrust_reversers_weight',
- 'aircraft.outputs.L0_weights_summary.thrust_reversers_weight',
- ]
- },
+ historical_name={
+ "GASP": None,
+ # ['WTS.WSP(11, 2)', '~WEIGHT.WTHR', '~WTSTAT.WSP(11, 2)', '~INERT.WTHR'],
+ "FLOPS": None,
+ "LEAPS1": [
+ '(WeightABC)self._thrust_reversers_weight',
+ 'aircraft.outputs.L0_weights_summary.thrust_reversers_weight',
+ ],
+ },
units='lbm',
desc='mass of thrust reversers on engines',
default_value=0.0,
@@ -2340,11 +2342,12 @@
# discarded
Aircraft.Engine.THRUST_REVERSERS_MASS_SCALER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['&DEFINE.WTIN.WTHR', 'MISWT.WTHR', 'MISWT.OTHR'],
- "FLOPS": 'WTIN.WTHR',
- "LEAPS1": 'aircraft.inputs.L0_overrides.thrust_reversers_weight'
- },
+ historical_name={
+ "GASP": None,
+ # ['&DEFINE.WTIN.WTHR', 'MISWT.WTHR', 'MISWT.OTHR'],
+ "FLOPS": 'WTIN.WTHR',
+ "LEAPS1": 'aircraft.inputs.L0_overrides.thrust_reversers_weight',
+ },
units='unitless',
desc='scaler for mass of thrust reversers on engines',
default_value=0.0, # FLOPS/LEAPS1 default value
@@ -2353,42 +2356,27 @@
add_meta_data(
Aircraft.Engine.TYPE,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.NTYE',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.NTYE', "FLOPS": None, "LEAPS1": None},
option=True,
default_value=GASPEngineType.TURBOJET,
- types=GASPEngineType,
- units="unitless",
- desc='specifies engine type used for engine mass calculation',
-)
-
-add_meta_data(
- Aircraft.Engine.USE_PROPELLER_MAP,
- meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
- option=True,
- default_value=False,
- types=bool,
+ types=(GASPEngineType, int, str),
+ multivalue=True,
units="unitless",
- desc='flag whether to use propeller map or Hamilton-Standard model.'
+ desc='specifies engine type used for GASP-based engine mass calculation',
)
add_meta_data(
Aircraft.Engine.WING_LOCATIONS,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.YP',
- "FLOPS": 'WTIN.ETAE', # ['&DEFINE.WTIN.ETAE', 'WDEF.ETAE'],
- "LEAPS1": 'aircraft.inputs.L0_propulsion.wing_engine_locations'
- },
+ historical_name={
+ "GASP": 'INGASP.YP',
+ "FLOPS": 'WTIN.ETAE', # ['&DEFINE.WTIN.ETAE', 'WDEF.ETAE'],
+ "LEAPS1": 'aircraft.inputs.L0_propulsion.wing_engine_locations',
+ },
units='unitless',
desc='Engine wing mount locations as fractions of semispan; (NUM_WING_ENGINES)/2 values '
- 'are input',
- default_value=np.array([0.0])
+ 'are input',
+ default_value=np.array([0.0]),
)
# ___ _
@@ -2400,20 +2388,15 @@
add_meta_data(
Aircraft.Engine.Gearbox.EFFICIENCY,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='unitless',
desc='The efficiency of the gearbox.',
- default_value=0.98,
+ default_value=1.0,
)
add_meta_data(
Aircraft.Engine.Gearbox.GEAR_RATIO,
meta_data=_MetaData,
- historical_name={"GASP": None, # 1 / INPROP.GR
- "FLOPS": None,
- "LEAPS1": None},
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None}, # 1 / INPROP.GR
units='unitless',
desc='Reduction gear ratio, or the ratio of the RPM_in divided by the RPM_out for the gearbox.',
default_value=1.0,
@@ -2422,11 +2405,8 @@
add_meta_data(
Aircraft.Engine.Gearbox.MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
- units='kg',
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
+ units='lbm',
desc='The mass of the gearbox.',
default_value=0,
)
@@ -2434,24 +2414,21 @@
add_meta_data(
Aircraft.Engine.Gearbox.SHAFT_POWER_DESIGN,
meta_data=_MetaData,
- historical_name={"GASP": 'INPROP.HPMSLS', # max sea level static horsepower, hp
- "FLOPS": None,
- "LEAPS1": None,
- },
- units='kW',
- desc='A guess for the maximum power that will be transmitted through the gearbox during the mission.',
+ historical_name={
+ "GASP": 'INPROP.HPMSLS', # max sea level static horsepower, hp
+ "FLOPS": None,
+ "LEAPS1": None,
+ },
+ units='hp',
+ desc='A guess for the maximum power that will be transmitted through the gearbox during the mission (max shp input).',
default_value=1.0,
- option=True
)
add_meta_data(
Aircraft.Engine.Gearbox.SPECIFIC_TORQUE,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
- units='N*m/kg',
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
+ units='lbf*ft/lbm',
desc='The specific torque of the gearbox, used to calculate gearbox mass. ',
default_value=100,
)
@@ -2466,7 +2443,7 @@
Aircraft.Engine.Motor.MASS,
meta_data=_MetaData,
historical_name={"GASP": 'WMOTOR', "FLOPS": None, "LEAPS1": None},
- units='kg',
+ units='lbm',
desc='Total motor mass (considers number of motors)',
default_value=0.0,
)
@@ -2474,15 +2451,123 @@
add_meta_data(
Aircraft.Engine.Motor.TORQUE_MAX,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
- units='N*m',
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
+ units='lbf*ft',
desc='Max torque value that can be output from a single motor. Used to determine '
- 'motor mass in pre-mission',
+ 'motor mass in pre-mission',
+)
+
+# ___ _ _
+# | _ \ _ _ ___ _ __ ___ | | | | ___ _ _
+# | _/ | '_| / _ \ | '_ \ / -_) | | | | / -_) | '_|
+# |_| |_| \___/ | .__/ \___| |_| |_| \___| |_|
+# |_|
+# ===================================================
+
+add_meta_data(
+ Aircraft.Engine.Propeller.ACTIVITY_FACTOR,
+ meta_data=_MetaData,
+ historical_name={"GASP": 'INPROP.AF', "FLOPS": None, "LEAPS1": None},
+ units="unitless",
+ desc='propeller actitivty factor per Blade (Range: 80 to 200)',
+ default_value=0.0,
+)
+
+# NOTE if FT < 0, this bool is true, if >= 0, this is false and the value of FT is used
+# as the installation loss factor
+add_meta_data(
+ Aircraft.Engine.Propeller.COMPUTE_INSTALLATION_LOSS,
+ meta_data=_MetaData,
+ historical_name={"GASP": 'INPROP.FT', "FLOPS": None, "LEAPS1": None},
+ units="unitless",
+ option=True,
+ default_value=True,
+ types=bool,
+ multivalue=True,
+ desc='if true, compute installation loss factor based on blockage factor',
+)
+
+add_meta_data(
+ Aircraft.Engine.Propeller.DATA_FILE,
+ meta_data=_MetaData,
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
+ units='unitless',
+ types=(str, Path),
+ default_value=None,
+ option=True,
+ desc='filepath to data file containing propeller data map',
+)
+
+add_meta_data(
+ Aircraft.Engine.Propeller.DIAMETER,
+ meta_data=_MetaData,
+ historical_name={"GASP": 'INPROP.DPROP', "FLOPS": None, "LEAPS1": None},
+ units='ft',
+ desc='propeller diameter',
+ default_value=0.0,
+)
+
+add_meta_data(
+ Aircraft.Engine.Propeller.INTEGRATED_LIFT_COEFFICIENT,
+ meta_data=_MetaData,
+ historical_name={"GASP": 'INPROP.CLI', "FLOPS": None, "LEAPS1": None},
+ units='unitless',
+ desc='propeller blade integrated design lift coefficient (Range: 0.3 to 0.8)',
+ default_value=0.5,
+)
+
+add_meta_data(
+ Aircraft.Engine.Propeller.NUM_BLADES,
+ meta_data=_MetaData,
+ historical_name={"GASP": 'INPROP.BL', "FLOPS": None, "LEAPS1": None},
+ units='unitless',
+ desc='number of blades per propeller',
+ option=True,
+ types=(int, np.ndarray),
+ multivalue=True,
+ default_value=0
+)
+
+add_meta_data(
+ Aircraft.Engine.Propeller.TIP_MACH_MAX,
+ meta_data=_MetaData,
+ historical_name={
+ "GASP": None, # TODO this needs verification
+ "FLOPS": None,
+ "LEAPS1": None,
+ },
+ units='unitless',
+ desc='maximum allowable Mach number at propeller tip (based on helical speed)',
+ default_value=1.0,
+)
+
+add_meta_data(
+ Aircraft.Engine.Propeller.TIP_SPEED_MAX,
+ meta_data=_MetaData,
+ historical_name={
+ "GASP": ['INPROP.TSPDMX', 'INPROP.TPSPDMXe'],
+ "FLOPS": None,
+ "LEAPS1": None,
+ },
+ units='ft/s',
+ desc='maximum allowable propeller linear tip speed',
+ default_value=800.0,
)
+# add_meta_data(
+# Aircraft.Engine.USE_PROPELLER_MAP,
+# meta_data=_MetaData,
+# historical_name={"GASP": None,
+# "FLOPS": None,
+# "LEAPS1": None
+# },
+# option=True,
+# default_value=False,
+# types=bool,
+# units="unitless",
+# desc='flag whether to use propeller map or Hamilton-Standard model.'
+# )
+
# ______ _
# | ____| (_)
# | |__ _ _ __ ___
@@ -2494,10 +2579,11 @@
add_meta_data(
Aircraft.Fins.AREA,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.SFIN', # ['&DEFINE.WTIN.SFIN', 'WTS.SFIN'],
- "LEAPS1": 'aircraft.inputs.L0_fins.area'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.SFIN', # ['&DEFINE.WTIN.SFIN', 'WTS.SFIN'],
+ "LEAPS1": 'aircraft.inputs.L0_fins.area',
+ },
units='ft**2',
desc='vertical fin theoretical area',
default_value=0.0,
@@ -2508,13 +2594,15 @@
# - see also: Aircraft.Fins.MASS_SCALER
Aircraft.Fins.MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['WTS.WSP(4, 2)', '~WEIGHT.WFIN', '~WTSTAT.WSP(4, 2)'],
- "FLOPS": None,
- "LEAPS1": ['(WeightABC)self._wing_vertical_fin_weight',
- 'aircraft.outputs.L0_weights_summary.wing_vertical_fin_weight',
- ]
- },
+ historical_name={
+ "GASP": None,
+ # ['WTS.WSP(4, 2)', '~WEIGHT.WFIN', '~WTSTAT.WSP(4, 2)'],
+ "FLOPS": None,
+ "LEAPS1": [
+ '(WeightABC)self._wing_vertical_fin_weight',
+ 'aircraft.outputs.L0_weights_summary.wing_vertical_fin_weight',
+ ],
+ },
units='lbm',
desc='mass of vertical fins',
default_value=None,
@@ -2523,10 +2611,11 @@
add_meta_data(
Aircraft.Fins.MASS_SCALER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.FRFIN', # ['&DEFINE.WTIN.FRFIN', 'WTS.FRFIN'],
- "LEAPS1": 'aircraft.inputs.L0_overrides.wing_vertical_fin_weight'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.FRFIN', # ['&DEFINE.WTIN.FRFIN', 'WTS.FRFIN'],
+ "LEAPS1": 'aircraft.inputs.L0_overrides.wing_vertical_fin_weight',
+ },
units='unitless',
desc='mass scaler for fin structure',
default_value=1.0,
@@ -2535,10 +2624,11 @@
add_meta_data(
Aircraft.Fins.NUM_FINS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.NFIN', # ['&DEFINE.WTIN.NFIN', 'WTS.NFIN'],
- "LEAPS1": 'aircraft.inputs.L0_fins.fin_count'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.NFIN', # ['&DEFINE.WTIN.NFIN', 'WTS.NFIN'],
+ "LEAPS1": 'aircraft.inputs.L0_fins.fin_count',
+ },
units='unitless',
desc='number of fins',
types=int,
@@ -2549,10 +2639,11 @@
add_meta_data(
Aircraft.Fins.TAPER_RATIO,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.TRFIN', # ['&DEFINE.WTIN.TRFIN', 'WTS.TRFIN'],
- "LEAPS1": 'aircraft.inputs.L0_fins.taper_ratio'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.TRFIN', # ['&DEFINE.WTIN.TRFIN', 'WTS.TRFIN'],
+ "LEAPS1": 'aircraft.inputs.L0_fins.taper_ratio',
+ },
units='unitless',
desc='vertical fin theoretical taper ratio',
default_value=None,
@@ -2569,10 +2660,11 @@
add_meta_data(
Aircraft.Fuel.AUXILIARY_FUEL_CAPACITY,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.FULAUX', # ['&DEFINE.WTIN.FULAUX', 'FAWT.FULAUX'],
- "LEAPS1": 'aircraft.inputs.L0_fuel.aux_capacity'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.FULAUX', # ['&DEFINE.WTIN.FULAUX', 'FAWT.FULAUX'],
+ "LEAPS1": 'aircraft.inputs.L0_fuel.aux_capacity',
+ },
units='lbm',
desc='fuel capacity of the auxiliary tank',
default_value=None,
@@ -2581,10 +2673,7 @@
add_meta_data(
Aircraft.Fuel.BURN_PER_PASSENGER_MILE,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='lbm/NM',
desc='average fuel burn per passenger per mile flown',
)
@@ -2592,10 +2681,11 @@
add_meta_data(
Aircraft.Fuel.CAPACITY_FACTOR,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None, # 'MISWT.FWMAX',
- "LEAPS1": '(WeightABC)self._wing_fuel_capacity_factor'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # 'MISWT.FWMAX',
+ "LEAPS1": '(WeightABC)self._wing_fuel_capacity_factor',
+ },
units='unitless',
desc='fuel capacity factor',
default_value=23.0,
@@ -2604,10 +2694,7 @@
add_meta_data(
Aircraft.Fuel.DENSITY,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.FUELD',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.FUELD', "FLOPS": None, "LEAPS1": None},
units='lbm/galUS',
desc='fuel density',
default_value=6.687,
@@ -2617,28 +2704,26 @@
add_meta_data(
Aircraft.Fuel.DENSITY_RATIO,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.FULDEN', # ['&DEFINE.WTIN.FULDEN', 'UPFUEL.FULDEN'],
- "LEAPS1": 'aircraft.inputs.L0_fuel.density_ratio'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.FULDEN', # ['&DEFINE.WTIN.FULDEN', 'UPFUEL.FULDEN'],
+ "LEAPS1": 'aircraft.inputs.L0_fuel.density_ratio',
+ },
units='unitless',
desc='Fuel density ratio for alternate fuels compared to jet fuel (typical '
- 'density of 6.7 lbm/gal), used in the calculation of wing_capacity (if '
- 'wing_capacity is not input) and in the calculation of fuel system '
- 'weight.',
+ 'density of 6.7 lbm/gal), used in the calculation of wing_capacity (if '
+ 'wing_capacity is not input) and in the calculation of fuel system '
+ 'weight.',
default_value=1.0,
)
add_meta_data(
Aircraft.Fuel.FUEL_MARGIN,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.FVOL_MRG',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.FVOL_MRG', "FLOPS": None, "LEAPS1": None},
units='unitless', # percent
desc='excess fuel volume required, essentially the amount of fuel above '
- 'the design point that there has to be volume to carry',
+ 'the design point that there has to be volume to carry',
)
add_meta_data(
@@ -2646,13 +2731,15 @@
# - see also: Aircraft.Fuel.FUEL_SYSTEM_MASS_SCALER
Aircraft.Fuel.FUEL_SYSTEM_MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['WTS.WSP(13, 2)', '~WEIGHT.WFSYS', '~WTSTAT.WSP(13, 2)'],
- "FLOPS": None,
- "LEAPS1": ['(WeightABC)self._fuel_sys_weight',
- 'aircraft.outputs.L0_weights_summary.fuel_sys_weight',
- ]
- },
+ historical_name={
+ "GASP": None,
+ # ['WTS.WSP(13, 2)', '~WEIGHT.WFSYS', '~WTSTAT.WSP(13, 2)'],
+ "FLOPS": None,
+ "LEAPS1": [
+ '(WeightABC)self._fuel_sys_weight',
+ 'aircraft.outputs.L0_weights_summary.fuel_sys_weight',
+ ],
+ },
units='lbm',
desc='fuel system mass',
default_value=None,
@@ -2661,10 +2748,7 @@
add_meta_data(
Aircraft.Fuel.FUEL_SYSTEM_MASS_COEFFICIENT,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.SKFS',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.SKFS', "FLOPS": None, "LEAPS1": None},
units="unitless",
desc='mass trend coefficient of fuel system',
)
@@ -2672,11 +2756,12 @@
add_meta_data(
Aircraft.Fuel.FUEL_SYSTEM_MASS_SCALER,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.CK21',
- # ['&DEFINE.WTIN.WFSYS', 'MISWT.WFSYS', 'MISWT.OFSYS'],
- "FLOPS": 'WTIN.WFSYS',
- "LEAPS1": 'aircraft.inputs.L0_overrides.fuel_sys_weight'
- },
+ historical_name={
+ "GASP": 'INGASP.CK21',
+ # ['&DEFINE.WTIN.WFSYS', 'MISWT.WFSYS', 'MISWT.OFSYS'],
+ "FLOPS": 'WTIN.WFSYS',
+ "LEAPS1": 'aircraft.inputs.L0_overrides.fuel_sys_weight',
+ },
units='unitless',
desc='scaler for fuel system mass',
default_value=1.0,
@@ -2685,13 +2770,15 @@
add_meta_data(
Aircraft.Fuel.FUSELAGE_FUEL_CAPACITY,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['&DEFINE.WTIN.FULFMX', 'WTS.FULFMX', '~WEIGHT.FUFU'],
- "FLOPS": 'WTIN.FULFMX',
- "LEAPS1": ['aircraft.inputs.L0_fuel.fuselage_capacity',
- '(WeightABC)self._fuselage_fuel_capacity'
- ]
- },
+ historical_name={
+ "GASP": None,
+ # ['&DEFINE.WTIN.FULFMX', 'WTS.FULFMX', '~WEIGHT.FUFU'],
+ "FLOPS": 'WTIN.FULFMX',
+ "LEAPS1": [
+ 'aircraft.inputs.L0_fuel.fuselage_capacity',
+ '(WeightABC)self._fuselage_fuel_capacity',
+ ],
+ },
units='lbm',
desc='fuel capacity of the fuselage',
default_value=None,
@@ -2700,10 +2787,11 @@
add_meta_data(
Aircraft.Fuel.NUM_TANKS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.NTANK', # ['&DEFINE.WTIN.NTANK', 'WTS.NTANK'],
- "LEAPS1": 'aircraft.inputs.L0_fuel.tank_count'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.NTANK', # ['&DEFINE.WTIN.NTANK', 'WTS.NTANK'],
+ "LEAPS1": 'aircraft.inputs.L0_fuel.tank_count',
+ },
units='unitless',
desc='number of fuel tanks',
types=int,
@@ -2714,32 +2802,36 @@
add_meta_data(
Aircraft.Fuel.TOTAL_CAPACITY,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.FMXTOT', # ['&DEFINE.WTIN.FMXTOT', 'PLRNG.FMXTOT'],
- "LEAPS1": ['aircraft.inputs.L0_fuel.total_capacity',
- 'aircraft.cached.L0_fuel.total_capacity',
- ]
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.FMXTOT', # ['&DEFINE.WTIN.FMXTOT', 'PLRNG.FMXTOT'],
+ "LEAPS1": [
+ 'aircraft.inputs.L0_fuel.total_capacity',
+ 'aircraft.cached.L0_fuel.total_capacity',
+ ],
+ },
units='lbm',
desc='Total fuel capacity of the aircraft including wing, fuselage and '
- 'auxiliary tanks. Used in generating payload-range diagram (Default = '
- 'wing_capacity + fuselage_capacity + aux_capacity)',
+ 'auxiliary tanks. Used in generating payload-range diagram (Default = '
+ 'wing_capacity + fuselage_capacity + aux_capacity)',
default_value=None,
)
add_meta_data(
Aircraft.Fuel.TOTAL_VOLUME,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None, # '~WEIGHT.ZFEQ',
- "LEAPS1": ['(WeightABC)self._total_fuel_vol',
- '~WeightABC.calc_unusable_fuel.total_fuel_vol',
- '~WeightABC._pre_unusable_fuel.total_fuel_vol',
- '~BasicTransportWeight._pre_unusable_fuel.total_fuel_vol',
- ]
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # '~WEIGHT.ZFEQ',
+ "LEAPS1": [
+ '(WeightABC)self._total_fuel_vol',
+ '~WeightABC.calc_unusable_fuel.total_fuel_vol',
+ '~WeightABC._pre_unusable_fuel.total_fuel_vol',
+ '~BasicTransportWeight._pre_unusable_fuel.total_fuel_vol',
+ ],
+ },
units='galUS', # need to check this
- desc='Total fuel volume'
+ desc='Total fuel volume',
)
add_meta_data(
@@ -2747,13 +2839,15 @@
# - see also: Aircraft.Fuel.UNUSABLE_FUEL_MASS_SCALER
Aircraft.Fuel.UNUSABLE_FUEL_MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['WTS.WSP(29, 2)', '~WEIGHT.WUF', '~WTSTAT.WSP(29, 2)', '~INERT.WUF'],
- "FLOPS": None,
- "LEAPS1": ['(WeightABC)self._unusable_fuel_weight',
- 'aircraft.outputs.L0_weights_summary.unusable_fuel_weight',
- ]
- },
+ historical_name={
+ "GASP": None,
+ # ['WTS.WSP(29, 2)', '~WEIGHT.WUF', '~WTSTAT.WSP(29, 2)', '~INERT.WUF'],
+ "FLOPS": None,
+ "LEAPS1": [
+ '(WeightABC)self._unusable_fuel_weight',
+ 'aircraft.outputs.L0_weights_summary.unusable_fuel_weight',
+ ],
+ },
units='lbm',
desc='unusable fuel mass',
default_value=None,
@@ -2762,10 +2856,7 @@
add_meta_data(
Aircraft.Fuel.UNUSABLE_FUEL_MASS_COEFFICIENT,
meta_data=_MetaData,
- historical_name={"GASP": "INGASP.CW(13)",
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": "INGASP.CW(13)", "FLOPS": None, "LEAPS1": None},
default_value=6.0,
units="unitless",
desc='mass trend coefficient of trapped fuel factor',
@@ -2774,11 +2865,12 @@
add_meta_data(
Aircraft.Fuel.UNUSABLE_FUEL_MASS_SCALER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['&DEFINE.WTIN.WUF', 'MISWT.WUF', 'MISWT.OUF'],
- "FLOPS": 'WTIN.WUF',
- "LEAPS1": 'aircraft.inputs.L0_overrides.unusable_fuel_weight'
- },
+ historical_name={
+ "GASP": None,
+ # ['&DEFINE.WTIN.WUF', 'MISWT.WUF', 'MISWT.OUF'],
+ "FLOPS": 'WTIN.WUF',
+ "LEAPS1": 'aircraft.inputs.L0_overrides.unusable_fuel_weight',
+ },
units='unitless',
desc='scaler for Unusable fuel mass',
default_value=1.0,
@@ -2787,10 +2879,11 @@
add_meta_data(
Aircraft.Fuel.WING_FUEL_CAPACITY,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.FULWMX', # ['&DEFINE.WTIN.FULWMX', 'WTS.FULWMX'],
- "LEAPS1": 'aircraft.inputs.L0_fuel.wing_capacity'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.FULWMX', # ['&DEFINE.WTIN.FULWMX', 'WTS.FULWMX'],
+ "LEAPS1": 'aircraft.inputs.L0_fuel.wing_capacity',
+ },
units='lbm',
desc='fuel capacity of the auxiliary tank',
default_value=None,
@@ -2799,10 +2892,7 @@
add_meta_data(
Aircraft.Fuel.WING_FUEL_FRACTION,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.SKWF',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.SKWF', "FLOPS": None, "LEAPS1": None},
units='unitless',
desc='fraction of total theoretical wing volume used for wing fuel',
)
@@ -2810,10 +2900,11 @@
add_meta_data(
Aircraft.Fuel.WING_REF_CAPACITY,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.FUELRF', # ['&DEFINE.WTIN.FUELRF', 'WPAB.FUELRF'],
- "LEAPS1": 'aircraft.inputs.L0_fuel.wing_ref_capacity'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.FUELRF', # ['&DEFINE.WTIN.FUELRF', 'WPAB.FUELRF'],
+ "LEAPS1": 'aircraft.inputs.L0_fuel.wing_ref_capacity',
+ },
units='lbm', # TODO FLOPS says lbm, sfwate.f line 827
desc='reference fuel volume',
default_value=0.0,
@@ -2822,10 +2913,11 @@
add_meta_data(
Aircraft.Fuel.WING_REF_CAPACITY_AREA,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.FSWREF', # ['&DEFINE.WTIN.FSWREF', 'WPAB.FSWREF'],
- "LEAPS1": 'aircraft.inputs.L0_fuel.wing_ref_capacity_area'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.FSWREF', # ['&DEFINE.WTIN.FSWREF', 'WPAB.FSWREF'],
+ "LEAPS1": 'aircraft.inputs.L0_fuel.wing_ref_capacity_area',
+ },
units='unitless', # TODO FLOPS says unitless, sfwate.f line 828
desc='reference wing area for fuel capacity',
default_value=0.0,
@@ -2834,10 +2926,11 @@
add_meta_data(
Aircraft.Fuel.WING_REF_CAPACITY_TERM_A,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.FUSCLA', # ['&DEFINE.WTIN.FUSCLA', 'WPAB.FUSCLA'],
- "LEAPS1": 'aircraft.inputs.L0_fuel.wing_ref_capacity_1_5_term'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.FUSCLA', # ['&DEFINE.WTIN.FUSCLA', 'WPAB.FUSCLA'],
+ "LEAPS1": 'aircraft.inputs.L0_fuel.wing_ref_capacity_1_5_term',
+ },
units='unitless',
desc='scaling factor A',
default_value=0.0,
@@ -2846,10 +2939,11 @@
add_meta_data(
Aircraft.Fuel.WING_REF_CAPACITY_TERM_B,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.FUSCLB', # ['&DEFINE.WTIN.FUSCLB', 'WPAB.FUSCLB'],
- "LEAPS1": 'aircraft.inputs.L0_fuel.wing_ref_capacity_linear_term'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.FUSCLB', # ['&DEFINE.WTIN.FUSCLB', 'WPAB.FUSCLB'],
+ "LEAPS1": 'aircraft.inputs.L0_fuel.wing_ref_capacity_linear_term',
+ },
units='unitless',
desc='scaling factor B',
default_value=0.0,
@@ -2872,10 +2966,7 @@
add_meta_data(
Aircraft.Fuel.WING_VOLUME_DESIGN,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.FVOLW_DES',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.FVOLW_DES', "FLOPS": None, "LEAPS1": None},
units='ft**3',
desc='wing tank fuel volume when carrying design fuel plus fuel margin',
)
@@ -2883,10 +2974,7 @@
add_meta_data(
Aircraft.Fuel.WING_VOLUME_GEOMETRIC_MAX,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.FVOLW_GEOM',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.FVOLW_GEOM', "FLOPS": None, "LEAPS1": None},
units='ft**3',
desc='wing tank fuel volume based on geometry',
)
@@ -2894,10 +2982,7 @@
add_meta_data(
Aircraft.Fuel.WING_VOLUME_STRUCTURAL_MAX,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.FVOLW_MAX',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.FVOLW_MAX', "FLOPS": None, "LEAPS1": None},
units='ft**3',
desc='wing tank volume based on maximum wing fuel weight',
)
@@ -2919,13 +3004,15 @@
# - see also: Aircraft.Furnishings.MASS_SCALER
Aircraft.Furnishings.MASS,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.CW(8)',
- # ['WTS.WSP(22, 2)', '~WEIGHT.WFURN', '~WTSTAT.WSP(22, 2)'],
- "FLOPS": None,
- "LEAPS1": ['(WeightABC)self._furnishings_group_weight',
- 'aircraft.outputs.L0_weights_summary.furnishings_group_weight',
- ]
- },
+ historical_name={
+ "GASP": 'INGASP.CW(8)',
+ # ['WTS.WSP(22, 2)', '~WEIGHT.WFURN', '~WTSTAT.WSP(22, 2)'],
+ "FLOPS": None,
+ "LEAPS1": [
+ '(WeightABC)self._furnishings_group_weight',
+ 'aircraft.outputs.L0_weights_summary.furnishings_group_weight',
+ ],
+ },
units='lbm',
desc='Total furnishings system mass',
default_value=None,
@@ -2934,22 +3021,20 @@
add_meta_data(
Aircraft.Furnishings.MASS_BASE,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='lbm',
- desc='Base furnishings system mass without additional 1% empty mass'
+ desc='Base furnishings system mass without additional 1% empty mass',
)
add_meta_data(
Aircraft.Furnishings.MASS_SCALER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['&DEFINE.WTIN.WFURN', 'MISWT.WFURN', 'MISWT.OFURN'],
- "FLOPS": 'WTIN.WFURN',
- "LEAPS1": 'aircraft.inputs.L0_overrides.furnishings_group_weight'
- },
+ historical_name={
+ "GASP": None,
+ # ['&DEFINE.WTIN.WFURN', 'MISWT.WFURN', 'MISWT.OFURN'],
+ "FLOPS": 'WTIN.WFURN',
+ "LEAPS1": 'aircraft.inputs.L0_overrides.furnishings_group_weight',
+ },
units='unitless',
desc='Furnishings system mass scaler',
default_value=1.0,
@@ -2968,10 +3053,7 @@
add_meta_data(
Aircraft.Fuselage.AISLE_WIDTH,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.WAS',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.WAS', "FLOPS": None, "LEAPS1": None},
units='inch',
desc='width of the aisles in the passenger cabin',
option=True,
@@ -2983,45 +3065,46 @@
add_meta_data(
Aircraft.Fuselage.AVG_DIAMETER,
meta_data=_MetaData,
- historical_name={"GASP": ['INGASP.WC', 'INGASP.SWF'],
- "FLOPS": None, # 'EDETIN.XD',
- "LEAPS1": 'aircraft.outputs.L0_fuselage.avg_diam'
- },
+ historical_name={
+ "GASP": ['INGASP.WC', 'INGASP.SWF'],
+ "FLOPS": None, # 'EDETIN.XD',
+ "LEAPS1": 'aircraft.outputs.L0_fuselage.avg_diam',
+ },
units='ft',
- desc='average fuselage diameter'
+ desc='average fuselage diameter',
)
add_meta_data(
Aircraft.Fuselage.CHARACTERISTIC_LENGTH,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None, # 'MISSA.EL[4]',
- "LEAPS1": ['aircraft.outputs.L0_aerodynamics.mission_component_char_len_table[3]',
- 'aircraft.cached.L0_aerodynamics.mission_component_char_len_table[3]',
- ]
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # 'MISSA.EL[4]',
+ "LEAPS1": [
+ 'aircraft.outputs.L0_aerodynamics.mission_component_char_len_table[3]',
+ 'aircraft.cached.L0_aerodynamics.mission_component_char_len_table[3]',
+ ],
+ },
units='ft',
- desc='Reynolds characteristic length for the fuselage'
+ desc='Reynolds characteristic length for the fuselage',
)
add_meta_data(
Aircraft.Fuselage.CROSS_SECTION,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None, # ['MISSA.SPI', '~CDCC.SPI'],
- "LEAPS1": 'aircraft.outputs.L0_fuselage.mission_cross_sect_area'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # ['MISSA.SPI', '~CDCC.SPI'],
+ "LEAPS1": 'aircraft.outputs.L0_fuselage.mission_cross_sect_area',
+ },
units='ft**2',
- desc='fuselage cross sectional area'
+ desc='fuselage cross sectional area',
)
add_meta_data(
Aircraft.Fuselage.DELTA_DIAMETER,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.HCK',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.HCK', "FLOPS": None, "LEAPS1": None},
units='ft',
desc='mean fuselage cabin diameter minus mean fuselage nose diameter',
default_value=4.5,
@@ -3030,34 +3113,34 @@
add_meta_data(
Aircraft.Fuselage.DIAMETER_TO_WING_SPAN,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None, # ['MISSA.DB', '~CDCC.DB'],
- "LEAPS1": 'aircraft.outputs.L0_fuselage.mission_diam_to_wing_span_ratio'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # ['MISSA.DB', '~CDCC.DB'],
+ "LEAPS1": 'aircraft.outputs.L0_fuselage.mission_diam_to_wing_span_ratio',
+ },
units='unitless',
- desc='fuselage diameter to wing span ratio'
+ desc='fuselage diameter to wing span ratio',
)
add_meta_data(
Aircraft.Fuselage.FINENESS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None, # 'MISSA.FR[4]',
- "LEAPS1": ['aircraft.outputs.L0_aerodynamics.mission_fineness_ratio_table[3]',
- 'aircraft.cached.L0_aerodynamics.mission_fineness_ratio_table[3]',
- ]
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # 'MISSA.FR[4]',
+ "LEAPS1": [
+ 'aircraft.outputs.L0_aerodynamics.mission_fineness_ratio_table[3]',
+ 'aircraft.cached.L0_aerodynamics.mission_fineness_ratio_table[3]',
+ ],
+ },
units='unitless',
- desc='fuselage fineness ratio'
+ desc='fuselage fineness ratio',
)
add_meta_data(
Aircraft.Fuselage.FLAT_PLATE_AREA_INCREMENT,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.DELFE',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.DELFE', "FLOPS": None, "LEAPS1": None},
units='ft**2',
desc='increment to fuselage flat plate area',
)
@@ -3065,22 +3148,20 @@
add_meta_data(
Aircraft.Fuselage.FORM_FACTOR,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.CKF',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.CKF', "FLOPS": None, "LEAPS1": None},
units='unitless',
desc='fuselage form factor',
- default_value=1
+ default_value=1,
)
add_meta_data(
Aircraft.Fuselage.LAMINAR_FLOW_LOWER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'AERIN.TRLB', # ['&DEFINE.AERIN.TRLB', 'XLAM.TRLB', ],
- "LEAPS1": 'aircraft.inputs.L0_aerodynamics.fuselage_percent_laminar_flow_lower_surface'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'AERIN.TRLB', # ['&DEFINE.AERIN.TRLB', 'XLAM.TRLB', ],
+ "LEAPS1": 'aircraft.inputs.L0_aerodynamics.fuselage_percent_laminar_flow_lower_surface',
+ },
units='unitless',
desc='define percent laminar flow for fuselage lower surface',
default_value=0.0,
@@ -3089,10 +3170,11 @@
add_meta_data(
Aircraft.Fuselage.LAMINAR_FLOW_UPPER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'AERIN.TRUB', # ['&DEFINE.AERIN.TRUB', 'XLAM.TRUB', ],
- "LEAPS1": 'aircraft.inputs.L0_aerodynamics.fuselage_percent_laminar_flow_upper_surface'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'AERIN.TRUB', # ['&DEFINE.AERIN.TRUB', 'XLAM.TRUB', ],
+ "LEAPS1": 'aircraft.inputs.L0_aerodynamics.fuselage_percent_laminar_flow_upper_surface',
+ },
units='unitless',
desc='define percent laminar flow for fuselage upper surface',
default_value=0.0,
@@ -3102,35 +3184,38 @@
add_meta_data(
Aircraft.Fuselage.LENGTH,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.ELF',
- "FLOPS": 'WTIN.XL',
- # [ # inputs
- # '&DEFINE.WTIN.XL', 'WTS.XL',
- # # outputs
- # 'EDETIN.BL', '~DEFAER.BL',
- # ],
- "LEAPS1": ['aircraft.inputs.L0_fuselage.total_length',
- 'aircraft.outputs.L0_fuselage.total_length',
- # other
- 'aircraft.cached.L0_fuselage.total_length',
- ]
- },
+ historical_name={
+ "GASP": 'INGASP.ELF',
+ "FLOPS": 'WTIN.XL',
+ # [ # inputs
+ # '&DEFINE.WTIN.XL', 'WTS.XL',
+ # # outputs
+ # 'EDETIN.BL', '~DEFAER.BL',
+ # ],
+ "LEAPS1": [
+ 'aircraft.inputs.L0_fuselage.total_length',
+ 'aircraft.outputs.L0_fuselage.total_length',
+ # other
+ 'aircraft.cached.L0_fuselage.total_length',
+ ],
+ },
units='ft',
desc='Define the Fuselage total length. If total_length is not input for a '
- 'passenger transport, LEAPS will calculate the fuselage length, width and '
- 'depth and the length of the passenger compartment.',
+ 'passenger transport, LEAPS will calculate the fuselage length, width and '
+ 'depth and the length of the passenger compartment.',
default_value=0.0,
)
add_meta_data(
Aircraft.Fuselage.LENGTH_TO_DIAMETER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None, # ['MISSA.BODYLD', '~CDCC.BODYLD'],
- "LEAPS1": 'aircraft.outputs.L0_fuselage.mission_len_to_diam_ratio'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # ['MISSA.BODYLD', '~CDCC.BODYLD'],
+ "LEAPS1": 'aircraft.outputs.L0_fuselage.mission_len_to_diam_ratio',
+ },
units='unitless',
- desc='fuselage length to diameter ratio'
+ desc='fuselage length to diameter ratio',
)
add_meta_data(
@@ -3138,13 +3223,15 @@
# - see also: Aircraft.Fuselage.MASS_SCALER
Aircraft.Fuselage.MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['WTS.WSP(6, 2)', '~WEIGHT.WFUSE', '~WTSTAT.WSP(6, 2)', '~INERT.WFUSE', ],
- "FLOPS": None,
- "LEAPS1": ['(WeightABC)self._fuselage_weight',
- 'aircraft.outputs.L0_weights_summary.fuselage_weight',
- ]
- },
+ historical_name={
+ "GASP": None,
+ # ['WTS.WSP(6, 2)', '~WEIGHT.WFUSE', '~WTSTAT.WSP(6, 2)', '~INERT.WFUSE', ],
+ "FLOPS": None,
+ "LEAPS1": [
+ '(WeightABC)self._fuselage_weight',
+ 'aircraft.outputs.L0_weights_summary.fuselage_weight',
+ ],
+ },
units='lbm',
desc='mass of the fuselage structure',
default_value=None,
@@ -3153,10 +3240,7 @@
add_meta_data(
Aircraft.Fuselage.MASS_COEFFICIENT,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.SKB',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.SKB', "FLOPS": None, "LEAPS1": None},
units="unitless",
desc='mass trend coefficient of fuselage',
default_value=136,
@@ -3165,10 +3249,11 @@
add_meta_data(
Aircraft.Fuselage.MASS_SCALER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.FRFU', # ['&DEFINE.WTIN.FRFU', 'WTS.FRFU'],
- "LEAPS1": 'aircraft.inputs.L0_overrides.fuselage_weight'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.FRFU', # ['&DEFINE.WTIN.FRFU', 'WTS.FRFU'],
+ "LEAPS1": 'aircraft.inputs.L0_overrides.fuselage_weight',
+ },
units='unitless',
desc='mass scaler of the fuselage structure',
default_value=1.0,
@@ -3177,30 +3262,33 @@
add_meta_data(
Aircraft.Fuselage.MAX_HEIGHT,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.DF', # ['&DEFINE.WTIN.DF', 'WTS.DF'],
- "LEAPS1": 'aircraft.inputs.L0_fuselage.max_height'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.DF', # ['&DEFINE.WTIN.DF', 'WTS.DF'],
+ "LEAPS1": 'aircraft.inputs.L0_fuselage.max_height',
+ },
units='ft',
- desc='maximum fuselage height'
+ desc='maximum fuselage height',
)
add_meta_data(
Aircraft.Fuselage.MAX_WIDTH,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.WF',
- # [ # inputs
- # '&DEFINE.WTIN.WF', 'WTS.WF',
- # # outputs
- # 'MIMOD.FWID',
- # ],
- "LEAPS1": ['aircraft.inputs.L0_fuselage.max_width',
- 'aircraft.outputs.L0_fuselage.max_width',
- # other
- 'aircraft.cached.L0_fuselage.max_width',
- ]
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.WF',
+ # [ # inputs
+ # '&DEFINE.WTIN.WF', 'WTS.WF',
+ # # outputs
+ # 'MIMOD.FWID',
+ # ],
+ "LEAPS1": [
+ 'aircraft.inputs.L0_fuselage.max_width',
+ 'aircraft.outputs.L0_fuselage.max_width',
+ # other
+ 'aircraft.cached.L0_fuselage.max_width',
+ ],
+ },
units='ft',
desc='maximum fuselage width',
default_value=0.0,
@@ -3210,12 +3298,14 @@
add_meta_data(
Aircraft.Fuselage.MILITARY_CARGO_FLOOR,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.CARGF', # ['&DEFINE.WTIN.CARGF', 'WTS.CARGF'],
- "LEAPS1": ['aircraft.inputs.L0_crew_and_payload.military_cargo',
- 'aircraft.cached.L0_crew_and_payload.military_cargo',
- ]
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.CARGF', # ['&DEFINE.WTIN.CARGF', 'WTS.CARGF'],
+ "LEAPS1": [
+ 'aircraft.inputs.L0_crew_and_payload.military_cargo',
+ 'aircraft.cached.L0_crew_and_payload.military_cargo',
+ ],
+ },
units='unitless',
desc='indicate whether or not there is a military cargo aircraft floor',
option=True,
@@ -3226,10 +3316,7 @@
add_meta_data(
Aircraft.Fuselage.NOSE_FINENESS,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.ELODN',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.ELODN', "FLOPS": None, "LEAPS1": None},
units="unitless",
desc='length to diameter ratio of nose cone',
default_value=1,
@@ -3238,10 +3325,7 @@
add_meta_data(
Aircraft.Fuselage.NUM_AISLES,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.AS',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.AS', "FLOPS": None, "LEAPS1": None},
units="unitless",
desc='number of aisles in the passenger cabin',
types=int,
@@ -3252,14 +3336,16 @@
add_meta_data(
Aircraft.Fuselage.NUM_FUSELAGES,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['&DEFINE.WTIN.NFUSE', 'EDETIN.NFUSE', '~WWGHT.NFUSE'],
- "FLOPS": 'WTIN.NFUSE',
- "LEAPS1": ['aircraft.inputs.L0_fuselage.count',
- # other
- 'aircraft.cached.L0_fuselage.count',
- ]
- },
+ historical_name={
+ "GASP": None,
+ # ['&DEFINE.WTIN.NFUSE', 'EDETIN.NFUSE', '~WWGHT.NFUSE'],
+ "FLOPS": 'WTIN.NFUSE',
+ "LEAPS1": [
+ 'aircraft.inputs.L0_fuselage.count',
+ # other
+ 'aircraft.cached.L0_fuselage.count',
+ ],
+ },
units='unitless',
desc='number of fuselages',
types=int,
@@ -3270,10 +3356,7 @@
add_meta_data(
Aircraft.Fuselage.NUM_SEATS_ABREAST,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.SAB',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.SAB', "FLOPS": None, "LEAPS1": None},
units="unitless",
desc='seats abreast in fuselage',
types=int,
@@ -3284,12 +3367,14 @@
add_meta_data(
Aircraft.Fuselage.PASSENGER_COMPARTMENT_LENGTH,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.XLP', # ['&DEFINE.WTIN.XLP', 'WTS.XLP'],
- "LEAPS1": ['aircraft.inputs.L0_fuselage.passenger_compartment_length',
- 'aircraft.cached.L0_fuselage.passenger_compartment_length',
- ]
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.XLP', # ['&DEFINE.WTIN.XLP', 'WTS.XLP'],
+ "LEAPS1": [
+ 'aircraft.inputs.L0_fuselage.passenger_compartment_length',
+ 'aircraft.cached.L0_fuselage.passenger_compartment_length',
+ ],
+ },
units='ft',
desc='length of passenger compartment',
default_value=0.0,
@@ -3298,10 +3383,7 @@
add_meta_data(
Aircraft.Fuselage.PILOT_COMPARTMENT_LENGTH,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.ELPC',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.ELPC', "FLOPS": None, "LEAPS1": None},
units='ft',
desc='length of the pilot compartment',
)
@@ -3309,21 +3391,19 @@
add_meta_data(
Aircraft.Fuselage.PLANFORM_AREA,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None, # '~WEIGHT.FPAREA',
- "LEAPS1": '(WeightABC)self._fuselage_planform_area'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # '~WEIGHT.FPAREA',
+ "LEAPS1": '(WeightABC)self._fuselage_planform_area',
+ },
units='ft**2',
- desc='fuselage planform area'
+ desc='fuselage planform area',
)
add_meta_data(
Aircraft.Fuselage.PRESSURE_DIFFERENTIAL,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.DELP',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.DELP', "FLOPS": None, "LEAPS1": None},
units='psi',
desc='fuselage pressure differential during cruise',
default_value=7.5,
@@ -3332,10 +3412,7 @@
add_meta_data(
Aircraft.Fuselage.SEAT_PITCH,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.PS',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.PS', "FLOPS": None, "LEAPS1": None},
units='inch',
desc='pitch of the economy class seats',
option=True,
@@ -3345,10 +3422,7 @@
add_meta_data(
Aircraft.Fuselage.SEAT_WIDTH,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.WS',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.WS', "FLOPS": None, "LEAPS1": None},
units='inch',
desc='width of the economy class seats',
option=True,
@@ -3358,10 +3432,7 @@
add_meta_data(
Aircraft.Fuselage.TAIL_FINENESS,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.ELODT',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.ELODT', "FLOPS": None, "LEAPS1": None},
units="unitless",
desc='length to diameter ratio of tail cone',
default_value=1,
@@ -3372,15 +3443,16 @@
# - see also: Aircraft.Fuselage.WETTED_AREA_SCALER
Aircraft.Fuselage.WETTED_AREA,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.SF',
- "FLOPS": None, # ['ACTWET.SWTFU', 'MISSA.SWET[4]'],
- "LEAPS1": ['aircraft.outputs.L0_aerodynamics.fuselage_wetted_area',
- 'aircraft.outputs.L0_aerodynamics'
- '.mission_component_wetted_area_table[3]',
- 'aircraft.cached.L0_aerodynamics'
- '.mission_component_wetted_area_table[3]',
- ]
- },
+ historical_name={
+ "GASP": 'INGASP.SF',
+ "FLOPS": None, # ['ACTWET.SWTFU', 'MISSA.SWET[4]'],
+ "LEAPS1": [
+ 'aircraft.outputs.L0_aerodynamics.fuselage_wetted_area',
+ 'aircraft.outputs.L0_aerodynamics'
+ '.mission_component_wetted_area_table[3]',
+ 'aircraft.cached.L0_aerodynamics' '.mission_component_wetted_area_table[3]',
+ ],
+ },
units='ft**2',
desc='fuselage wetted area',
default_value=None,
@@ -3389,10 +3461,11 @@
add_meta_data(
Aircraft.Fuselage.WETTED_AREA_SCALER,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.SF_FAC',
- "FLOPS": 'AERIN.SWETF', # ['&DEFINE.AERIN.SWETF', 'AWETO.SWETF', ],
- "LEAPS1": 'aircraft.inputs.L0_aerodynamics.fuselage_wetted_area'
- },
+ historical_name={
+ "GASP": 'INGASP.SF_FAC',
+ "FLOPS": 'AERIN.SWETF', # ['&DEFINE.AERIN.SWETF', 'AWETO.SWETF', ],
+ "LEAPS1": 'aircraft.inputs.L0_aerodynamics.fuselage_wetted_area',
+ },
units='unitless',
desc='fuselage wetted area scaler',
default_value=1.0,
@@ -3409,25 +3482,28 @@
add_meta_data(
Aircraft.HorizontalTail.AREA,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.SHT',
- "FLOPS": 'WTIN.SHT', # ['&DEFINE.WTIN.SHT', 'EDETIN.SHT'],
- "LEAPS1": ['aircraft.inputs.L0_horizontal_tail.area',
- 'aircraft.cached.L0_horizontal_tail.area',
- ]
- },
+ historical_name={
+ "GASP": 'INGASP.SHT',
+ "FLOPS": 'WTIN.SHT', # ['&DEFINE.WTIN.SHT', 'EDETIN.SHT'],
+ "LEAPS1": [
+ 'aircraft.inputs.L0_horizontal_tail.area',
+ 'aircraft.cached.L0_horizontal_tail.area',
+ ],
+ },
units='ft**2',
desc='horizontal tail theoretical area; overridden by vol_coeff, if '
- 'vol_coeff > 0.0', # this appears to never be calculated in Aviary, need to show users the overriding capability of Aviary
+ 'vol_coeff > 0.0', # this appears to never be calculated in Aviary, need to show users the overriding capability of Aviary
default_value=0.0,
)
add_meta_data(
Aircraft.HorizontalTail.ASPECT_RATIO,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.ARHT',
- "FLOPS": 'WTIN.ARHT', # ['&DEFINE.WTIN.ARHT', 'EDETIN.ARHT'],
- "LEAPS1": 'aircraft.inputs.L0_horizontal_tail.aspect_ratio'
- },
+ historical_name={
+ "GASP": 'INGASP.ARHT',
+ "FLOPS": 'WTIN.ARHT', # ['&DEFINE.WTIN.ARHT', 'EDETIN.ARHT'],
+ "LEAPS1": 'aircraft.inputs.L0_horizontal_tail.aspect_ratio',
+ },
units='unitless',
desc='horizontal tail theoretical aspect ratio',
default_value=None,
@@ -3436,10 +3512,7 @@
add_meta_data(
Aircraft.HorizontalTail.AVERAGE_CHORD,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.CBARHT',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.CBARHT', "FLOPS": None, "LEAPS1": None},
units='ft',
desc='mean aerodynamic chord of horizontal tail',
)
@@ -3447,47 +3520,50 @@
add_meta_data(
Aircraft.HorizontalTail.CHARACTERISTIC_LENGTH,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None, # 'MISSA.EL[2]',
- "LEAPS1": ['aircraft.outputs.L0_aerodynamics.mission_component_char_len_table[1]',
- 'aircraft.cached.L0_aerodynamics.mission_component_char_len_table[1]',
- ]
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # 'MISSA.EL[2]',
+ "LEAPS1": [
+ 'aircraft.outputs.L0_aerodynamics.mission_component_char_len_table[1]',
+ 'aircraft.cached.L0_aerodynamics.mission_component_char_len_table[1]',
+ ],
+ },
units='ft',
- desc='Reynolds characteristic length for the horizontal tail'
+ desc='Reynolds characteristic length for the horizontal tail',
)
add_meta_data(
Aircraft.HorizontalTail.FINENESS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None, # 'MISSA.FR[2]',
- "LEAPS1": ['aircraft.outputs.L0_aerodynamics.mission_fineness_ratio_table[1]',
- 'aircraft.cached.L0_aerodynamics.mission_fineness_ratio_table[1]',
- ]
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # 'MISSA.FR[2]',
+ "LEAPS1": [
+ 'aircraft.outputs.L0_aerodynamics.mission_fineness_ratio_table[1]',
+ 'aircraft.cached.L0_aerodynamics.mission_fineness_ratio_table[1]',
+ ],
+ },
units='unitless',
- desc='horizontal tail fineness ratio'
+ desc='horizontal tail fineness ratio',
)
add_meta_data(
Aircraft.HorizontalTail.FORM_FACTOR,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.CKHT',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.CKHT', "FLOPS": None, "LEAPS1": None},
units='unitless',
desc='horizontal tail form factor',
+ default_value=1.25,
)
add_meta_data(
Aircraft.HorizontalTail.LAMINAR_FLOW_LOWER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'AERIN.TRLH', # ['&DEFINE.AERIN.TRLH', 'XLAM.TRLH', ],
- "LEAPS1": 'aircraft.inputs.L0_aerodynamics.horizontal_tail_percent_laminar_flow_lower_surface'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'AERIN.TRLH', # ['&DEFINE.AERIN.TRLH', 'XLAM.TRLH', ],
+ "LEAPS1": 'aircraft.inputs.L0_aerodynamics.horizontal_tail_percent_laminar_flow_lower_surface',
+ },
units='unitless',
desc='define percent laminar flow for horizontal tail lower surface',
default_value=0.0,
@@ -3496,10 +3572,11 @@
add_meta_data(
Aircraft.HorizontalTail.LAMINAR_FLOW_UPPER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'AERIN.TRUH', # ['&DEFINE.AERIN.TRUH', 'XLAM.TRUH', ],
- "LEAPS1": 'aircraft.inputs.L0_aerodynamics.horizontal_tail_percent_laminar_flow_upper_surface'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'AERIN.TRUH', # ['&DEFINE.AERIN.TRUH', 'XLAM.TRUH', ],
+ "LEAPS1": 'aircraft.inputs.L0_aerodynamics.horizontal_tail_percent_laminar_flow_upper_surface',
+ },
units='unitless',
desc='define percent laminar flow for horizontal tail upper surface',
default_value=0.0,
@@ -3510,13 +3587,15 @@
# - see also: Aircraft.HorizontalTail.MASS_SCALER
Aircraft.HorizontalTail.MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['WTS.WSP(2, 2)', '~WEIGHT.WHT', '~WTSTAT.WSP(2, 2)'],
- "FLOPS": None,
- "LEAPS1": ['(WeightABC)self._horizontal_tail_weight',
- 'aircraft.outputs.L0_weights_summary.horizontal_tail_weight',
- ]
- },
+ historical_name={
+ "GASP": None,
+ # ['WTS.WSP(2, 2)', '~WEIGHT.WHT', '~WTSTAT.WSP(2, 2)'],
+ "FLOPS": None,
+ "LEAPS1": [
+ '(WeightABC)self._horizontal_tail_weight',
+ 'aircraft.outputs.L0_weights_summary.horizontal_tail_weight',
+ ],
+ },
units='lbm',
desc='mass of horizontal tail',
default_value=None,
@@ -3525,22 +3604,20 @@
add_meta_data(
Aircraft.HorizontalTail.MASS_COEFFICIENT,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.SKY',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.SKY', "FLOPS": None, "LEAPS1": None},
units="unitless",
desc='mass trend coefficient of horizontal tail',
- default_value=.18,
+ default_value=0.18,
)
add_meta_data(
Aircraft.HorizontalTail.MASS_SCALER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.FRHT', # ['&DEFINE.WTIN.FRHT', 'WTS.FRHT'],
- "LEAPS1": 'aircraft.inputs.L0_overrides.horizontal_tail_weight'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.FRHT', # ['&DEFINE.WTIN.FRHT', 'WTS.FRHT'],
+ "LEAPS1": 'aircraft.inputs.L0_overrides.horizontal_tail_weight',
+ },
units='unitless',
desc='mass scaler of the horizontal tail structure',
default_value=1.0,
@@ -3549,10 +3626,7 @@
add_meta_data(
Aircraft.HorizontalTail.MOMENT_ARM,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.ELTH',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.ELTH', "FLOPS": None, "LEAPS1": None},
units='ft',
desc='moment arm of horizontal tail',
)
@@ -3560,10 +3634,7 @@
add_meta_data(
Aircraft.HorizontalTail.MOMENT_RATIO,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.COELTH',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.COELTH', "FLOPS": None, "LEAPS1": None},
units='unitless',
desc='Ratio of wing chord to horizontal tail moment arm',
)
@@ -3571,10 +3642,7 @@
add_meta_data(
Aircraft.HorizontalTail.ROOT_CHORD,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.CRCLHT',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.CRCLHT', "FLOPS": None, "LEAPS1": None},
units='ft',
desc='horizontal tail root chord',
)
@@ -3582,10 +3650,7 @@
add_meta_data(
Aircraft.HorizontalTail.SPAN,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.BHT',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.BHT', "FLOPS": None, "LEAPS1": None},
units='ft',
desc='span of horizontal tail',
)
@@ -3593,12 +3658,14 @@
add_meta_data(
Aircraft.HorizontalTail.SWEEP,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.DWPQCH',
- "FLOPS": 'WTIN.SWPHT', # , 'WTS.SWPHT'],
- "LEAPS1": ['aircraft.inputs.L0_horizontal_tail.sweep_at_quarter_chord',
- 'aircraft.cached.L0_horizontal_tail.sweep_at_quarter_chord'
- ]
- },
+ historical_name={
+ "GASP": 'INGASP.DWPQCH',
+ "FLOPS": 'WTIN.SWPHT', # , 'WTS.SWPHT'],
+ "LEAPS1": [
+ 'aircraft.inputs.L0_horizontal_tail.sweep_at_quarter_chord',
+ 'aircraft.cached.L0_horizontal_tail.sweep_at_quarter_chord',
+ ],
+ },
units='deg',
desc='quarter-chord sweep of horizontal tail',
)
@@ -3606,10 +3673,11 @@
add_meta_data(
Aircraft.HorizontalTail.TAPER_RATIO,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.SLMH',
- "FLOPS": 'WTIN.TRHT', # , 'EDETIN.TRHT'],
- "LEAPS1": 'aircraft.inputs.L0_horizontal_tail.taper_ratio'
- },
+ historical_name={
+ "GASP": 'INGASP.SLMH',
+ "FLOPS": 'WTIN.TRHT', # , 'EDETIN.TRHT'],
+ "LEAPS1": 'aircraft.inputs.L0_horizontal_tail.taper_ratio',
+ },
units='unitless',
desc='horizontal tail theoretical taper ratio',
default_value=None,
@@ -3618,10 +3686,11 @@
add_meta_data(
Aircraft.HorizontalTail.THICKNESS_TO_CHORD,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.TCHT',
- "FLOPS": 'WTIN.TCHT', # , 'EDETIN.TCHT'],
- "LEAPS1": 'aircraft.inputs.L0_horizontal_tail.thickness_to_chord_ratio'
- },
+ historical_name={
+ "GASP": 'INGASP.TCHT',
+ "FLOPS": 'WTIN.TCHT', # , 'EDETIN.TCHT'],
+ "LEAPS1": 'aircraft.inputs.L0_horizontal_tail.thickness_to_chord_ratio',
+ },
units='unitless',
desc='horizontal tail thickness-chord ratio',
default_value=0.0,
@@ -3631,25 +3700,23 @@
add_meta_data(
Aircraft.HorizontalTail.VERTICAL_TAIL_FRACTION,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.SAH',
- "FLOPS": 'WTIN.HHT', # ['&DEFINE.WTIN.HHT', 'EDETIN.HHT'],
- "LEAPS1": 'aircraft.inputs.L0_horizontal_tail.vertical_tail_fraction'
- },
+ historical_name={
+ "GASP": 'INGASP.SAH',
+ "FLOPS": 'WTIN.HHT', # ['&DEFINE.WTIN.HHT', 'EDETIN.HHT'],
+ "LEAPS1": 'aircraft.inputs.L0_horizontal_tail.vertical_tail_fraction',
+ },
units='unitless',
desc='Define the decimal fraction of vertical tail span where horizontal '
- 'tail is mounted. Defaults: 0.0 == for body mounted (default for '
- 'transport with all engines on wing); 1.0 == for T tail '
- '(default for transport with multiple engines on fuselage)',
+ 'tail is mounted. Defaults: 0.0 == for body mounted (default for '
+ 'transport with all engines on wing); 1.0 == for T tail '
+ '(default for transport with multiple engines on fuselage)',
default_value=None,
)
add_meta_data(
Aircraft.HorizontalTail.VOLUME_COEFFICIENT,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.VBARHX',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.VBARHX', "FLOPS": None, "LEAPS1": None},
units="unitless",
desc='tail volume coefficicient of horizontal tail',
)
@@ -3659,15 +3726,16 @@
# - see also: Aircraft.HorizontalTail.WETTED_AREA_SCALER
Aircraft.HorizontalTail.WETTED_AREA,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None, # ['ACTWET.SWTHT', 'MISSA.SWET[2]'],
- "LEAPS1": ['aircraft.outputs.L0_aerodynamics.horizontal_tail_wetted_area',
- 'aircraft.outputs.L0_aerodynamics'
- '.mission_component_wetted_area_table[1]',
- 'aircraft.cached.L0_aerodynamics'
- '.mission_component_wetted_area_table[1]',
- ]
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # ['ACTWET.SWTHT', 'MISSA.SWET[2]'],
+ "LEAPS1": [
+ 'aircraft.outputs.L0_aerodynamics.horizontal_tail_wetted_area',
+ 'aircraft.outputs.L0_aerodynamics'
+ '.mission_component_wetted_area_table[1]',
+ 'aircraft.cached.L0_aerodynamics' '.mission_component_wetted_area_table[1]',
+ ],
+ },
units='ft**2',
desc='horizontal tail wetted area',
default_value=None,
@@ -3676,10 +3744,11 @@
add_meta_data(
Aircraft.HorizontalTail.WETTED_AREA_SCALER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'AERIN.SWETH', # ['&DEFINE.AERIN.SWETH', 'AWETO.SWETH', ],
- "LEAPS1": 'aircraft.inputs.L0_aerodynamics.horizontal_tail_wetted_area'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'AERIN.SWETH', # ['&DEFINE.AERIN.SWETH', 'AWETO.SWETH', ],
+ "LEAPS1": 'aircraft.inputs.L0_aerodynamics.horizontal_tail_wetted_area',
+ },
units='unitless',
desc='horizontal tail wetted area scaler',
default_value=1.0,
@@ -3698,10 +3767,7 @@
add_meta_data(
Aircraft.Hydraulics.FLIGHT_CONTROL_MASS_COEFFICIENT,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.CW(3)',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.CW(3)', "FLOPS": None, "LEAPS1": None},
units='unitless',
desc='mass trend coefficient of hydraulics for flight control system',
default_value=0.10,
@@ -3710,10 +3776,7 @@
add_meta_data(
Aircraft.Hydraulics.GEAR_MASS_COEFFICIENT,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.CW(4)',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.CW(4)', "FLOPS": None, "LEAPS1": None},
units='unitless',
desc='mass trend coefficient of hydraulics for landing gear',
default_value=0.16,
@@ -3724,13 +3787,15 @@
# - see also: Aircraft.Hydraulics.MASS_SCALER
Aircraft.Hydraulics.MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['WTS.WSP(19, 2)', '~WEIGHT.WHYD', '~WTSTAT.WSP(19, 2)', '~INERT.WHYD'],
- "FLOPS": None,
- "LEAPS1": ['(WeightABC)self._hydraulics_group_weight',
- 'aircraft.outputs.L0_weights_summary.hydraulics_group_weight',
- ]
- },
+ historical_name={
+ "GASP": None,
+ # ['WTS.WSP(19, 2)', '~WEIGHT.WHYD', '~WTSTAT.WSP(19, 2)', '~INERT.WHYD'],
+ "FLOPS": None,
+ "LEAPS1": [
+ '(WeightABC)self._hydraulics_group_weight',
+ 'aircraft.outputs.L0_weights_summary.hydraulics_group_weight',
+ ],
+ },
units='lbm',
desc='mass of hydraulic system',
default_value=None,
@@ -3739,11 +3804,12 @@
add_meta_data(
Aircraft.Hydraulics.MASS_SCALER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['&DEFINE.WTIN.WHYD', 'MISWT.WHYD', 'MISWT.OHYD'],
- "FLOPS": 'WTIN.WHYD',
- "LEAPS1": 'aircraft.inputs.L0_overrides.hydraulics_group_weight'
- },
+ historical_name={
+ "GASP": None,
+ # ['&DEFINE.WTIN.WHYD', 'MISWT.WHYD', 'MISWT.OHYD'],
+ "FLOPS": 'WTIN.WHYD',
+ "LEAPS1": 'aircraft.inputs.L0_overrides.hydraulics_group_weight',
+ },
units='unitless',
desc='mass scaler of the hydraulic system',
default_value=1.0,
@@ -3752,10 +3818,11 @@
add_meta_data(
Aircraft.Hydraulics.SYSTEM_PRESSURE,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.HYDPR', # ['&DEFINE.WTIN.HYDPR', 'WTS.HYDPR'],
- "LEAPS1": 'aircraft.inputs.L0_weights.hydraulic_sys_press'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.HYDPR', # ['&DEFINE.WTIN.HYDPR', 'WTS.HYDPR'],
+ "LEAPS1": 'aircraft.inputs.L0_weights.hydraulic_sys_press',
+ },
units='psi',
desc='hydraulic system pressure',
default_value=3000.0,
@@ -3775,13 +3842,15 @@
# - see also: Aircraft.Instruments.MASS_SCALER
Aircraft.Instruments.MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['WTS.WSP(18, 2)', '~WEIGHT.WIN', '~WTSTAT.WSP(18, 2)'],
- "FLOPS": None,
- "LEAPS1": ['(WeightABC)self._instrument_group_weight',
- 'aircraft.outputs.L0_weights_summary.instrument_group_weight',
- ]
- },
+ historical_name={
+ "GASP": None,
+ # ['WTS.WSP(18, 2)', '~WEIGHT.WIN', '~WTSTAT.WSP(18, 2)'],
+ "FLOPS": None,
+ "LEAPS1": [
+ '(WeightABC)self._instrument_group_weight',
+ 'aircraft.outputs.L0_weights_summary.instrument_group_weight',
+ ],
+ },
units='lbm',
desc='instrument group mass',
default_value=None,
@@ -3790,10 +3859,7 @@
add_meta_data(
Aircraft.Instruments.MASS_COEFFICIENT,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.CW(2)',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.CW(2)', "FLOPS": None, "LEAPS1": None},
units='unitless',
desc='mass trend coefficient of instruments',
default_value=0.0862,
@@ -3802,11 +3868,12 @@
add_meta_data(
Aircraft.Instruments.MASS_SCALER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['&DEFINE.WTIN.WIN', 'MISWT.WIN', 'MISWT.OIN'],
- "FLOPS": 'WTIN.WIN',
- "LEAPS1": 'aircraft.inputs.L0_overrides.instrument_group_weight'
- },
+ historical_name={
+ "GASP": None,
+ # ['&DEFINE.WTIN.WIN', 'MISWT.WIN', 'MISWT.OIN'],
+ "FLOPS": 'WTIN.WIN',
+ "LEAPS1": 'aircraft.inputs.L0_overrides.instrument_group_weight',
+ },
units='unitless',
desc='mass scaler of the instrument group',
default_value=1.0,
@@ -3825,14 +3892,15 @@
add_meta_data(
Aircraft.LandingGear.CARRIER_BASED,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.CARBAS', # ['&DEFINE.WTIN.CARBAS', 'FAWT.CARBAS'],
- "LEAPS1": 'aircraft.inputs.L0_landing_gear.carrier_based'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.CARBAS', # ['&DEFINE.WTIN.CARBAS', 'FAWT.CARBAS'],
+ "LEAPS1": 'aircraft.inputs.L0_landing_gear.carrier_based',
+ },
units='unitless',
desc='carrier based aircraft switch, affects mass of flight crew, '
- 'avionics, and nose gear where true is carrier based and false is land '
- 'based',
+ 'avionics, and nose gear where true is carrier based and false is land '
+ 'based',
option=True,
types=bool,
default_value=False,
@@ -3845,34 +3913,30 @@
# ['&DEFTOL.TOLIN.CDGEAR', '~DEFTOL.CDGEAR', 'ROTDAT.CDGEAR'],
'FLOPS': 'TOLIN.CDGEAR',
'GASP': None,
- 'LEAPS1': None},
+ 'LEAPS1': None,
+ },
option=True,
- default_value=0.,
+ default_value=0.0,
units='unitless',
- desc='landing gear drag coefficient')
+ desc='landing gear drag coefficient',
+)
add_meta_data(
Aircraft.LandingGear.FIXED_GEAR,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.IGEAR',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.IGEAR', "FLOPS": None, "LEAPS1": None},
option=True,
default_value=True,
types=bool,
units="unitless",
- desc='Type of landing gear. In GASP, 0 is retractable and 1 is deployed (fixed). Here, '
- 'false is retractable and true is deployed (fixed).',
+ desc='Type of landing gear. In GASP, 0 is retractable and 1 is fixed. Here, '
+ 'false is retractable and true is fixed.',
)
add_meta_data(
Aircraft.LandingGear.MAIN_GEAR_LOCATION,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.YMG',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.YMG', "FLOPS": None, "LEAPS1": None},
units="unitless",
desc='span fraction of main gear on wing (0=on fuselage, 1=at tip)',
default_value=0,
@@ -3883,47 +3947,49 @@
# - see also: Aircraft.LandingGear.MAIN_GEAR_MASS_SCALER
Aircraft.LandingGear.MAIN_GEAR_MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None, # 'INI.WLGM',
- "LEAPS1": '(WeightABC)self._landing_gear_main_weight'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # 'INI.WLGM',
+ "LEAPS1": '(WeightABC)self._landing_gear_main_weight',
+ },
units='lbm',
- desc='mass of main landing gear'
+ desc='mass of main landing gear',
)
add_meta_data(
Aircraft.LandingGear.MAIN_GEAR_MASS_COEFFICIENT,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.SKMG',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.SKMG', "FLOPS": None, "LEAPS1": None},
units="unitless",
desc='mass trend coefficient of main gear, fraction of total landing gear',
- default_value=.85,
+ default_value=0.85,
)
add_meta_data(
Aircraft.LandingGear.MAIN_GEAR_MASS_SCALER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.FRLGM', # ['&DEFINE.WTIN.FRLGM', 'WTS.FRLGM'],
- "LEAPS1": 'aircraft.inputs.L0_overrides.landing_gear_main_weight'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.FRLGM', # ['&DEFINE.WTIN.FRLGM', 'WTS.FRLGM'],
+ "LEAPS1": 'aircraft.inputs.L0_overrides.landing_gear_main_weight',
+ },
units='unitless',
- desc='mass scaler of the main landing gear structure'
+ desc='mass scaler of the main landing gear structure',
+ default_value=1.0,
)
add_meta_data(
Aircraft.LandingGear.MAIN_GEAR_OLEO_LENGTH,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.XMLG', # ['&DEFINE.WTIN.XMLG', 'WTS.XMLG'],
- "LEAPS1": ['aircraft.inputs.L0_landing_gear.extend_main_gear_oleo_len',
- 'aircraft.outputs.L0_landing_gear.extend_main_gear_oleo_len',
- 'aircraft.cached.L0_landing_gear.extend_main_gear_oleo_len',
- ]
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.XMLG', # ['&DEFINE.WTIN.XMLG', 'WTS.XMLG'],
+ "LEAPS1": [
+ 'aircraft.inputs.L0_landing_gear.extend_main_gear_oleo_len',
+ 'aircraft.outputs.L0_landing_gear.extend_main_gear_oleo_len',
+ 'aircraft.cached.L0_landing_gear.extend_main_gear_oleo_len',
+ ],
+ },
units='inch',
desc='length of extended main landing gear oleo',
default_value=0.0,
@@ -3932,10 +3998,7 @@
add_meta_data(
Aircraft.LandingGear.MASS_COEFFICIENT,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.SKLG',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.SKLG', "FLOPS": None, "LEAPS1": None},
units="unitless",
desc='mass trend coefficient of landing gear',
)
@@ -3945,10 +4008,11 @@
# - see also: Aircraft.LandingGear.NOSE_GEAR_MASS_SCALER
Aircraft.LandingGear.NOSE_GEAR_MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None, # '~WEIGHT.WLGN',
- "LEAPS1": '(WeightABC)self._landing_gear_nose_weight'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # '~WEIGHT.WLGN',
+ "LEAPS1": '(WeightABC)self._landing_gear_nose_weight',
+ },
units='lbm',
desc='mass of nose landing gear',
default_value=None,
@@ -3957,10 +4021,11 @@
add_meta_data(
Aircraft.LandingGear.NOSE_GEAR_MASS_SCALER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.FRLGN', # ['&DEFINE.WTIN.FRLGN', 'WTS.FRLGN'],
- "LEAPS1": 'aircraft.inputs.L0_overrides.landing_gear_nose_weight'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.FRLGN', # ['&DEFINE.WTIN.FRLGN', 'WTS.FRLGN'],
+ "LEAPS1": 'aircraft.inputs.L0_overrides.landing_gear_nose_weight',
+ },
units='unitless',
desc='mass scaler of the nose landing gear structure',
default_value=1.0,
@@ -3969,13 +4034,15 @@
add_meta_data(
Aircraft.LandingGear.NOSE_GEAR_OLEO_LENGTH,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.XNLG', # ['&DEFINE.WTIN.XNLG', 'WTS.XNLG'],
- "LEAPS1": ['aircraft.inputs.L0_landing_gear.extend_nose_gear_oleo_len',
- 'aircraft.outputs.L0_landing_gear.extend_nose_gear_oleo_len',
- 'aircraft.cached.L0_landing_gear.extend_nose_gear_oleo_len',
- ]
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.XNLG', # ['&DEFINE.WTIN.XNLG', 'WTS.XNLG'],
+ "LEAPS1": [
+ 'aircraft.inputs.L0_landing_gear.extend_nose_gear_oleo_len',
+ 'aircraft.outputs.L0_landing_gear.extend_nose_gear_oleo_len',
+ 'aircraft.cached.L0_landing_gear.extend_nose_gear_oleo_len',
+ ],
+ },
units='inch',
desc='length of extended nose landing gear oleo',
default_value=0.0,
@@ -3984,10 +4051,7 @@
add_meta_data(
Aircraft.LandingGear.TAIL_HOOK_MASS_SCALER,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.SKTL',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.SKTL', "FLOPS": None, "LEAPS1": None},
units="unitless",
desc='factor on tail mass for arresting hook',
default_value=1,
@@ -3996,10 +4060,7 @@
add_meta_data(
Aircraft.LandingGear.TOTAL_MASS,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.WLG',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.WLG', "FLOPS": None, "LEAPS1": None},
units='lbm',
desc='total mass of landing gear',
default_value=0,
@@ -4008,10 +4069,7 @@
add_meta_data(
Aircraft.LandingGear.TOTAL_MASS_SCALER,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.CK12',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.CK12', "FLOPS": None, "LEAPS1": None},
units="unitless",
desc='technology factor on landing gear mass',
default_value=1,
@@ -4028,12 +4086,13 @@
add_meta_data(
Aircraft.Nacelle.AVG_DIAMETER,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.DBARN',
- "FLOPS": 'WTIN.DNAC', # ['&DEFINE.WTIN.DNAC', 'EDETIN.DNAC'],
- "LEAPS1": 'aircraft.inputs.L0_engine.nacelle_avg_diam'
- },
+ historical_name={
+ "GASP": 'INGASP.DBARN',
+ "FLOPS": 'WTIN.DNAC', # ['&DEFINE.WTIN.DNAC', 'EDETIN.DNAC'],
+ "LEAPS1": 'aircraft.inputs.L0_engine.nacelle_avg_diam',
+ },
units='ft',
- desc='Average diameter of engine nacelles for each engine model'
+ desc='Average diameter of engine nacelles for each engine model',
)
add_meta_data(
@@ -4041,34 +4100,34 @@
meta_data=_MetaData,
# NOTE this is not specified as an average in GASP, but calculations make
# it appear to be one
- historical_name={"GASP": 'INGASP.ELN',
- "FLOPS": 'WTIN.XNAC', # ['&DEFINE.WTIN.XNAC', 'EDETIN.XNAC'],
- "LEAPS1": 'aircraft.inputs.L0_engine.nacelle_avg_length'
- },
+ historical_name={
+ "GASP": 'INGASP.ELN',
+ "FLOPS": 'WTIN.XNAC', # ['&DEFINE.WTIN.XNAC', 'EDETIN.XNAC'],
+ "LEAPS1": 'aircraft.inputs.L0_engine.nacelle_avg_length',
+ },
units='ft',
- desc='Average length of nacelles for each engine model'
+ desc='Average length of nacelles for each engine model',
)
add_meta_data(
Aircraft.Nacelle.CHARACTERISTIC_LENGTH,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None, # 'MISSA.EL[5]',
- "LEAPS1": ['aircraft.outputs.L0_aerodynamics.mission_component_char_len_table[4]',
- 'aircraft.cached.L0_aerodynamics.mission_component_char_len_table[4]',
- ]
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # 'MISSA.EL[5]',
+ "LEAPS1": [
+ 'aircraft.outputs.L0_aerodynamics.mission_component_char_len_table[4]',
+ 'aircraft.cached.L0_aerodynamics.mission_component_char_len_table[4]',
+ ],
+ },
units='ft',
- desc='Reynolds characteristic length for nacelle for each engine model'
+ desc='Reynolds characteristic length for nacelle for each engine model',
)
add_meta_data(
Aircraft.Nacelle.CLEARANCE_RATIO,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.CLEARqDN',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.CLEARqDN', "FLOPS": None, "LEAPS1": None},
units="unitless",
desc='the minimum number of nacelle diameters above the ground that the bottom of the nacelle must be',
default_value=0.2,
@@ -4077,10 +4136,7 @@
add_meta_data(
Aircraft.Nacelle.CORE_DIAMETER_RATIO,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.DNQDE',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.DNQDE', "FLOPS": None, "LEAPS1": None},
units="unitless",
desc='ratio of nacelle diameter to engine core diameter',
default_value=1.25,
@@ -4089,34 +4145,35 @@
add_meta_data(
Aircraft.Nacelle.FINENESS,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.XLQDE',
- "FLOPS": None, # 'MISSA.FR[5]',
- "LEAPS1": ['aircraft.outputs.L0_aerodynamics.mission_fineness_ratio_table[4]',
- 'aircraft.cached.L0_aerodynamics.mission_fineness_ratio_table[4]',
- ]
- },
+ historical_name={
+ "GASP": 'INGASP.XLQDE',
+ "FLOPS": None, # 'MISSA.FR[5]',
+ "LEAPS1": [
+ 'aircraft.outputs.L0_aerodynamics.mission_fineness_ratio_table[4]',
+ 'aircraft.cached.L0_aerodynamics.mission_fineness_ratio_table[4]',
+ ],
+ },
units='unitless',
- desc='nacelle fineness ratio'
+ desc='nacelle fineness ratio',
)
add_meta_data(
Aircraft.Nacelle.FORM_FACTOR,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.CKN',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.CKN', "FLOPS": None, "LEAPS1": None},
units='unitless',
desc='nacelle form factor',
+ default_value=1.5,
)
add_meta_data(
Aircraft.Nacelle.LAMINAR_FLOW_LOWER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'AERIN.TRLN', # ['&DEFINE.AERIN.TRLN', 'XLAM.TRLN', ],
- "LEAPS1": 'aircraft.inputs.L0_aerodynamics.nacelle_percent_laminar_flow_lower_surface'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'AERIN.TRLN', # ['&DEFINE.AERIN.TRLN', 'XLAM.TRLN', ],
+ "LEAPS1": 'aircraft.inputs.L0_aerodynamics.nacelle_percent_laminar_flow_lower_surface',
+ },
units='unitless',
desc='define percent laminar flow for nacelle lower surface for each engine model',
default_value=0.0,
@@ -4125,10 +4182,11 @@
add_meta_data(
Aircraft.Nacelle.LAMINAR_FLOW_UPPER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'AERIN.TRUN', # ['&DEFINE.AERIN.TRUN', 'XLAM.TRUN', ],
- "LEAPS1": 'aircraft.inputs.L0_aerodynamics.nacelle_percent_laminar_flow_upper_surface'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'AERIN.TRUN', # ['&DEFINE.AERIN.TRUN', 'XLAM.TRUN', ],
+ "LEAPS1": 'aircraft.inputs.L0_aerodynamics.nacelle_percent_laminar_flow_upper_surface',
+ },
units='unitless',
desc='define percent laminar flow for nacelle upper surface for each engine model',
default_value=0.0,
@@ -4139,13 +4197,15 @@
# - see also: Aircraft.Nacelle.MASS_SCALER
Aircraft.Nacelle.MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['WTS.WSP(8, 2)', '~WEIGHT.WNAC', '~WTSTAT.WSP(8, 2)', '~INERT.WNAC'],
- "FLOPS": None,
- "LEAPS1": ['(WeightABC)self._nacelle_weight',
- 'aircraft.outputs.L0_weights_summary.nacelle_weight',
- ]
- },
+ historical_name={
+ "GASP": None,
+ # ['WTS.WSP(8, 2)', '~WEIGHT.WNAC', '~WTSTAT.WSP(8, 2)', '~INERT.WNAC'],
+ "FLOPS": None,
+ "LEAPS1": [
+ '(WeightABC)self._nacelle_weight',
+ 'aircraft.outputs.L0_weights_summary.nacelle_weight',
+ ],
+ },
units='lbm',
desc='estimated mass of the nacelles for each engine model',
default_value=None,
@@ -4154,10 +4214,11 @@
add_meta_data(
Aircraft.Nacelle.MASS_SCALER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.FRNA', # ['&DEFINE.WTIN.FRNA', 'WTS.FRNA'],
- "LEAPS1": 'aircraft.inputs.L0_overrides.nacelle_weight'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.FRNA', # ['&DEFINE.WTIN.FRNA', 'WTS.FRNA'],
+ "LEAPS1": 'aircraft.inputs.L0_overrides.nacelle_weight',
+ },
units='unitless',
desc='mass scaler of the nacelle structure for each engine model',
default_value=1.0,
@@ -4166,10 +4227,7 @@
add_meta_data(
Aircraft.Nacelle.MASS_SPECIFIC,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.UWNAC',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.UWNAC', "FLOPS": None, "LEAPS1": None},
units='lbm/ft**2',
desc='nacelle mass/nacelle surface area; lbm per sq ft.',
default_value=0.0,
@@ -4178,49 +4236,50 @@
add_meta_data(
Aircraft.Nacelle.SURFACE_AREA,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.SN',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.SN', "FLOPS": None, "LEAPS1": None},
units='ft**2',
desc='surface area of the outside of one entire nacelle, '
- 'not just the wetted area',
+ 'not just the wetted area',
)
add_meta_data(
Aircraft.Nacelle.TOTAL_WETTED_AREA,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None, # 'ACTWET.SWTNA',
- "LEAPS1": 'aircraft.outputs.L0_aerodynamics.nacelle_wetted_area'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # 'ACTWET.SWTNA',
+ "LEAPS1": 'aircraft.outputs.L0_aerodynamics.nacelle_wetted_area',
+ },
units='ft**2',
- desc='total nacelles wetted area'
+ desc='total nacelles wetted area',
)
add_meta_data(
Aircraft.Nacelle.WETTED_AREA,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None, # 'MISSA.SWET[5]',
- "LEAPS1": ['aircraft.outputs.L0_aerodynamics.mission_component_wetted_area_table[4]',
- 'aircraft.cached.L0_aerodynamics.mission_component_wetted_area_table[4]',
- ]
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # 'MISSA.SWET[5]',
+ "LEAPS1": [
+ 'aircraft.outputs.L0_aerodynamics.mission_component_wetted_area_table[4]',
+ 'aircraft.cached.L0_aerodynamics.mission_component_wetted_area_table[4]',
+ ],
+ },
units='ft**2',
- desc='wetted area of a single nacelle for each engine model'
+ desc='wetted area of a single nacelle for each engine model',
)
add_meta_data(
Aircraft.Nacelle.WETTED_AREA_SCALER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'AERIN.SWETN', # ['&DEFINE.AERIN.SWETN', 'AWETO.SWETN', ],
- "LEAPS1": 'aircraft.inputs.L0_aerodynamics.nacelle_wetted_area'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'AERIN.SWETN', # ['&DEFINE.AERIN.SWETN', 'AWETO.SWETN', ],
+ "LEAPS1": 'aircraft.inputs.L0_aerodynamics.nacelle_wetted_area',
+ },
units='unitless',
desc='nacelle wetted area scaler for each engine model',
- default_value=1.0
+ default_value=1.0,
)
# _____ _ _
@@ -4234,23 +4293,26 @@
add_meta_data(
Aircraft.Paint.MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None, # 'DARM.WTPNT',
- "LEAPS1": ['(WeightABC)self._total_paint_weight',
- 'aircraft.outputs.L0_weights_summary.total_paint_weight',
- ]
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # 'DARM.WTPNT',
+ "LEAPS1": [
+ '(WeightABC)self._total_paint_weight',
+ 'aircraft.outputs.L0_weights_summary.total_paint_weight',
+ ],
+ },
units='lbm',
- desc='mass of paint for all wetted area'
+ desc='mass of paint for all wetted area',
)
add_meta_data(
Aircraft.Paint.MASS_PER_UNIT_AREA,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.WPAINT', # ['&DEFINE.WTIN.WPAINT', 'DARM.WPAINT'],
- "LEAPS1": 'aircraft.inputs.L0_weights.paint_per_unit_area'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.WPAINT', # ['&DEFINE.WTIN.WPAINT', 'DARM.WPAINT'],
+ "LEAPS1": 'aircraft.inputs.L0_weights.paint_per_unit_area',
+ },
units='lbm/ft**2',
desc='mass of paint per unit area for all wetted area',
default_value=0.0,
@@ -4270,11 +4332,12 @@
add_meta_data(
Aircraft.Propulsion.ENGINE_OIL_MASS_SCALER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['&DEFINE.WTIN.WOIL', 'MISWT.WOIL', 'MISWT.OOIL'],
- "FLOPS": 'WTIN.WOIL',
- "LEAPS1": 'aircraft.inputs.L0_overrides.engine_oil_weight'
- },
+ historical_name={
+ "GASP": None,
+ # ['&DEFINE.WTIN.WOIL', 'MISWT.WOIL', 'MISWT.OOIL'],
+ "FLOPS": 'WTIN.WOIL',
+ "LEAPS1": 'aircraft.inputs.L0_overrides.engine_oil_weight',
+ },
units='unitless',
desc='Scaler for engine oil mass',
default_value=1.0,
@@ -4283,52 +4346,49 @@
add_meta_data(
Aircraft.Propulsion.MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['WTS.WSP(15, 2)', '~WEIGHT.WPRO', '~WTSTAT.WSP(15, 2)'],
- "FLOPS": None,
- "LEAPS1": ['(WeightABC)self._prop_sys_weight',
- 'aircraft.outputs.L0_weights_summary.prop_sys_weight',
- ]
- },
+ historical_name={
+ "GASP": None,
+ # ['WTS.WSP(15, 2)', '~WEIGHT.WPRO', '~WTSTAT.WSP(15, 2)'],
+ "FLOPS": None,
+ "LEAPS1": [
+ '(WeightABC)self._prop_sys_weight',
+ 'aircraft.outputs.L0_weights_summary.prop_sys_weight',
+ ],
+ },
units='lbm',
- desc='Total propulsion group mass'
+ desc='Total propulsion group mass',
)
# TODO clash with per-engine scaling, need to resolve w/ heterogeneous engine
add_meta_data(
Aircraft.Propulsion.MISC_MASS_SCALER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['&DEFINE.WTIN.WPMSC', 'MISWT.WPMSC', 'MISWT.OPMSC'],
- "FLOPS": 'WTIN.WPMSC',
- "LEAPS1": ['aircraft.inputs.L0_overrides.misc_propulsion_weight']
- },
+ historical_name={
+ "GASP": None,
+ # ['&DEFINE.WTIN.WPMSC', 'MISWT.WPMSC', 'MISWT.OPMSC'],
+ "FLOPS": 'WTIN.WPMSC',
+ "LEAPS1": ['aircraft.inputs.L0_overrides.misc_propulsion_weight'],
+ },
units='unitless',
desc='scaler applied to miscellaneous engine mass (sum of engine control, starter, '
- 'and additional mass)',
+ 'and additional mass)',
default_value=1.0,
)
add_meta_data(
Aircraft.Propulsion.TOTAL_ENGINE_CONTROLS_MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='lbm',
- desc='total estimated mass of the engine controls for all engines on aircraft'
+ desc='total estimated mass of the engine controls for all engines on aircraft',
)
add_meta_data(
Aircraft.Propulsion.TOTAL_ENGINE_MASS,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.WEP',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.WEP', "FLOPS": None, "LEAPS1": None},
units='lbm',
- desc='total mass of all engines on aircraft'
+ desc='total mass of all engines on aircraft',
)
add_meta_data(
@@ -4336,13 +4396,15 @@
# - see also: Aircraft.Propulsion.ENGINE_OIL_MASS_SCALER
Aircraft.Propulsion.TOTAL_ENGINE_OIL_MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['WTS.WSP(30, 2)', '~WEIGHT.WOIL', '~WTSTAT.WSP(30, 2)', '~INERT.WOIL'],
- "FLOPS": None,
- "LEAPS1": ['(WeightABC)self._engine_oil_weight',
- 'aircraft.outputs.L0_weights_summary.engine_oil_weight',
- ]
- },
+ historical_name={
+ "GASP": None,
+ # ['WTS.WSP(30, 2)', '~WEIGHT.WOIL', '~WTSTAT.WSP(30, 2)', '~INERT.WOIL'],
+ "FLOPS": None,
+ "LEAPS1": [
+ '(WeightABC)self._engine_oil_weight',
+ 'aircraft.outputs.L0_weights_summary.engine_oil_weight',
+ ],
+ },
units='lbm',
desc='engine oil mass',
default_value=None,
@@ -4351,12 +4413,9 @@
add_meta_data(
Aircraft.Propulsion.TOTAL_ENGINE_POD_MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='lbm',
- desc='total engine pod mass for all engines on aircraft'
+ desc='total engine pod mass for all engines on aircraft',
)
add_meta_data(
@@ -4364,26 +4423,19 @@
# - see also: Aircraft.Propulsion.MISC_WEIGHT_SCALER
Aircraft.Propulsion.TOTAL_MISC_MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='lbm',
desc='sum of engine control, starter, and additional mass for all engines '
- 'on aircraft',
+ 'on aircraft',
default_value=None,
)
add_meta_data(
Aircraft.Propulsion.TOTAL_NUM_ENGINES,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='unitless',
- desc='total number of engines for the aircraft '
- '(fuselage, wing, or otherwise)',
+ desc='total number of engines for the aircraft ' '(fuselage, wing, or otherwise)',
types=int,
option=True,
default_value=None,
@@ -4392,10 +4444,7 @@
add_meta_data(
Aircraft.Propulsion.TOTAL_NUM_FUSELAGE_ENGINES,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='unitless',
desc='total number of fuselage-mounted engines for the aircraft',
types=int,
@@ -4406,10 +4455,7 @@
add_meta_data(
Aircraft.Propulsion.TOTAL_NUM_WING_ENGINES,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='unitless',
desc='total number of wing-mounted engines for the aircraft',
types=int,
@@ -4420,10 +4466,7 @@
add_meta_data(
Aircraft.Propulsion.TOTAL_REFERENCE_SLS_THRUST,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='lbf',
desc='total maximum thrust of all unscalsed engines on aircraft, sea-level static',
option=True,
@@ -4433,10 +4476,7 @@
add_meta_data(
Aircraft.Propulsion.TOTAL_SCALED_SLS_THRUST,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='lbf',
desc='total maximum thrust of all scaled engines on aircraft, sea-level static',
default_value=0.0,
@@ -4445,10 +4485,7 @@
add_meta_data(
Aircraft.Propulsion.TOTAL_STARTER_MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='lbm',
desc='total mass of starters for all engines on aircraft',
default_value=0.0,
@@ -4459,10 +4496,7 @@
# - see also: Aircraft.Engine.THRUST_REVERSERS_MASS_SCALER
Aircraft.Propulsion.TOTAL_THRUST_REVERSERS_MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='lbm',
desc='total mass of thrust reversers for all engines on aircraft',
default_value=None,
@@ -4479,10 +4513,7 @@
add_meta_data(
Aircraft.Strut.AREA,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.STRTWS',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.STRTWS', "FLOPS": None, "LEAPS1": None},
units='ft**2',
desc='strut area',
default_value=0,
@@ -4491,10 +4522,7 @@
add_meta_data(
Aircraft.Strut.AREA_RATIO,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.SSTQSW',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.SSTQSW', "FLOPS": None, "LEAPS1": None},
units='unitless',
desc='ratio of strut area to wing area',
)
@@ -4502,10 +4530,11 @@
add_meta_data(
Aircraft.Strut.ATTACHMENT_LOCATION,
meta_data=_MetaData,
- historical_name={"GASP": ['INGASP.STRUT', 'INGASP.STRUTX', 'INGASP.XSTRUT'],
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={
+ "GASP": ['INGASP.STRUT', 'INGASP.STRUTX', 'INGASP.XSTRUT'],
+ "FLOPS": None,
+ "LEAPS1": None,
+ },
units='ft',
desc='attachment location of strut the full attachment-to-attachment span',
)
@@ -4514,10 +4543,7 @@
add_meta_data(
Aircraft.Strut.ATTACHMENT_LOCATION_DIMENSIONLESS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='unitless',
desc='attachment location of strut as fraction of the half-span',
)
@@ -4525,10 +4551,7 @@
add_meta_data(
Aircraft.Strut.CHORD,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.STRTCHD',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.STRTCHD', "FLOPS": None, "LEAPS1": None},
units='ft',
desc='chord of the strut',
)
@@ -4536,36 +4559,28 @@
add_meta_data(
Aircraft.Strut.DIMENSIONAL_LOCATION_SPECIFIED,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units="unitless",
option=True,
default_value=True,
types=bool,
desc='if true the location of the strut is given dimensionally, otherwise '
- 'it is given non-dimensionally. In GASP this depended on STRUT',
+ 'it is given non-dimensionally. In GASP this depended on STRUT',
)
add_meta_data(
Aircraft.Strut.FUSELAGE_INTERFERENCE_FACTOR,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.CKSTRT',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.CKSTRT', "FLOPS": None, "LEAPS1": None},
units='unitless',
desc='strut/fuselage interference factor',
+ default_value=0.0,
)
add_meta_data(
Aircraft.Strut.LENGTH,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.STRTLNG',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.STRTLNG', "FLOPS": None, "LEAPS1": None},
units='ft',
desc='length of the strut',
default_value=0,
@@ -4574,10 +4589,7 @@
add_meta_data(
Aircraft.Strut.MASS,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.WSTRUT',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.WSTRUT', "FLOPS": None, "LEAPS1": None},
units='lbm',
desc='mass of the strut',
default_value=0,
@@ -4586,10 +4598,7 @@
add_meta_data(
Aircraft.Strut.MASS_COEFFICIENT,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.SKSTRUT',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.SKSTRUT', "FLOPS": None, "LEAPS1": None},
units="unitless",
desc='mass trend coefficient of the strut',
default_value=0,
@@ -4598,10 +4607,7 @@
add_meta_data(
Aircraft.Strut.THICKNESS_TO_CHORD,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.TCSTRT',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.TCSTRT', "FLOPS": None, "LEAPS1": None},
units="unitless",
desc='thickness to chord ratio of the strut',
default_value=0,
@@ -4618,10 +4624,7 @@
add_meta_data(
Aircraft.TailBoom.LENGTH,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.ELFFC',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.ELFFC', "FLOPS": None, "LEAPS1": None},
units='ft',
desc='cabin length for the tail boom fuselage',
)
@@ -4638,15 +4641,17 @@
add_meta_data(
Aircraft.VerticalTail.AREA,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.SVT',
- "FLOPS": 'WTIN.SVT', # ['&DEFINE.WTIN.SVT', 'EDETIN.SVT'],
- "LEAPS1": ['aircraft.inputs.L0_vertical_tails.area',
- 'aircraft.cached.L0_vertical_tails.area',
- ]
- },
+ historical_name={
+ "GASP": 'INGASP.SVT',
+ "FLOPS": 'WTIN.SVT', # ['&DEFINE.WTIN.SVT', 'EDETIN.SVT'],
+ "LEAPS1": [
+ 'aircraft.inputs.L0_vertical_tails.area',
+ 'aircraft.cached.L0_vertical_tails.area',
+ ],
+ },
units='ft**2',
desc='vertical tail theoretical area (per tail); overridden by vol_coeff '
- 'if vol_coeff > 0.0',
+ 'if vol_coeff > 0.0',
# this appears to never be calculated in Aviary, need to make user aware
# of Aviary overriding support
default_value=0.0,
@@ -4655,13 +4660,15 @@
add_meta_data(
Aircraft.VerticalTail.ASPECT_RATIO,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.ARVT',
- "FLOPS": 'WTIN.ARVT', # ['&DEFINE.WTIN.ARVT', 'EDETIN.ARVT'],
- "LEAPS1": ['aircraft.inputs.L0_vertical_tails.aspect_ratio',
- # ??? where is this assigned; potential error???
- 'aircraft.cached.L0_vertical_tails.aspect_ratio',
- ]
- },
+ historical_name={
+ "GASP": 'INGASP.ARVT',
+ "FLOPS": 'WTIN.ARVT', # ['&DEFINE.WTIN.ARVT', 'EDETIN.ARVT'],
+ "LEAPS1": [
+ 'aircraft.inputs.L0_vertical_tails.aspect_ratio',
+ # ??? where is this assigned; potential error???
+ 'aircraft.cached.L0_vertical_tails.aspect_ratio',
+ ],
+ },
units='unitless',
desc='vertical tail theoretical aspect ratio',
default_value=None,
@@ -4670,10 +4677,7 @@
add_meta_data(
Aircraft.VerticalTail.AVERAGE_CHORD,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.CBARVT',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.CBARVT', "FLOPS": None, "LEAPS1": None},
units='ft',
desc='mean aerodynamic chord of vertical tail',
)
@@ -4681,47 +4685,50 @@
add_meta_data(
Aircraft.VerticalTail.CHARACTERISTIC_LENGTH,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None, # 'MISSA.EL[3]',
- "LEAPS1": ['aircraft.outputs.L0_aerodynamics.mission_component_char_len_table[2]',
- 'aircraft.cached.L0_aerodynamics.mission_component_char_len_table[2]',
- ]
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # 'MISSA.EL[3]',
+ "LEAPS1": [
+ 'aircraft.outputs.L0_aerodynamics.mission_component_char_len_table[2]',
+ 'aircraft.cached.L0_aerodynamics.mission_component_char_len_table[2]',
+ ],
+ },
units='ft',
- desc='Reynolds characteristic length for the vertical tail'
+ desc='Reynolds characteristic length for the vertical tail',
)
add_meta_data(
Aircraft.VerticalTail.FINENESS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None, # 'MISSA.FR[3]',
- "LEAPS1": ['aircraft.outputs.L0_aerodynamics.mission_fineness_ratio_table[2]',
- 'aircraft.cached.L0_aerodynamics.mission_fineness_ratio_table[2]',
- ]
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # 'MISSA.FR[3]',
+ "LEAPS1": [
+ 'aircraft.outputs.L0_aerodynamics.mission_fineness_ratio_table[2]',
+ 'aircraft.cached.L0_aerodynamics.mission_fineness_ratio_table[2]',
+ ],
+ },
units='unitless',
- desc='vertical tail fineness ratio'
+ desc='vertical tail fineness ratio',
)
add_meta_data(
Aircraft.VerticalTail.FORM_FACTOR,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.CKVT',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.CKVT', "FLOPS": None, "LEAPS1": None},
units='unitless',
desc='vertical tail form factor',
+ default_value=1.25,
)
add_meta_data(
Aircraft.VerticalTail.LAMINAR_FLOW_LOWER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'AERIN.TRLV', # ['&DEFINE.AERIN.TRLV', 'XLAM.TRLV', ],
- "LEAPS1": 'aircraft.inputs.L0_aerodynamics.vertical_tail_percent_laminar_flow_lower_surface'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'AERIN.TRLV', # ['&DEFINE.AERIN.TRLV', 'XLAM.TRLV', ],
+ "LEAPS1": 'aircraft.inputs.L0_aerodynamics.vertical_tail_percent_laminar_flow_lower_surface',
+ },
units='unitless',
desc='define percent laminar flow for vertical tail lower surface',
default_value=0.0,
@@ -4730,10 +4737,11 @@
add_meta_data(
Aircraft.VerticalTail.LAMINAR_FLOW_UPPER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'AERIN.TRUV', # ['&DEFINE.AERIN.TRUV', 'XLAM.TRUV', ],
- "LEAPS1": 'aircraft.inputs.L0_aerodynamics.vertical_tail_percent_laminar_flow_upper_surface'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'AERIN.TRUV', # ['&DEFINE.AERIN.TRUV', 'XLAM.TRUV', ],
+ "LEAPS1": 'aircraft.inputs.L0_aerodynamics.vertical_tail_percent_laminar_flow_upper_surface',
+ },
units='unitless',
desc='define percent laminar flow for vertical tail upper surface',
default_value=0.0,
@@ -4744,13 +4752,15 @@
# - see also: Aircraft.VerticalTail.MASS_SCALER
Aircraft.VerticalTail.MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['WTS.WSP(3, 2)', '~WEIGHT.WVT', '~WTSTAT.WSP(3, 2)'],
- "FLOPS": None,
- "LEAPS1": ['(WeightABC)self._vertical_tail_weight',
- 'aircraft.outputs.L0_weights_summary.vertical_tail_weight',
- ]
- },
+ historical_name={
+ "GASP": None,
+ # ['WTS.WSP(3, 2)', '~WEIGHT.WVT', '~WTSTAT.WSP(3, 2)'],
+ "FLOPS": None,
+ "LEAPS1": [
+ '(WeightABC)self._vertical_tail_weight',
+ 'aircraft.outputs.L0_weights_summary.vertical_tail_weight',
+ ],
+ },
units='lbm',
desc='mass of vertical tail',
default_value=None,
@@ -4759,10 +4769,7 @@
add_meta_data(
Aircraft.VerticalTail.MASS_COEFFICIENT,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.SKZ',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.SKZ', "FLOPS": None, "LEAPS1": None},
units="unitless",
desc='mass trend coefficient of the vertical tail',
default_value=0.22,
@@ -4771,10 +4778,11 @@
add_meta_data(
Aircraft.VerticalTail.MASS_SCALER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.FRVT', # ['&DEFINE.WTIN.FRVT', 'WTS.FRVT'],
- "LEAPS1": 'aircraft.inputs.L0_overrides.vertical_tail_weight'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.FRVT', # ['&DEFINE.WTIN.FRVT', 'WTS.FRVT'],
+ "LEAPS1": 'aircraft.inputs.L0_overrides.vertical_tail_weight',
+ },
units='unitless',
desc='mass scaler of the vertical tail structure',
default_value=1.0,
@@ -4783,10 +4791,7 @@
add_meta_data(
Aircraft.VerticalTail.MOMENT_ARM,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.ELTV',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.ELTV', "FLOPS": None, "LEAPS1": None},
units='ft',
desc='moment arm of vertical tail',
)
@@ -4794,10 +4799,7 @@
add_meta_data(
Aircraft.VerticalTail.MOMENT_RATIO,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.BOELTV',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.BOELTV', "FLOPS": None, "LEAPS1": None},
units="unitless",
desc='ratio of wing span to vertical tail moment arm',
)
@@ -4805,10 +4807,11 @@
add_meta_data(
Aircraft.VerticalTail.NUM_TAILS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.NVERT', # ['&DEFINE.WTIN.NVERT', 'EDETIN.NVERT'],
- "LEAPS1": 'aircraft.inputs.L0_vertical_tails.count'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.NVERT', # ['&DEFINE.WTIN.NVERT', 'EDETIN.NVERT'],
+ "LEAPS1": 'aircraft.inputs.L0_vertical_tails.count',
+ },
units='unitless',
desc='number of vertical tails',
types=int,
@@ -4819,10 +4822,7 @@
add_meta_data(
Aircraft.VerticalTail.ROOT_CHORD,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.CRCLVT',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.CRCLVT', "FLOPS": None, "LEAPS1": None},
units='ft',
desc='root chord of vertical tail',
)
@@ -4830,10 +4830,7 @@
add_meta_data(
Aircraft.VerticalTail.SPAN,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.BVT',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.BVT', "FLOPS": None, "LEAPS1": None},
units='ft',
desc='span of vertical tail',
)
@@ -4841,12 +4838,14 @@
add_meta_data(
Aircraft.VerticalTail.SWEEP,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.DWPQCV',
- "FLOPS": 'WTIN.SWPVT', # ['&DEFINE.WTIN.SWPVT', 'WTS.SWPVT'],
- "LEAPS1": ['aircraft.inputs.L0_vertical_tail.sweep_at_quarter_chord',
- 'aircraft.cached.L0_vertical_tail.sweep_at_quarter_chord'
- ]
- },
+ historical_name={
+ "GASP": 'INGASP.DWPQCV',
+ "FLOPS": 'WTIN.SWPVT', # ['&DEFINE.WTIN.SWPVT', 'WTS.SWPVT'],
+ "LEAPS1": [
+ 'aircraft.inputs.L0_vertical_tail.sweep_at_quarter_chord',
+ 'aircraft.cached.L0_vertical_tail.sweep_at_quarter_chord',
+ ],
+ },
units='deg',
desc='quarter-chord sweep of vertical tail',
)
@@ -4854,10 +4853,11 @@
add_meta_data(
Aircraft.VerticalTail.TAPER_RATIO,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.SLMV',
- "FLOPS": 'WTIN.TRVT', # ['&DEFINE.WTIN.TRVT', 'EDETIN.TRVT'],
- "LEAPS1": 'aircraft.inputs.L0_vertical_tails.taper_ratio'
- },
+ historical_name={
+ "GASP": 'INGASP.SLMV',
+ "FLOPS": 'WTIN.TRVT', # ['&DEFINE.WTIN.TRVT', 'EDETIN.TRVT'],
+ "LEAPS1": 'aircraft.inputs.L0_vertical_tails.taper_ratio',
+ },
units='unitless',
desc='vertical tail theoretical taper ratio',
default_value=None,
@@ -4866,12 +4866,14 @@
add_meta_data(
Aircraft.VerticalTail.THICKNESS_TO_CHORD,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.TCVT',
- "FLOPS": 'WTIN.TCVT', # ['&DEFINE.WTIN.TCVT', 'EDETIN.TCVT', ],
- "LEAPS1": ['aircraft.inputs.L0_vertical_tails.thickness_to_chord_ratio',
- 'aircraft.cached.L0_vertical_tails.thickness_to_chord_ratio',
- ]
- },
+ historical_name={
+ "GASP": 'INGASP.TCVT',
+ "FLOPS": 'WTIN.TCVT', # ['&DEFINE.WTIN.TCVT', 'EDETIN.TCVT', ],
+ "LEAPS1": [
+ 'aircraft.inputs.L0_vertical_tails.thickness_to_chord_ratio',
+ 'aircraft.cached.L0_vertical_tails.thickness_to_chord_ratio',
+ ],
+ },
units='unitless',
desc='vertical tail thickness-chord ratio',
default_value=0.0,
@@ -4880,10 +4882,7 @@
add_meta_data(
Aircraft.VerticalTail.VOLUME_COEFFICIENT,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.VBARVX',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.VBARVX', "FLOPS": None, "LEAPS1": None},
units="unitless",
desc='tail volume coefficient of the vertical tail',
)
@@ -4893,13 +4892,15 @@
# - see also: Aircraft.VerticalTail.WETTED_AREA_SCALER
Aircraft.VerticalTail.WETTED_AREA,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None, # ['ACTWET.SWTVT', 'MISSA.SWET[3]', ],
- "LEAPS1": ['aircraft.outputs.L0_aerodynamics.vertical_tail_wetted_area',
- 'aircraft.outputs.L0_aerodynamics.mission_component_wetted_area_table[2]',
- 'aircraft.cached.L0_aerodynamics.mission_component_wetted_area_table[2]',
- ]
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # ['ACTWET.SWTVT', 'MISSA.SWET[3]', ],
+ "LEAPS1": [
+ 'aircraft.outputs.L0_aerodynamics.vertical_tail_wetted_area',
+ 'aircraft.outputs.L0_aerodynamics.mission_component_wetted_area_table[2]',
+ 'aircraft.cached.L0_aerodynamics.mission_component_wetted_area_table[2]',
+ ],
+ },
units='ft**2',
desc='vertical tails wetted area',
default_value=None,
@@ -4908,10 +4909,11 @@
add_meta_data(
Aircraft.VerticalTail.WETTED_AREA_SCALER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'AERIN.SWETV', # ['&DEFINE.AERIN.SWETV', 'AWETO.SWETV', ],
- "LEAPS1": 'aircraft.inputs.L0_aerodynamics.vertical_tail_wetted_area'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'AERIN.SWETV', # ['&DEFINE.AERIN.SWETV', 'AWETO.SWETV', ],
+ "LEAPS1": 'aircraft.inputs.L0_aerodynamics.vertical_tail_wetted_area',
+ },
units='unitless',
desc='vertical tail wetted area scaler',
default_value=1.0,
@@ -4930,59 +4932,65 @@
add_meta_data(
Aircraft.Wing.AEROELASTIC_TAILORING_FACTOR,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['&DEFINE.WTIN.FAERT', 'WTS.FAERT', '~WWGHT.FAERT', '~BNDMAT.FAERT'],
- "FLOPS": 'WTIN.FAERT',
- "LEAPS1": 'aircraft.inputs.L0_wing.aeroelastic_fraction'
- },
+ historical_name={
+ "GASP": None,
+ # ['&DEFINE.WTIN.FAERT', 'WTS.FAERT', '~WWGHT.FAERT', '~BNDMAT.FAERT'],
+ "FLOPS": 'WTIN.FAERT',
+ "LEAPS1": 'aircraft.inputs.L0_wing.aeroelastic_fraction',
+ },
units='unitless',
desc='Define the decimal fraction of amount of aeroelastic tailoring used '
- 'in design of wing where: 0.0 == no aeroelastic tailoring; '
- '1.0 == maximum aeroelastic tailoring.',
+ 'in design of wing where: 0.0 == no aeroelastic tailoring; '
+ '1.0 == maximum aeroelastic tailoring.',
default_value=0.0,
)
add_meta_data(
Aircraft.Wing.AIRFOIL_TECHNOLOGY,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'AERIN.AITEK',
- # [ # inputs
- # '&DEFINE.AERIN.AITEK', 'EDETIN.AITEK',
- # # outputs
- # 'MISSA.AITEK', 'MISSA.AITEKX',
- # ],
- "LEAPS1": ['aircraft.inputs.L0_aerodynamics.airfoil',
- 'aircraft.outputs.L0_aerodynamics.mission_airfoil',
- 'aircraft.cached.L0_aerodynamics.mission_airfoil',
- ]
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'AERIN.AITEK',
+ # [ # inputs
+ # '&DEFINE.AERIN.AITEK', 'EDETIN.AITEK',
+ # # outputs
+ # 'MISSA.AITEK', 'MISSA.AITEKX',
+ # ],
+ "LEAPS1": [
+ 'aircraft.inputs.L0_aerodynamics.airfoil',
+ 'aircraft.outputs.L0_aerodynamics.mission_airfoil',
+ 'aircraft.cached.L0_aerodynamics.mission_airfoil',
+ ],
+ },
units='unitless',
desc='Airfoil technology parameter. Limiting values are: 1.0 represents '
- 'conventional technology wing (Default); 2.0 represents advanced '
- 'technology wing.',
+ 'conventional technology wing (Default); 2.0 represents advanced '
+ 'technology wing.',
default_value=1.0,
+ types=float,
option=True,
)
add_meta_data(
Aircraft.Wing.AREA,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.SW',
- "FLOPS": 'CONFIN.SW',
- # [ # inputs
- # '&DEFINE.CONFIN.SW', 'PARVAR.DVD(1,4)',
- # # outputs
- # 'CONFIG.SW', 'CONFIG.DVA(4)', '~FLOPS.DVA(4)', '~ANALYS.DVA(4)',
- # '~TOFF.SW', '~LNDING.SW', '~PROFIL.SW', '~INMDAT.SW', '~WWGHT.SW',
- # # other
- # 'MISSA.SREF', '~CDCC.SREF',
- # ],
- "LEAPS1": ['aircraft.inputs.L0_design_variables.wing_ref_area',
- 'aircraft.outputs.L0_design_variables.wing_ref_area',
- 'aircraft.outputs.L0_design_variables.mission_wing_ref_area',
- ]
- },
+ historical_name={
+ "GASP": 'INGASP.SW',
+ "FLOPS": 'CONFIN.SW',
+ # [ # inputs
+ # '&DEFINE.CONFIN.SW', 'PARVAR.DVD(1,4)',
+ # # outputs
+ # 'CONFIG.SW', 'CONFIG.DVA(4)', '~FLOPS.DVA(4)', '~ANALYS.DVA(4)',
+ # '~TOFF.SW', '~LNDING.SW', '~PROFIL.SW', '~INMDAT.SW', '~WWGHT.SW',
+ # # other
+ # 'MISSA.SREF', '~CDCC.SREF',
+ # ],
+ "LEAPS1": [
+ 'aircraft.inputs.L0_design_variables.wing_ref_area',
+ 'aircraft.outputs.L0_design_variables.wing_ref_area',
+ 'aircraft.outputs.L0_design_variables.mission_wing_ref_area',
+ ],
+ },
units='ft**2',
desc='reference wing area',
default_value=0.0,
@@ -4991,22 +4999,24 @@
add_meta_data(
Aircraft.Wing.ASPECT_RATIO,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.AR',
- "FLOPS": 'CONFIN.AR',
- # [ # inputs
- # '&DEFINE.CONFIN.AR', 'PARVAR.DVD(1, 2)', '~BUFFET.AR', '~CDPP.AR',
- # '~DPREP.ARX',
- # # outputs
- # 'CONFIG.AR', 'CONFIG.DVA(2)', '~FLOPS.DVA(2)', '~ANALYS.DVA(2)',
- # '~TOFF.ARN', '~LNDING.ARN', '~PROFIL.ARN', '~WWGHT.ARN', '~INERT.ARN',
- # # other
- # 'MISSA.AR', 'MISSA.ARX', '~CDCC.AR', '~CLDESN.AR', '~MDESN.AR',
- # ],
- "LEAPS1": ['aircraft.inputs.L0_design_variables.wing_aspect_ratio',
- 'aircraft.outputs.L0_design_variables.wing_aspect_ratio',
- 'aircraft.outputs.L0_design_variables.mission_wing_aspect_ratio',
- ]
- },
+ historical_name={
+ "GASP": 'INGASP.AR',
+ "FLOPS": 'CONFIN.AR',
+ # [ # inputs
+ # '&DEFINE.CONFIN.AR', 'PARVAR.DVD(1, 2)', '~BUFFET.AR', '~CDPP.AR',
+ # '~DPREP.ARX',
+ # # outputs
+ # 'CONFIG.AR', 'CONFIG.DVA(2)', '~FLOPS.DVA(2)', '~ANALYS.DVA(2)',
+ # '~TOFF.ARN', '~LNDING.ARN', '~PROFIL.ARN', '~WWGHT.ARN', '~INERT.ARN',
+ # # other
+ # 'MISSA.AR', 'MISSA.ARX', '~CDCC.AR', '~CLDESN.AR', '~MDESN.AR',
+ # ],
+ "LEAPS1": [
+ 'aircraft.inputs.L0_design_variables.wing_aspect_ratio',
+ 'aircraft.outputs.L0_design_variables.wing_aspect_ratio',
+ 'aircraft.outputs.L0_design_variables.mission_wing_aspect_ratio',
+ ],
+ },
units='unitless',
desc='ratio of the wing span to its mean chord',
default_value=0.0,
@@ -5015,57 +5025,59 @@
add_meta_data(
Aircraft.Wing.ASPECT_RATIO_REF,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.ARREF', # ['&DEFINE.WTIN.ARREF'],
- "LEAPS1": 'aircraft.inputs.L0_detailed_wing.ref_aspect_ratio'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.ARREF', # ['&DEFINE.WTIN.ARREF'],
+ "LEAPS1": 'aircraft.inputs.L0_detailed_wing.ref_aspect_ratio',
+ },
units='unitless',
- desc='Reference aspect ratio, used for detailed wing bending.'
+ desc='Reference aspect ratio, used for detailed wing mass estimation.',
)
add_meta_data(
Aircraft.Wing.AVERAGE_CHORD,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.CBARW',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.CBARW', "FLOPS": None, "LEAPS1": None},
units='ft',
desc='mean aerodynamic chord of the wing',
)
add_meta_data(
- Aircraft.Wing.BENDING_FACTOR,
+ Aircraft.Wing.BENDING_MATERIAL_FACTOR,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None, # ['~WWGHT.BT', '~BNDMAT.W'],
- "LEAPS1": 'aircraft.outputs.L0_wing.bending_material_factor'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # ['~WWGHT.BT', '~BNDMAT.W'],
+ "LEAPS1": 'aircraft.outputs.L0_wing.bending_material_factor',
+ },
units='unitless',
- desc='wing bending factor'
+ desc='Wing bending material factor with sweep adjustment. Used to compute '
+ 'Aircraft.Wing.BENDING_MATERIAL_MASS',
)
add_meta_data(
# Note user override
- # - see also: Aircraft.Wing.BENDING_MASS_SCALER
- Aircraft.Wing.BENDING_MASS,
+ # - see also: Aircraft.Wing.BENDING_MATERIAL_MASS_SCALER
+ Aircraft.Wing.BENDING_MATERIAL_MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None, # '~WWGHT.W1',
- "LEAPS1": 'aircraft.outputs.L0_wing.bending_mat_weight'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # '~WWGHT.W1',
+ "LEAPS1": 'aircraft.outputs.L0_wing.bending_mat_weight',
+ },
units='lbm',
desc='wing mass breakdown term 1',
default_value=None,
)
add_meta_data(
- Aircraft.Wing.BENDING_MASS_SCALER,
+ Aircraft.Wing.BENDING_MATERIAL_MASS_SCALER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.FRWI1', # ['&DEFINE.WTIN.FRWI1', 'WIOR3.FRWI1'],
- "LEAPS1": 'aircraft.inputs.L0_overrides.wing_bending_mat_weight'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.FRWI1', # ['&DEFINE.WTIN.FRWI1', 'WIOR3.FRWI1'],
+ "LEAPS1": 'aircraft.inputs.L0_overrides.wing_bending_mat_weight',
+ },
units='unitless',
desc='mass scaler of the bending wing mass term',
default_value=1.0,
@@ -5076,10 +5088,11 @@
# - see also: Aircraft.Wing.BWB_AFTBODY_MASS_SCALER
Aircraft.Wing.BWB_AFTBODY_MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None, # '~WWGHT.W4',
- "LEAPS1": 'aircraft.outputs.L0_wing.bwb_aft_body_weight'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # '~WWGHT.W4',
+ "LEAPS1": 'aircraft.outputs.L0_wing.bwb_aft_body_weight',
+ },
units='lbm',
desc='wing mass breakdown term 4',
default_value=None,
@@ -5088,10 +5101,11 @@
add_meta_data(
Aircraft.Wing.BWB_AFTBODY_MASS_SCALER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.FRWI4', # ['&DEFINE.WTIN.FRWI4', 'WIOR3.FRWI4'],
- "LEAPS1": 'aircraft.inputs.L0_overrides.bwb_aft_body_weight'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.FRWI4', # ['&DEFINE.WTIN.FRWI4', 'WIOR3.FRWI4'],
+ "LEAPS1": 'aircraft.inputs.L0_overrides.bwb_aft_body_weight',
+ },
units='unitless',
desc='mass scaler of the blended-wing-body aft-body wing mass term',
default_value=1.0,
@@ -5100,10 +5114,7 @@
add_meta_data(
Aircraft.Wing.CENTER_CHORD,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.CRCLW',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.CRCLW', "FLOPS": None, "LEAPS1": None},
units='ft',
desc='wing chord at fuselage centerline',
)
@@ -5111,108 +5122,107 @@
add_meta_data(
Aircraft.Wing.CENTER_DISTANCE,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.XWQLF',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.XWQLF', "FLOPS": None, "LEAPS1": None},
units='unitless',
desc='distance (percent fuselage length) from nose to the wing '
- 'aerodynamic center',
+ 'aerodynamic center',
)
add_meta_data(
Aircraft.Wing.CHARACTERISTIC_LENGTH,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None, # 'MISSA.EL[1]',
- "LEAPS1": ['aircraft.outputs.L0_aerodynamics.mission_component_char_len_table[0]',
- 'aircraft.cached.L0_aerodynamics.mission_component_char_len_table[0]',
- ]
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # 'MISSA.EL[1]',
+ "LEAPS1": [
+ 'aircraft.outputs.L0_aerodynamics.mission_component_char_len_table[0]',
+ 'aircraft.cached.L0_aerodynamics.mission_component_char_len_table[0]',
+ ],
+ },
units='ft',
- desc='Reynolds characteristic length for the wing'
+ desc='Reynolds characteristic length for the wing',
)
add_meta_data(
Aircraft.Wing.CHOOSE_FOLD_LOCATION,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units="unitless",
default_value=True,
types=bool,
option=True,
desc='if true, fold location is based on your chosen value, otherwise it is '
- 'based on strut location. In GASP this depended on STRUT or YWFOLD',
+ 'based on strut location. In GASP this depended on STRUT or YWFOLD',
)
add_meta_data(
# see also: station_chord_lengths
Aircraft.Wing.CHORD_PER_SEMISPAN_DIST,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.CHD', # ['&DEFINE.WTIN.CHD', 'WDEF.CHD'],
- "LEAPS1": 'aircraft.inputs.L0_detailed_wing.wing_station_chord_lengths'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.CHD', # ['&DEFINE.WTIN.CHD', 'WDEF.CHD'],
+ "LEAPS1": 'aircraft.inputs.L0_detailed_wing.wing_station_chord_lengths',
+ },
units='unitless',
desc='chord lengths as fractions of semispan at station locations; '
- 'overwrites station_chord_lengths',
+ 'overwrites station_chord_lengths',
default_value=None,
)
add_meta_data(
Aircraft.Wing.COMPOSITE_FRACTION,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['&DEFINE.WTIN.FCOMP', 'WTS.FCOMP', '~WWGHT.FCOMP'],
- "FLOPS": 'WTIN.FCOMP',
- "LEAPS1": 'aircraft.inputs.L0_wing.composite_fraction'
- },
+ historical_name={
+ "GASP": None,
+ # ['&DEFINE.WTIN.FCOMP', 'WTS.FCOMP', '~WWGHT.FCOMP'],
+ "FLOPS": 'WTIN.FCOMP',
+ "LEAPS1": 'aircraft.inputs.L0_wing.composite_fraction',
+ },
units='unitless',
desc='Define the decimal fraction of amount of composites used in wing '
- 'structure where: 0.0 == no composites; 1.0 == maximum use of composites, '
- 'approximately equivalent bending_mat_weight=.6, '
- 'struct_weights=.83, misc_weight=.7 '
- '(not necessarily all composite).',
+ 'structure where: 0.0 == no composites; 1.0 == maximum use of composites, '
+ 'approximately equivalent bending_mat_weight=.6, '
+ 'struct_weights=.83, misc_weight=.7 '
+ '(not necessarily all composite).',
default_value=0.0,
)
add_meta_data(
Aircraft.Wing.CONTROL_SURFACE_AREA,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None, # '~WEIGHT.SFLAP', # TODO ~WWGHT.SFLAP: similar, but separate calculation
- "LEAPS1": ['~WeightABC._pre_surface_ctrls.surface_flap_area', # TODO ~WingWeight.__call__.flap_ratio: see ~WWGHT.SFLAP
- '~WeightABC.calc_surface_ctrls.surface_flap_area',
- ]
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # '~WEIGHT.SFLAP', # TODO ~WWGHT.SFLAP: similar, but separate calculation
+ "LEAPS1": [
+ # TODO ~WingWeight.__call__.flap_ratio: see ~WWGHT.SFLAP
+ '~WeightABC._pre_surface_ctrls.surface_flap_area',
+ '~WeightABC.calc_surface_ctrls.surface_flap_area',
+ ],
+ },
units='ft**2',
- desc='area of wing control surfaces'
+ desc='area of wing control surfaces',
)
add_meta_data(
Aircraft.Wing.CONTROL_SURFACE_AREA_RATIO,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['&DEFINE.WTIN.FLAPR', 'WTS.FLAPR', '~WWGHT.FLAPR'],
- "FLOPS": 'WTIN.FLAPR',
- "LEAPS1": 'aircraft.inputs.L0_wing.flap_ratio'
- },
+ historical_name={
+ "GASP": None,
+ # ['&DEFINE.WTIN.FLAPR', 'WTS.FLAPR', '~WWGHT.FLAPR'],
+ "FLOPS": 'WTIN.FLAPR',
+ "LEAPS1": 'aircraft.inputs.L0_wing.flap_ratio',
+ },
units='unitless',
desc='Defines the ratio of total moveable wing control surface areas '
- '(flaps, elevators, spoilers, etc.) to reference wing area.',
+ '(flaps, elevators, spoilers, etc.) to reference wing area.',
default_value=0.333,
)
add_meta_data(
Aircraft.Wing.DETAILED_WING,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='unitless',
desc='use a detailed wing model',
option=True,
@@ -5223,49 +5233,52 @@
add_meta_data(
Aircraft.Wing.DIHEDRAL,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.DIH', # ['&DEFINE.WTIN.DIH', 'WTS.DIH', ],
- "LEAPS1": ['aircraft.inputs.L0_wing.dihedral',
- # unit converted value for reporting
- 'aircraft.cached.L0_wing.dihedral',
- ]
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.DIH', # ['&DEFINE.WTIN.DIH', 'WTS.DIH', ],
+ "LEAPS1": [
+ 'aircraft.inputs.L0_wing.dihedral',
+ # unit converted value for reporting
+ 'aircraft.cached.L0_wing.dihedral',
+ ],
+ },
units='deg',
desc='wing dihedral (positive) or anhedral (negative) angle',
- default_value=0.0
+ default_value=0.0,
)
add_meta_data(
Aircraft.Wing.ENG_POD_INERTIA_FACTOR,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None, # '~WWGHT.CAYE',
- "LEAPS1": 'aircraft.outputs.L0_wing.engine_inertia_relief_factor'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # '~WWGHT.CAYE',
+ "LEAPS1": 'aircraft.outputs.L0_wing.engine_inertia_relief_factor',
+ },
units='unitless',
- desc='engine inertia relief factor'
+ desc='Engine inertia relief factor for wingspan inboard of engine locations. Used '
+ 'to compute Aircraft.Wing.BENDING_MATERIAL_MASS',
)
add_meta_data(
Aircraft.Wing.FINENESS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None, # 'MISSA.FR[1]',
- "LEAPS1": ['aircraft.outputs.L0_aerodynamics.mission_fineness_ratio_table[0]',
- 'aircraft.cached.L0_aerodynamics.mission_fineness_ratio_table[0]',
- ]
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # 'MISSA.FR[1]',
+ "LEAPS1": [
+ 'aircraft.outputs.L0_aerodynamics.mission_fineness_ratio_table[0]',
+ 'aircraft.cached.L0_aerodynamics.mission_fineness_ratio_table[0]',
+ ],
+ },
units='unitless',
- desc='wing fineness ratio'
+ desc='wing fineness ratio',
)
add_meta_data(
Aircraft.Wing.FLAP_CHORD_RATIO,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.CFOC',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.CFOC', "FLOPS": None, "LEAPS1": None},
units='unitless',
desc='ratio of flap chord to wing chord',
)
@@ -5273,32 +5286,23 @@
add_meta_data(
Aircraft.Wing.FLAP_DEFLECTION_LANDING,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.DFLPLD',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.DFLPLD', "FLOPS": None, "LEAPS1": None},
units='deg',
- desc='Deflection of flaps for landing'
+ desc='Deflection of flaps for landing',
)
add_meta_data(
Aircraft.Wing.FLAP_DEFLECTION_TAKEOFF,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.DFLPTO',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.DFLPTO', "FLOPS": None, "LEAPS1": None},
units='deg',
- desc='Deflection of flaps for takeoff'
+ desc='Deflection of flaps for takeoff',
)
add_meta_data(
Aircraft.Wing.FLAP_DRAG_INCREMENT_OPTIMUM,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.DCDOTE',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.DCDOTE', "FLOPS": None, "LEAPS1": None},
units="unitless",
desc='drag coefficient increment due to optimally deflected trailing edge flaps (default depends on flap type)',
)
@@ -5306,10 +5310,7 @@
add_meta_data(
Aircraft.Wing.FLAP_LIFT_INCREMENT_OPTIMUM,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.DCLMTE',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.DCLMTE', "FLOPS": None, "LEAPS1": None},
units="unitless",
desc='lift coefficient increment due to optimally deflected trailing edge flaps (default depends on flap type)',
)
@@ -5317,10 +5318,7 @@
add_meta_data(
Aircraft.Wing.FLAP_SPAN_RATIO,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.BTEOB',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.BTEOB', "FLOPS": None, "LEAPS1": None},
units="unitless",
desc='fraction of wing trailing edge with flaps',
default_value=0.65,
@@ -5329,41 +5327,33 @@
add_meta_data(
Aircraft.Wing.FLAP_TYPE,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.JFLTYP',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.JFLTYP', "FLOPS": None, "LEAPS1": None},
units="unitless",
default_value=FlapType.DOUBLE_SLOTTED,
- types=FlapType,
+ types=(FlapType, int, str),
+ multivalue=True,
option=True,
desc='Set the flap type. Available choices are: plain, split, single_slotted, '
- 'double_slotted, triple_slotted, fowler, and double_slotted_fowler. '
- 'In GASP this was JFLTYP and was provided as an int from 1-7',
+ 'double_slotted, triple_slotted, fowler, and double_slotted_fowler. '
+ 'In GASP this was JFLTYP and was provided as an int from 1-7',
)
add_meta_data(
Aircraft.Wing.FOLD_DIMENSIONAL_LOCATION_SPECIFIED,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units="unitless",
default_value=False,
types=bool,
option=True,
desc='if true, fold location from the chosen input is an actual fold span, '
- 'if false it is normalized to the half span. In GASP this depended on STRUT or YWFOLD'
+ 'if false it is normalized to the half span. In GASP this depended on STRUT or YWFOLD',
)
add_meta_data(
Aircraft.Wing.FOLD_MASS,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.WWFOLD',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.WWFOLD', "FLOPS": None, "LEAPS1": None},
units='lbm',
desc='mass of the folding area of the wing',
default_value=0,
@@ -5372,10 +5362,7 @@
add_meta_data(
Aircraft.Wing.FOLD_MASS_COEFFICIENT,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.SKWFOLD',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.SKWFOLD', "FLOPS": None, "LEAPS1": None},
units="unitless",
desc='mass trend coefficient of the wing fold',
default_value=0,
@@ -5384,10 +5371,7 @@
add_meta_data(
Aircraft.Wing.FOLDED_SPAN,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.YWFOLD',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.YWFOLD', "FLOPS": None, "LEAPS1": None},
units='ft',
desc='folded wingspan',
default_value=118,
@@ -5396,10 +5380,7 @@
add_meta_data(
Aircraft.Wing.FOLDED_SPAN_DIMENSIONLESS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units="unitless",
desc='folded wingspan',
default_value=1,
@@ -5408,46 +5389,40 @@
add_meta_data(
Aircraft.Wing.FOLDING_AREA,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.SWFOLD',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.SWFOLD', "FLOPS": None, "LEAPS1": None},
units='ft**2',
- desc='wing area of folding part of wings'
+ desc='wing area of folding part of wings',
)
add_meta_data(
Aircraft.Wing.FORM_FACTOR,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.CKW',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.CKW', "FLOPS": None, "LEAPS1": None},
units='unitless',
desc='wing form factor',
+ default_value=1.25,
)
add_meta_data(
Aircraft.Wing.FUSELAGE_INTERFERENCE_FACTOR,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.CKI',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.CKI', "FLOPS": None, "LEAPS1": None},
units='unitless',
desc='wing/fuselage interference factor',
+ default_value=1.1,
)
add_meta_data(
Aircraft.Wing.GLOVE_AND_BAT,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.GLOV',
- # ['&DEFINE.WTIN.GLOV', 'EDETIN.GLOV', '~TOFF.GLOV', '~LNDING.GLOV',
- # '~PROFIL.GLOV'
- # ],
- "LEAPS1": 'aircraft.inputs.L0_wing.glove_and_bat'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.GLOV',
+ # ['&DEFINE.WTIN.GLOV', 'EDETIN.GLOV', '~TOFF.GLOV', '~LNDING.GLOV',
+ # '~PROFIL.GLOV'
+ # ],
+ "LEAPS1": 'aircraft.inputs.L0_wing.glove_and_bat',
+ },
units='ft**2',
desc='total glove and bat area beyond theoretical wing',
default_value=0.0,
@@ -5456,10 +5431,7 @@
add_meta_data(
Aircraft.Wing.HAS_FOLD,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units="unitless",
option=True,
desc='if true a fold will be included in the wing',
@@ -5470,10 +5442,7 @@
add_meta_data(
Aircraft.Wing.HAS_STRUT,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
option=True,
units="unitless",
default_value=False,
@@ -5484,22 +5453,16 @@
add_meta_data(
Aircraft.Wing.HEIGHT,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.HTG',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.HTG', "FLOPS": None, "LEAPS1": None},
units='ft',
desc='wing height above ground during ground run, measured at roughly '
- 'location of mean aerodynamic chord at the mid plane of the wing',
+ 'location of mean aerodynamic chord at the mid plane of the wing',
)
add_meta_data(
Aircraft.Wing.HIGH_LIFT_MASS,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.WHLDEV',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.WHLDEV', "FLOPS": None, "LEAPS1": None},
units='lbm',
desc='mass of the high lift devices',
)
@@ -5507,10 +5470,7 @@
add_meta_data(
Aircraft.Wing.HIGH_LIFT_MASS_COEFFICIENT,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.WCFLAP',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.WCFLAP', "FLOPS": None, "LEAPS1": None},
units="unitless",
desc='mass trend coefficient of high lift devices (default depends on flap type)',
)
@@ -5518,10 +5478,7 @@
add_meta_data(
Aircraft.Wing.INCIDENCE,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.EYEW',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.EYEW', "FLOPS": None, "LEAPS1": None},
units='deg',
desc='incidence angle of the wings with respect to the fuselage',
default_value=0.0,
@@ -5532,13 +5489,14 @@
# NOTE required for blended-wing-body type aircraft
Aircraft.Wing.INPUT_STATION_DIST,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.ETAW', # ['&DEFINE.WTIN.ETAW', 'WDEF.ETAW'],
- "LEAPS1": 'aircraft.inputs.L0_detailed_wing.wing_station_locations'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.ETAW', # ['&DEFINE.WTIN.ETAW', 'WDEF.ETAW'],
+ "LEAPS1": 'aircraft.inputs.L0_detailed_wing.wing_station_locations',
+ },
units='unitless',
desc='wing station locations as fractions of semispan; overwrites '
- 'station_locations',
+ 'station_locations',
option=True,
default_value=None,
)
@@ -5546,10 +5504,11 @@
add_meta_data(
Aircraft.Wing.LAMINAR_FLOW_LOWER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'AERIN.TRLW', # ['&DEFINE.AERIN.TRLW', 'XLAM.TRLW', ],
- "LEAPS1": 'aircraft.inputs.L0_aerodynamics.wing_percent_laminar_flow_lower_surface'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'AERIN.TRLW', # ['&DEFINE.AERIN.TRLW', 'XLAM.TRLW', ],
+ "LEAPS1": 'aircraft.inputs.L0_aerodynamics.wing_percent_laminar_flow_lower_surface',
+ },
units='unitless',
desc='define percent laminar flow for wing lower surface',
default_value=0.0,
@@ -5558,10 +5517,11 @@
add_meta_data(
Aircraft.Wing.LAMINAR_FLOW_UPPER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'AERIN.TRUW', # ['&DEFINE.AERIN.TRUW', 'XLAM.TRUW', ],
- "LEAPS1": 'aircraft.inputs.L0_aerodynamics.wing_percent_laminar_flow_upper_surface'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'AERIN.TRUW', # ['&DEFINE.AERIN.TRUW', 'XLAM.TRUW', ],
+ "LEAPS1": 'aircraft.inputs.L0_aerodynamics.wing_percent_laminar_flow_upper_surface',
+ },
units='unitless',
desc='define percent laminar flow for wing upper surface',
default_value=0.0,
@@ -5570,10 +5530,7 @@
add_meta_data(
Aircraft.Wing.LEADING_EDGE_SWEEP,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.SWPLE',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.SWPLE', "FLOPS": None, "LEAPS1": None},
units='rad',
desc='sweep angle at leading edge of wing',
)
@@ -5581,13 +5538,13 @@
add_meta_data(
Aircraft.Wing.LOAD_DISTRIBUTION_CONTROL,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.PDIST', # ['&DEFINE.WTIN.PDIST', 'WDEF.PDIST'],
- "LEAPS1": 'aircraft.inputs.L0_detailed_wing.pressure_dist'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.PDIST', # ['&DEFINE.WTIN.PDIST', 'WDEF.PDIST'],
+ "LEAPS1": 'aircraft.inputs.L0_detailed_wing.pressure_dist',
+ },
units='unitless',
- desc='controls spatial distribution of integratin stations for detailed'
- ' wing',
+ desc='controls spatial distribution of integratin stations for detailed' ' wing',
default_value=2.0,
option=True,
)
@@ -5595,10 +5552,11 @@
add_meta_data(
Aircraft.Wing.LOAD_FRACTION,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.PCTL', # ['&DEFINE.WTIN.PCTL', 'WDEF.PCTL'],
- "LEAPS1": 'aircraft.inputs.L0_detailed_wing.carried_load_fraction'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.PCTL', # ['&DEFINE.WTIN.PCTL', 'WDEF.PCTL'],
+ "LEAPS1": 'aircraft.inputs.L0_detailed_wing.carried_load_fraction',
+ },
units='unitless',
desc='fraction of load carried by defined wing',
default_value=1.0,
@@ -5607,24 +5565,26 @@
add_meta_data(
Aircraft.Wing.LOAD_PATH_SWEEP_DIST,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.SWL', # ['&DEFINE.WTIN.SWL', 'WDEF.SWL'],
- "LEAPS1": 'aircraft.inputs.L0_detailed_wing.wing_station_load_path_sweeps'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.SWL', # ['&DEFINE.WTIN.SWL', 'WDEF.SWL'],
+ "LEAPS1": 'aircraft.inputs.L0_detailed_wing.wing_station_load_path_sweeps',
+ },
units='deg',
desc='Define the sweep of load path at station locations. Typically '
- 'parallel to rear spar tending toward max t/c of airfoil. The Ith value '
- 'is used between wing stations I and I+1.',
+ 'parallel to rear spar tending toward max t/c of airfoil. The Ith value '
+ 'is used between wing stations I and I+1.',
default_value=None,
)
add_meta_data(
Aircraft.Wing.LOADING,
meta_data=_MetaData,
- historical_name={"GASP": ['INGASP.WGS', 'INGASP.WOS'],
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={
+ "GASP": ['INGASP.WGS', 'INGASP.WOS'],
+ "FLOPS": None,
+ "LEAPS1": None,
+ },
units='lbf/ft**2',
desc='wing loading',
)
@@ -5632,10 +5592,7 @@
add_meta_data(
Aircraft.Wing.LOADING_ABOVE_20,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units="unitless",
desc='if true the wing loading is stated to be above 20 psf. In GASP this depended on WGS',
option=True,
@@ -5648,13 +5605,15 @@
# - see also: Aircraft.Wing.MASS_SCALER
Aircraft.Wing.MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['WTS.WSP(1, 2)', '~WEIGHT.WWING', '~WTSTAT.WSP(1, 2)', '~WWGHT.WWING'],
- "FLOPS": None,
- "LEAPS1": ['(WeightABC)self._total_wing_weight',
- 'aircraft.outputs.L0_weights_summary.total_wing_weight',
- ]
- },
+ historical_name={
+ "GASP": None,
+ # ['WTS.WSP(1, 2)', '~WEIGHT.WWING', '~WTSTAT.WSP(1, 2)', '~WWGHT.WWING'],
+ "FLOPS": None,
+ "LEAPS1": [
+ '(WeightABC)self._total_wing_weight',
+ 'aircraft.outputs.L0_weights_summary.total_wing_weight',
+ ],
+ },
units='lbm',
desc='wing total mass',
default_value=None,
@@ -5663,10 +5622,7 @@
add_meta_data(
Aircraft.Wing.MASS_COEFFICIENT,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.SKWW',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.SKWW', "FLOPS": None, "LEAPS1": None},
units="unitless",
desc='mass trend coefficient of the wing without high lift devices',
default_value=133.4,
@@ -5675,10 +5631,11 @@
add_meta_data(
Aircraft.Wing.MASS_SCALER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.FRWI', # ['&DEFINE.WTIN.FRWI', 'WTS.FRWI'],
- "LEAPS1": 'aircraft.inputs.L0_overrides.total_wing_weight'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.FRWI', # ['&DEFINE.WTIN.FRWI', 'WTS.FRWI'],
+ "LEAPS1": 'aircraft.inputs.L0_overrides.total_wing_weight',
+ },
units='unitless',
desc='mass scaler of the overall wing',
default_value=1.0,
@@ -5687,10 +5644,7 @@
add_meta_data(
Aircraft.Wing.MATERIAL_FACTOR,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.SKNO',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.SKNO', "FLOPS": None, "LEAPS1": None},
units="unitless",
desc='correction factor for the use of non optimum material',
default_value=0,
@@ -5699,17 +5653,19 @@
add_meta_data(
Aircraft.Wing.MAX_CAMBER_AT_70_SEMISPAN,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'AERIN.CAM',
- # [ # inputs
- # '&DEFINE.AERIN.CAM', 'EDETIN.CAM',
- # # outputs
- # 'MISSA.CAM', 'MISSA.CAMX',
- # ],
- "LEAPS1": ['aircraft.inputs.L0_aerodynamics.max_camber_at_70_semispan',
- 'aircraft.outputs.L0_aerodynamics.mission_max_camber_at_70_semispan',
- ]
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'AERIN.CAM',
+ # [ # inputs
+ # '&DEFINE.AERIN.CAM', 'EDETIN.CAM',
+ # # outputs
+ # 'MISSA.CAM', 'MISSA.CAMX',
+ # ],
+ "LEAPS1": [
+ 'aircraft.inputs.L0_aerodynamics.max_camber_at_70_semispan',
+ 'aircraft.outputs.L0_aerodynamics.mission_max_camber_at_70_semispan',
+ ],
+ },
units='unitless',
desc='Maximum camber at 70 percent semispan, percent of local chord',
default_value=0.0,
@@ -5718,10 +5674,7 @@
add_meta_data(
Aircraft.Wing.MAX_LIFT_REF,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.RCLMAX',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.RCLMAX', "FLOPS": None, "LEAPS1": None},
units="unitless",
desc='input reference maximum lift coefficient for basic wing',
)
@@ -5729,10 +5682,7 @@
add_meta_data(
Aircraft.Wing.MAX_SLAT_DEFLECTION_LANDING,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.DELLED',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.DELLED', "FLOPS": None, "LEAPS1": None},
units='deg',
desc='leading edge slat deflection during landing',
default_value=10,
@@ -5741,10 +5691,7 @@
add_meta_data(
Aircraft.Wing.MAX_SLAT_DEFLECTION_TAKEOFF,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.DELLED',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.DELLED', "FLOPS": None, "LEAPS1": None},
units='deg',
desc='leading edge slat deflection during takeoff',
default_value=10,
@@ -5753,10 +5700,7 @@
add_meta_data(
Aircraft.Wing.MAX_THICKNESS_LOCATION,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.XCTCMX',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.XCTCMX', "FLOPS": None, "LEAPS1": None},
units='unitless',
desc='location (percent chord) of max wing thickness',
)
@@ -5764,10 +5708,7 @@
add_meta_data(
Aircraft.Wing.MIN_PRESSURE_LOCATION,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.XCPS',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.XCPS', "FLOPS": None, "LEAPS1": None},
units='unitless',
desc='location (percent chord) of peak suction',
)
@@ -5777,10 +5718,11 @@
# - see also: Aircraft.Wing.MISC_MASS_SCALER
Aircraft.Wing.MISC_MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None, # '~WWGHT.W3',
- "LEAPS1": 'aircraft.outputs.L0_wing.misc_weight'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # '~WWGHT.W3',
+ "LEAPS1": 'aircraft.outputs.L0_wing.misc_weight',
+ },
units='lbm',
desc='wing mass breakdown term 3',
default_value=None,
@@ -5789,10 +5731,11 @@
add_meta_data(
Aircraft.Wing.MISC_MASS_SCALER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.FRWI3', # ['&DEFINE.WTIN.FRWI3', 'WIOR3.FRWI3'],
- "LEAPS1": 'aircraft.inputs.L0_overrides.wing_misc_weight'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.FRWI3', # ['&DEFINE.WTIN.FRWI3', 'WIOR3.FRWI3'],
+ "LEAPS1": 'aircraft.inputs.L0_overrides.wing_misc_weight',
+ },
units='unitless',
desc='mass scaler of the miscellaneous wing mass term',
default_value=1.0,
@@ -5801,10 +5744,7 @@
add_meta_data(
Aircraft.Wing.MOUNTING_TYPE,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.HWING',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.HWING', "FLOPS": None, "LEAPS1": None},
units='unitless',
desc='wing location on fuselage (0 = low wing, 1 = high wing)',
)
@@ -5812,10 +5752,7 @@
add_meta_data(
Aircraft.Wing.NUM_FLAP_SEGMENTS,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.FLAPN',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.FLAPN', "FLOPS": None, "LEAPS1": None},
units="unitless",
desc='number of flap segments per wing panel',
types=int,
@@ -5826,11 +5763,12 @@
add_meta_data(
Aircraft.Wing.NUM_INTEGRATION_STATIONS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['&DEFINE.WTIN.NSTD', 'WDEF.NSTD', '~BNDMAT.NSD', '~DETA.NSD'],
- "FLOPS": 'WTIN.NSTD',
- "LEAPS1": 'aircraft.inputs.L0_detailed_wing.integration_station_count'
- },
+ historical_name={
+ "GASP": None,
+ # ['&DEFINE.WTIN.NSTD', 'WDEF.NSTD', '~BNDMAT.NSD', '~DETA.NSD'],
+ "FLOPS": 'WTIN.NSTD',
+ "LEAPS1": 'aircraft.inputs.L0_detailed_wing.integration_station_count',
+ },
units='unitless',
desc='number of integration stations',
types=int,
@@ -5841,10 +5779,7 @@
add_meta_data(
Aircraft.Wing.OPTIMUM_FLAP_DEFLECTION,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.DELTEO',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.DELTEO', "FLOPS": None, "LEAPS1": None},
units='deg',
desc='optimum flap deflection angle (default depends on flap type)',
)
@@ -5852,10 +5787,7 @@
add_meta_data(
Aircraft.Wing.OPTIMUM_SLAT_DEFLECTION,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.DELLEO',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.DELLEO', "FLOPS": None, "LEAPS1": None},
units='deg',
desc='optimum slat deflection angle',
default_value=20,
@@ -5864,10 +5796,11 @@
add_meta_data(
Aircraft.Wing.ROOT_CHORD,
meta_data=_MetaData,
- historical_name={"GASP": ['INGASP.CROOT', 'INGASP.CROOTW'],
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={
+ "GASP": ['INGASP.CROOT', 'INGASP.CROOTW'],
+ "FLOPS": None,
+ "LEAPS1": None,
+ },
units='ft',
desc='wing chord length at wing root',
)
@@ -5877,10 +5810,11 @@
# - see also: Aircraft.Wing.SHEAR_CONTROL_MASS_SCALER
Aircraft.Wing.SHEAR_CONTROL_MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None, # '~WWGHT.W2',
- "LEAPS1": 'aircraft.outputs.L0_wing.struct_weight'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # '~WWGHT.W2',
+ "LEAPS1": 'aircraft.outputs.L0_wing.struct_weight',
+ },
units='lbm',
desc='wing mass breakdown term 2',
default_value=None,
@@ -5889,10 +5823,11 @@
add_meta_data(
Aircraft.Wing.SHEAR_CONTROL_MASS_SCALER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.FRWI2', # ['&DEFINE.WTIN.FRWI2', 'WIOR3.FRWI2'],
- "LEAPS1": 'aircraft.inputs.L0_overrides.wing_struct_weights'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.FRWI2', # ['&DEFINE.WTIN.FRWI2', 'WIOR3.FRWI2'],
+ "LEAPS1": 'aircraft.inputs.L0_overrides.wing_struct_weights',
+ },
units='unitless',
desc='mass scaler of the shear and control term',
default_value=1.0,
@@ -5901,10 +5836,7 @@
add_meta_data(
Aircraft.Wing.SLAT_CHORD_RATIO,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.CLEOC',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.CLEOC', "FLOPS": None, "LEAPS1": None},
units="unitless",
desc='ratio of slat chord to wing chord',
default_value=0.15,
@@ -5913,10 +5845,7 @@
add_meta_data(
Aircraft.Wing.SLAT_LIFT_INCREMENT_OPTIMUM,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.DCLMLE',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.DCLMLE', "FLOPS": None, "LEAPS1": None},
units="unitless",
desc='lift coefficient increment due to optimally deflected LE slats',
)
@@ -5924,10 +5853,7 @@
add_meta_data(
Aircraft.Wing.SLAT_SPAN_RATIO,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.BLEOB',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.BLEOB', "FLOPS": None, "LEAPS1": None},
units="unitless",
desc='fraction of wing leading edge with slats',
default_value=0.9,
@@ -5936,18 +5862,20 @@
add_meta_data(
Aircraft.Wing.SPAN,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.B',
- "FLOPS": 'WTIN.SPAN',
- # [ # inputs
- # '&DEFINE.WTIN.SPAN',
- # # outputs
- # '~WEIGHT.B', '~WWGHT.B', '~GESURF.B'
- # ],
- "LEAPS1": ['aircraft.inputs.L0_wing.span',
- 'aircraft.outputs.L0_wing.span',
- 'BasicTransportWeight.wing_span'
- ]
- },
+ historical_name={
+ "GASP": 'INGASP.B',
+ "FLOPS": 'WTIN.SPAN',
+ # [ # inputs
+ # '&DEFINE.WTIN.SPAN',
+ # # outputs
+ # '~WEIGHT.B', '~WWGHT.B', '~GESURF.B'
+ # ],
+ "LEAPS1": [
+ 'aircraft.inputs.L0_wing.span',
+ 'aircraft.outputs.L0_wing.span',
+ 'BasicTransportWeight.wing_span',
+ ],
+ },
units='ft',
desc='span of main wing',
default_value=0.0,
@@ -5956,10 +5884,11 @@
add_meta_data(
Aircraft.Wing.SPAN_EFFICIENCY_FACTOR,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'AERIN.E', # ['&DEFINE.AERIN.E', 'OSWALD.E', ],
- "LEAPS1": 'aircraft.inputs.L0_aerodynamics.wing_span_efficiency_factor'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'AERIN.E', # ['&DEFINE.AERIN.E', 'OSWALD.E', ],
+ "LEAPS1": 'aircraft.inputs.L0_aerodynamics.wing_span_efficiency_factor',
+ },
units='unitless',
desc='coefficient for calculating span efficiency for extreme taper ratios',
default_value=1.0,
@@ -5968,32 +5897,34 @@
add_meta_data(
Aircraft.Wing.SPAN_EFFICIENCY_REDUCTION,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'AERIN.MIKE', # ['&DEFINE.AERIN.MIKE', 'MIMOD.MIKE'],
- "LEAPS1": 'aircraft.inputs.L0_aerodynamics.wing_span_efficiency_reduction'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'AERIN.MIKE', # ['&DEFINE.AERIN.MIKE', 'MIMOD.MIKE'],
+ "LEAPS1": 'aircraft.inputs.L0_aerodynamics.wing_span_efficiency_reduction',
+ },
units='unitless',
desc='Define a switch for span efficiency reduction for extreme taper '
- 'ratios: True == a span efficiency factor '
- '(*wing_span_efficiency_factor0*) is calculated based on wing taper ratio '
- 'and aspect ratio; False == a span efficiency factor '
- '(*wing_span_efficiency_factor0*) is set to 1.0.',
+ 'ratios: True == a span efficiency factor '
+ '(*wing_span_efficiency_factor0*) is calculated based on wing taper ratio '
+ 'and aspect ratio; False == a span efficiency factor '
+ '(*wing_span_efficiency_factor0*) is set to 1.0.',
option=True,
types=bool,
- default_value=False
+ default_value=False,
)
add_meta_data(
Aircraft.Wing.STRUT_BRACING_FACTOR,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['&DEFINE.WTIN.FSTRT', 'WTS.FSTRT', '~WWGHT.FSTRT', '~BNDMAT.FSTRT'],
- "FLOPS": 'WTIN.FSTRT',
- "LEAPS1": 'aircraft.inputs.L0_wing.struct_bracing_factor'
- },
+ historical_name={
+ "GASP": None,
+ # ['&DEFINE.WTIN.FSTRT', 'WTS.FSTRT', '~WWGHT.FSTRT', '~BNDMAT.FSTRT'],
+ "FLOPS": 'WTIN.FSTRT',
+ "LEAPS1": 'aircraft.inputs.L0_wing.struct_bracing_factor',
+ },
units='unitless',
desc='Define the wing strut-bracing factor where: 0.0 == no wing-strut; '
- '1.0 == full benefit from strut bracing.',
+ '1.0 == full benefit from strut bracing.',
default_value=0.0,
)
@@ -6002,13 +5933,15 @@
# - see also: Aircraft.Wing.SURFACE_CONTROL_MASS_SCALER
Aircraft.Wing.SURFACE_CONTROL_MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['WTS.WSP(16, 2)', '~WEIGHT.WSC', '~WTSTAT.WSP(16, 2)'],
- "FLOPS": None,
- "LEAPS1": ['(WeightABC)self._surface_ctrls_weight',
- 'aircraft.outputs.L0_weights_summary.surface_ctrls_weight',
- ]
- },
+ historical_name={
+ "GASP": None,
+ # ['WTS.WSP(16, 2)', '~WEIGHT.WSC', '~WTSTAT.WSP(16, 2)'],
+ "FLOPS": None,
+ "LEAPS1": [
+ '(WeightABC)self._surface_ctrls_weight',
+ 'aircraft.outputs.L0_weights_summary.surface_ctrls_weight',
+ ],
+ },
units='lbm',
desc='mass of surface controls',
default_value=None,
@@ -6017,10 +5950,7 @@
add_meta_data(
Aircraft.Wing.SURFACE_CONTROL_MASS_COEFFICIENT,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.SKFW',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.SKFW', "FLOPS": None, "LEAPS1": None},
units="unitless",
desc='Surface controls weight coefficient',
default_value=0.404,
@@ -6029,10 +5959,11 @@
add_meta_data(
Aircraft.Wing.SURFACE_CONTROL_MASS_SCALER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.FRSC', # ['&DEFINE.WTIN.FRSC', 'WTS.FRSC'],
- "LEAPS1": 'aircraft.inputs.L0_overrides.surface_ctrls_weight'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.FRSC', # ['&DEFINE.WTIN.FRSC', 'WTS.FRSC'],
+ "LEAPS1": 'aircraft.inputs.L0_overrides.surface_ctrls_weight',
+ },
units='unitless',
desc='Surface controls mass scaler',
default_value=1.0,
@@ -6041,22 +5972,24 @@
add_meta_data(
Aircraft.Wing.SWEEP,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.DLMC4',
- "FLOPS": "CONFIN.SWEEP",
- # [ # inputs
- # '&DEFINE.CONFIN.SWEEP', 'PARVAR.DVD(1,6)',
- # # outputs
- # 'CONFIG.SWEEP', 'CONFIG.DVA(6)', '~FLOPS.DVA(6)', '~ANALYS.DVA(6)',
- # '~WWGHT.SWEEP', '~INERT.SWEEP',
- # # other
- # 'MISSA.SW25', '~BUFFET.SW25', '~CDCC.SW25', '~CLDESN.SW25',
- # '~MDESN.SW25',
- # ],
- "LEAPS1": ['aircraft.inputs.L0_design_variables.wing_sweep_at_quarter_chord',
- 'aircraft.outputs.L0_design_variables.wing_sweep_at_quarter_chord',
- 'aircraft.outputs.L0_design_variables.mission_wing_sweep_at_quarter_chord',
- ]
- },
+ historical_name={
+ "GASP": 'INGASP.DLMC4',
+ "FLOPS": "CONFIN.SWEEP",
+ # [ # inputs
+ # '&DEFINE.CONFIN.SWEEP', 'PARVAR.DVD(1,6)',
+ # # outputs
+ # 'CONFIG.SWEEP', 'CONFIG.DVA(6)', '~FLOPS.DVA(6)', '~ANALYS.DVA(6)',
+ # '~WWGHT.SWEEP', '~INERT.SWEEP',
+ # # other
+ # 'MISSA.SW25', '~BUFFET.SW25', '~CDCC.SW25', '~CLDESN.SW25',
+ # '~MDESN.SW25',
+ # ],
+ "LEAPS1": [
+ 'aircraft.inputs.L0_design_variables.wing_sweep_at_quarter_chord',
+ 'aircraft.outputs.L0_design_variables.wing_sweep_at_quarter_chord',
+ 'aircraft.outputs.L0_design_variables.mission_wing_sweep_at_quarter_chord',
+ ],
+ },
units='deg',
desc='quarter-chord sweep angle of the wing',
default_value=0.0, # TODO required
@@ -6065,21 +5998,23 @@
add_meta_data(
Aircraft.Wing.TAPER_RATIO,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.SLM',
- "FLOPS": "CONFIN.TR",
- # [ # inputs
- # '&DEFINE.CONFIN.TR', 'PARVAR.DVD(1,5)',
- # # outputs
- # 'CONFIG.TR', 'CONFIG.DVA(5)', 'CONFIG.TR1', '~FLOPS.DVA(5)',
- # '~ANALYS.DVA(5)', '~GESURF.TR', '~WWGHT.TR', '~INERT.TR',
- # # other
- # 'MISSA.TAPER', '~CDCC.TAPER', '~MDESN.TAPER',
- # ],
- "LEAPS1": ['aircraft.inputs.L0_design_variables.wing_taper_ratio',
- 'aircraft.outputs.L0_design_variables.wing_taper_ratio',
- 'aircraft.outputs.L0_design_variables.mission_wing_taper_ratio',
- ]
- },
+ historical_name={
+ "GASP": 'INGASP.SLM',
+ "FLOPS": "CONFIN.TR",
+ # [ # inputs
+ # '&DEFINE.CONFIN.TR', 'PARVAR.DVD(1,5)',
+ # # outputs
+ # 'CONFIG.TR', 'CONFIG.DVA(5)', 'CONFIG.TR1', '~FLOPS.DVA(5)',
+ # '~ANALYS.DVA(5)', '~GESURF.TR', '~WWGHT.TR', '~INERT.TR',
+ # # other
+ # 'MISSA.TAPER', '~CDCC.TAPER', '~MDESN.TAPER',
+ # ],
+ "LEAPS1": [
+ 'aircraft.inputs.L0_design_variables.wing_taper_ratio',
+ 'aircraft.outputs.L0_design_variables.wing_taper_ratio',
+ 'aircraft.outputs.L0_design_variables.mission_wing_taper_ratio',
+ ],
+ },
units='unitless',
desc='taper ratio of the wing',
default_value=0.0, # TODO required
@@ -6088,22 +6023,24 @@
add_meta_data(
Aircraft.Wing.THICKNESS_TO_CHORD,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'CONFIN.TCA',
- # [ # inputs
- # '&DEFINE.CONFIN.TCA', 'PARVAR.DVD(1,7)',
- # # outputs
- # 'CONFIG.TCA', 'CONFIG.DVA(7)', '~FLOPS.DVA(7)', '~ANALYS.DVA(7)',
- # '~WWGHT.TCA',
- # # other
- # 'MISSA.TC', '~BUFFET.TC', '~CDCC.TC', '~CDPP.TC', '~CLDESN.TC',
- # '~MDESN.TC',
- # ],
- "LEAPS1": ['aircraft.inputs.L0_design_variables.wing_thickness_to_chord_ratio',
- 'aircraft.outputs.L0_design_variables.wing_thickness_to_chord_ratio',
- 'aircraft.outputs.L0_design_variables.mission_wing_thickness_to_chord_ratio',
- ]
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'CONFIN.TCA',
+ # [ # inputs
+ # '&DEFINE.CONFIN.TCA', 'PARVAR.DVD(1,7)',
+ # # outputs
+ # 'CONFIG.TCA', 'CONFIG.DVA(7)', '~FLOPS.DVA(7)', '~ANALYS.DVA(7)',
+ # '~WWGHT.TCA',
+ # # other
+ # 'MISSA.TC', '~BUFFET.TC', '~CDCC.TC', '~CDPP.TC', '~CLDESN.TC',
+ # '~MDESN.TC',
+ # ],
+ "LEAPS1": [
+ 'aircraft.inputs.L0_design_variables.wing_thickness_to_chord_ratio',
+ 'aircraft.outputs.L0_design_variables.wing_thickness_to_chord_ratio',
+ 'aircraft.outputs.L0_design_variables.mission_wing_thickness_to_chord_ratio',
+ ],
+ },
units='unitless',
desc='wing thickness-chord ratio (weighted average)',
default_value=0.0, # TODO required
@@ -6112,10 +6049,11 @@
add_meta_data(
Aircraft.Wing.THICKNESS_TO_CHORD_DIST,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.TOC', # ['&DEFINE.WTIN.TOC', 'WDEF.TOC'],
- "LEAPS1": 'aircraft.inputs.L0_detailed_wing.wing_station_thickness_to_chord_ratios'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.TOC', # ['&DEFINE.WTIN.TOC', 'WDEF.TOC'],
+ "LEAPS1": 'aircraft.inputs.L0_detailed_wing.wing_station_thickness_to_chord_ratios',
+ },
units='unitless',
desc='the thickeness-chord ratios at station locations',
default_value=None,
@@ -6124,22 +6062,20 @@
add_meta_data(
Aircraft.Wing.THICKNESS_TO_CHORD_REF,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.TCREF', # ['&DEFINE.WTIN.TCREF'],
- "LEAPS1": 'aircraft.inputs.L0_detailed_wing.ref_thickness_to_chord_ratio'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.TCREF', # ['&DEFINE.WTIN.TCREF'],
+ "LEAPS1": 'aircraft.inputs.L0_detailed_wing.ref_thickness_to_chord_ratio',
+ },
units='unitless',
- desc='Reference thickness-to-chord ratio, used for detailed wing bending.',
- default_value=0.0
+ desc='Reference thickness-to-chord ratio, used for detailed wing mass estimation.',
+ default_value=0.0,
)
add_meta_data(
Aircraft.Wing.THICKNESS_TO_CHORD_ROOT,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.TCR',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.TCR', "FLOPS": None, "LEAPS1": None},
units='unitless',
desc='thickness-to-chord ratio at the root of the wing',
)
@@ -6147,10 +6083,7 @@
add_meta_data(
Aircraft.Wing.THICKNESS_TO_CHORD_TIP,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.TCT',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.TCT', "FLOPS": None, "LEAPS1": None},
units='unitless',
desc='thickness-to-chord ratio at the tip of the wing',
)
@@ -6158,21 +6091,20 @@
add_meta_data(
Aircraft.Wing.THICKNESS_TO_CHORD_UNWEIGHTED,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.TC',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.TC', "FLOPS": None, "LEAPS1": None},
units='unitless',
- desc='wing thickness-chord ratio at the wing station of the mean aerodynamic chord')
+ desc='wing thickness-chord ratio at the wing station of the mean aerodynamic chord',
+)
add_meta_data(
Aircraft.Wing.ULTIMATE_LOAD_FACTOR,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.ULF',
- # ['&DEFINE.WTIN.ULF', 'WTS.ULF', '~WWGHT.ULF'],
- "FLOPS": 'WTIN.ULF',
- "LEAPS1": 'aircraft.inputs.L0_weights.struct_ult_load_factor'
- },
+ historical_name={
+ "GASP": 'INGASP.ULF',
+ # ['&DEFINE.WTIN.ULF', 'WTS.ULF', '~WWGHT.ULF'],
+ "FLOPS": 'WTIN.ULF',
+ "LEAPS1": 'aircraft.inputs.L0_weights.struct_ult_load_factor',
+ },
units='unitless',
desc='structural ultimate load factor',
default_value=3.75,
@@ -6181,14 +6113,15 @@
add_meta_data(
Aircraft.Wing.VAR_SWEEP_MASS_PENALTY,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['&DEFINE.WTIN.VARSWP', 'FAWT.VARSWP', '~WWGHT.VARSWP'],
- "FLOPS": 'WTIN.VARSWP',
- "LEAPS1": 'aircraft.inputs.L0_wing.var_sweep_weight_penalty'
- },
+ historical_name={
+ "GASP": None,
+ # ['&DEFINE.WTIN.VARSWP', 'FAWT.VARSWP', '~WWGHT.VARSWP'],
+ "FLOPS": 'WTIN.VARSWP',
+ "LEAPS1": 'aircraft.inputs.L0_wing.var_sweep_weight_penalty',
+ },
units='unitless',
desc='Define the fraction of wing variable sweep mass penalty where: '
- '0.0 == fixed-geometry wing; 1.0 == full variable-sweep wing.',
+ '0.0 == fixed-geometry wing; 1.0 == full variable-sweep wing.',
default_value=0.0,
)
@@ -6197,13 +6130,15 @@
# - see also: Aircraft.Wing.WETTED_AREA_SCALER
Aircraft.Wing.WETTED_AREA,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None, # ['ACTWET.SWTWG', 'MISSA.SWET[1]'],
- "LEAPS1": ['aircraft.outputs.L0_aerodynamics.wing_wetted_area',
- 'aircraft.outputs.L0_aerodynamics.mission_component_wetted_area_table[0]',
- 'aircraft.cached.L0_aerodynamics.mission_component_wetted_area_table[0]',
- ]
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # ['ACTWET.SWTWG', 'MISSA.SWET[1]'],
+ "LEAPS1": [
+ 'aircraft.outputs.L0_aerodynamics.wing_wetted_area',
+ 'aircraft.outputs.L0_aerodynamics.mission_component_wetted_area_table[0]',
+ 'aircraft.cached.L0_aerodynamics.mission_component_wetted_area_table[0]',
+ ],
+ },
units='ft**2',
desc='wing wetted area',
default_value=None,
@@ -6212,10 +6147,11 @@
add_meta_data(
Aircraft.Wing.WETTED_AREA_SCALER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'AERIN.SWETW', # ['&DEFINE.AERIN.SWETW', 'AWETO.SWETW', ],
- "LEAPS1": 'aircraft.inputs.L0_aerodynamics.wing_wetted_area'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'AERIN.SWETW', # ['&DEFINE.AERIN.SWETW', 'AWETO.SWETW', ],
+ "LEAPS1": 'aircraft.inputs.L0_aerodynamics.wing_wetted_area',
+ },
units='unitless',
desc='wing wetted area scaler',
default_value=1.0,
@@ -6224,10 +6160,7 @@
add_meta_data(
Aircraft.Wing.ZERO_LIFT_ANGLE,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.ALPHL0',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.ALPHL0', "FLOPS": None, "LEAPS1": None},
units='deg',
desc='zero lift angle of attack',
)
@@ -6246,552 +6179,430 @@
# '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------'
# ============================================================================================================================================
-# __ __ _ _
-# | \/ | (_) (_)
-# | \ / | _ ___ ___ _ ___ _ __
-# | |\/| | | | / __| / __| | | / _ \ | '_ \
-# | | | | | | \__ \ \__ \ | | | (_) | | | | |
-# |_| |_| |_| |___/ |___/ |_| \___/ |_| |_|
-# ============================================
+# _ _
+# /\ | | | |
+# / \ | |_ _ __ ___ ___ ___ _ __ | |__ ___ _ __ ___
+# / /\ \ | __| | '_ ` _ \ / _ \ / __| | '_ \ | '_ \ / _ \ | '__| / _ \
+# / ____ \ | |_ | | | | | | | (_) | \__ \ | |_) | | | | | | __/ | | | __/
+# /_/ \_\ \__| |_| |_| |_| \___/ |___/ | .__/ |_| |_| \___| |_| \___|
+# | |
+# |_|
+# ================================================================================
add_meta_data(
- Dynamic.Mission.ALTITUDE,
+ Dynamic.Atmosphere.DENSITY,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
- units='ft',
- desc='Current altitude of the vehicle'
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
+ units='lbm/ft**3',
+ desc="Atmospheric density at the vehicle's current altitude",
)
add_meta_data(
- Dynamic.Mission.ALTITUDE_RATE,
+ Dynamic.Atmosphere.DYNAMIC_PRESSURE,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
- units='ft/s',
- desc='Current rate of altitude change (climb rate) of the vehicle'
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
+ units='lbf/ft**2',
+ desc="Atmospheric dynamic pressure at the vehicle's current flight condition",
)
add_meta_data(
- Dynamic.Mission.ALTITUDE_RATE_MAX,
+ Dynamic.Atmosphere.KINEMATIC_VISCOSITY,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
- units='ft/s',
- desc='Current maximum possible rate of altitude change (climb rate) of the vehicle '
- '(at hypothetical maximum thrust condition)'
+ historical_name={"GASP": 'XKV', "FLOPS": None, "LEAPS1": None},
+ units='ft**2/s',
+ desc="Atmospheric kinematic viscosity at the vehicle's current flight condition",
)
add_meta_data(
- Dynamic.Mission.BATTERY_STATE_OF_CHARGE,
+ Dynamic.Atmosphere.MACH,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='unitless',
- desc="battery's current state of charge"
+ desc='Current Mach number of the vehicle',
)
add_meta_data(
- Dynamic.Mission.CUMULATIVE_ELECTRIC_ENERGY_USED,
+ Dynamic.Atmosphere.MACH_RATE,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
- units='kJ',
- desc='Total amount of electric energy consumed by the vehicle up until this point in the mission',
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
+ units='unitless',
+ desc='Current rate at which the Mach number of the vehicle is changing',
)
add_meta_data(
- Dynamic.Mission.DENSITY,
+ Dynamic.Atmosphere.SPEED_OF_SOUND,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
- units='lbm/ft**3',
- desc="Atmospheric density at the vehicle's current altitude"
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
+ units='ft/s',
+ desc="Atmospheric speed of sound at vehicle's current flight condition",
)
add_meta_data(
- Dynamic.Mission.DISTANCE,
+ Dynamic.Atmosphere.STATIC_PRESSURE,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'range',
- "LEAPS1": None
- },
- units='NM',
- desc="The total distance the vehicle has traveled since brake release at the current time"
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
+ units='lbf/ft**2',
+ desc="Atmospheric static pressure at the vehicle's current flight condition",
)
add_meta_data(
- Dynamic.Mission.DISTANCE_RATE,
+ Dynamic.Atmosphere.TEMPERATURE,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'range_rate',
- "LEAPS1": None
- },
- units='NM/s',
- desc="The rate at which the distance traveled is changing at the current time"
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
+ units='degR',
+ desc="Atmospheric temperature at vehicle's current flight condition",
)
+
+# __ __ _ _
+# | \/ | (_) (_)
+# | \ / | _ ___ ___ _ ___ _ __
+# | |\/| | | | / __| / __| | | / _ \ | '_ \
+# | | | | | | \__ \ \__ \ | | | (_) | | | | |
+# |_| |_| |_| |___/ |___/ |_| \___/ |_| |_|
+# ============================================
add_meta_data(
- Dynamic.Mission.DRAG,
+ Dynamic.Mission.ALTITUDE,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
- units='lbf',
- desc='Current total drag experienced by the vehicle'
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
+ units='ft',
+ desc='Current altitude of the vehicle',
)
add_meta_data(
- Dynamic.Mission.DYNAMIC_PRESSURE,
+ Dynamic.Mission.ALTITUDE_RATE,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
- units='lbf/ft**2',
- desc="Atmospheric dynamic pressure at the vehicle's current flight condition"
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
+ units='ft/s',
+ desc='Current rate of altitude change (climb rate) of the vehicle',
)
add_meta_data(
- Dynamic.Mission.ELECTRIC_POWER_IN,
+ Dynamic.Mission.ALTITUDE_RATE_MAX,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
- units='kW',
- desc='Current electric power consumption of each engine',
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
+ units='ft/s',
+ desc='Current maximum possible rate of altitude change (climb rate) of the vehicle '
+ '(at hypothetical maximum thrust condition)',
)
add_meta_data(
- Dynamic.Mission.ELECTRIC_POWER_IN_TOTAL,
+ Dynamic.Mission.DISTANCE,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
- units='kW',
- desc='Current total electric power consumption of the vehicle'
+ historical_name={"GASP": None, "FLOPS": 'range', "LEAPS1": None},
+ units='NM',
+ desc="The total distance the vehicle has traveled since brake release at the current time",
)
-# add_meta_data(
-# Dynamic.Mission.EXIT_AREA,
-# meta_data=_MetaData,
-# historical_name={"GASP": None,
-# "FLOPS": None,
-# "LEAPS1": None
-# },
-# units='kW',
-# desc='Current nozzle exit area of engines, per single instance of each '
-# 'engine model'
-# )
+add_meta_data(
+ Dynamic.Mission.DISTANCE_RATE,
+ meta_data=_MetaData,
+ historical_name={"GASP": None, "FLOPS": 'range_rate', "LEAPS1": None},
+ units='NM/s',
+ desc="The rate at which the distance traveled is changing at the current time",
+)
add_meta_data(
Dynamic.Mission.FLIGHT_PATH_ANGLE,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='rad',
- desc='Current flight path angle'
+ desc='Current flight path angle',
)
add_meta_data(
Dynamic.Mission.FLIGHT_PATH_ANGLE_RATE,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='rad/s',
- desc='Current rate at which flight path angle is changing'
+ desc='Current rate at which flight path angle is changing',
)
add_meta_data(
- Dynamic.Mission.FUEL_FLOW_RATE,
+ Dynamic.Mission.SPECIFIC_ENERGY,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
- units='lbm/h',
- desc='Current rate of fuel consumption of the vehicle, per single instance of '
- 'each engine model. Consumption (i.e. mass reduction) of fuel is defined as '
- 'positive.'
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
+ units='m/s',
+ desc='Rate of change in specific energy (energy per unit weight) of the vehicle at current '
+ 'flight condition',
)
add_meta_data(
- Dynamic.Mission.FUEL_FLOW_RATE_NEGATIVE,
+ Dynamic.Mission.SPECIFIC_ENERGY_RATE,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
- units='lbm/h',
- desc='Current rate of fuel consumption of the vehicle, per single instance of each '
- 'engine model. Consumption (i.e. mass reduction) of fuel is defined as negative.'
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
+ units='m/s',
+ desc='Rate of change in specific energy (specific power) of the vehicle at current '
+ 'flight condition',
)
add_meta_data(
- Dynamic.Mission.FUEL_FLOW_RATE_NEGATIVE_TOTAL,
+ Dynamic.Mission.SPECIFIC_ENERGY_RATE_EXCESS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
- units='lbm/h',
- desc='Current rate of total fuel consumption of the vehicle. Consumption (i.e. '
- 'mass reduction) of fuel is defined as negative.'
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
+ units='m/s',
+ desc='Specific excess power of the vehicle at current flight condition and at '
+ 'hypothetical maximum thrust',
)
add_meta_data(
- Dynamic.Mission.FUEL_FLOW_RATE_TOTAL,
+ Dynamic.Mission.VELOCITY,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
- units='lbm/h',
- desc='Current rate of total fuel consumption of the vehicle. Consumption (i.e. '
- 'mass reduction) of fuel is defined as positive.'
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
+ units='ft/s',
+ desc='Current velocity of the vehicle along its body axis',
)
add_meta_data(
- Dynamic.Mission.HYBRID_THROTTLE,
+ Dynamic.Mission.VELOCITY_RATE,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
- units='unitless',
- desc='Current secondary throttle setting of each individual engine model on the '
- 'vehicle, used as an additional degree of control for hybrid engines'
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
+ units='ft/s**2',
+ desc='Current rate of change in velocity (acceleration) of the vehicle along its '
+ 'body axis',
)
+# __ __ _ _ _
+# \ \ / / | | (_) | |
+# \ \ / / ___ | |__ _ ___ | | ___
+# \ \/ / / _ \ | '_ \ | | / __| | | / _ \
+# \ / | __/ | | | | | | | (__ | | | __/
+# \/ \___| |_| |_| |_| \___| |_| \___|
+# ================================================
+
add_meta_data(
- Dynamic.Mission.KINEMATIC_VISCOSITY,
+ Dynamic.Vehicle.BATTERY_STATE_OF_CHARGE,
meta_data=_MetaData,
- historical_name={"GASP": 'XKV',
- "FLOPS": None,
- "LEAPS1": None
- },
- units='ft**2/s',
- desc="Atmospheric kinematic viscosity at the vehicle's current flight condition"
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
+ units='unitless',
+ desc="battery's current state of charge",
)
add_meta_data(
- Dynamic.Mission.LIFT,
+ Dynamic.Vehicle.CUMULATIVE_ELECTRIC_ENERGY_USED,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
- units='lbf',
- desc='Current total lift produced by the vehicle'
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
+ units='kJ',
+ desc='Total amount of electric energy consumed by the vehicle up until this point in the mission',
)
add_meta_data(
- Dynamic.Mission.MACH,
+ Dynamic.Vehicle.DRAG,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
- units='unitless',
- desc='Current Mach number of the vehicle'
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
+ units='lbf',
+ desc='Current total drag experienced by the vehicle',
)
add_meta_data(
- Dynamic.Mission.MACH_RATE,
+ Dynamic.Vehicle.LIFT,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
- units='unitless',
- desc='Current rate at which the Mach number of the vehicle is changing'
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
+ units='lbf',
+ desc='Current total lift produced by the vehicle',
)
add_meta_data(
- Dynamic.Mission.MASS,
+ Dynamic.Vehicle.MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='lbm',
- desc='Current total mass of the vehicle'
+ desc='Current total mass of the vehicle',
)
add_meta_data(
- Dynamic.Mission.MASS_RATE,
+ Dynamic.Vehicle.MASS_RATE,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='lbm/s',
- desc='Current rate at which the mass of the vehicle is changing'
+ desc='Current rate at which the mass of the vehicle is changing',
)
+# ___ _ _
+# | _ \ _ _ ___ _ __ _ _ | | ___ (_) ___ _ _
+# | _/ | '_| / _ \ | '_ \ | || | | | (_-< | | / _ \ | ' \
+# |_| |_| \___/ | .__/ \_,_| |_| /__/ |_| \___/ |_||_|
+# |_|
+# ==========================================================
+
add_meta_data(
- Dynamic.Mission.NOX_RATE,
+ Dynamic.Vehicle.Propulsion.ELECTRIC_POWER_IN,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
- units='lbm/h',
- desc='Current rate of nitrous oxide (NOx) production by the vehicle, per single '
- 'instance of each engine model'
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
+ units='kW',
+ desc='Current electric power consumption of each engine',
)
add_meta_data(
- Dynamic.Mission.NOX_RATE_TOTAL,
+ Dynamic.Vehicle.Propulsion.ELECTRIC_POWER_IN_TOTAL,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
- units='lbm/h',
- desc='Current total rate of nitrous oxide (NOx) production by the vehicle'
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
+ units='kW',
+ desc='Current total electric power consumption of the vehicle',
)
# add_meta_data(
-# Dynamic.Mission.PERCENT_ROTOR_RPM_CORRECTED,
+# Dynamic.Vehicle.Propulsion.EXIT_AREA,
# meta_data=_MetaData,
# historical_name={"GASP": None,
-# "FLOPS": None,
-# "LEAPS1": None
-# },
-# units='unitless',
-# desc='percent of the corrected rotor speed',
-# default_value=0.9,
+# "FLOPS": None,
+# "LEAPS1": None
+# },
+# units='kW',
+# desc='Current nozzle exit area of engines, per single instance of each '
+# 'engine model'
# )
add_meta_data(
- Dynamic.Mission.PROPELLER_TIP_SPEED,
- meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
- units='ft/s',
- desc='linear propeller tip speed due to rotation (not airspeed at propeller tip)',
- default_value=500.0,
-)
-
-add_meta_data(
- Dynamic.Mission.RPM,
- meta_data=_MetaData,
- historical_name={"GASP": ['RPM', 'RPMe'], "FLOPS": None, "LEAPS1": None},
- units='rpm',
- desc='Rotational rate of shaft, per engine.',
-)
-
-add_meta_data(
- Dynamic.Mission.RPM_GEARBOX,
+ Dynamic.Vehicle.Propulsion.FUEL_FLOW_RATE,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None},
- units='rpm',
- desc='Rotational rate of shaft coming out of the gearbox and into the prop.',
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
+ units='lbm/h',
+ desc='Current rate of fuel consumption of the vehicle, per single instance of '
+ 'each engine model. Consumption (i.e. mass reduction) of fuel is defined as '
+ 'positive.',
)
add_meta_data(
- Dynamic.Mission.SPECIFIC_ENERGY,
+ Dynamic.Vehicle.Propulsion.FUEL_FLOW_RATE_NEGATIVE,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
- units='m/s',
- desc='Rate of change in specific energy (energy per unit weight) of the vehicle at current '
- 'flight condition'
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
+ units='lbm/h',
+ desc='Current rate of fuel consumption of the vehicle, per single instance of each '
+ 'engine model. Consumption (i.e. mass reduction) of fuel is defined as negative.',
)
add_meta_data(
- Dynamic.Mission.SPECIFIC_ENERGY_RATE,
+ Dynamic.Vehicle.Propulsion.FUEL_FLOW_RATE_NEGATIVE_TOTAL,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
- units='m/s',
- desc='Rate of change in specific energy (specific power) of the vehicle at current '
- 'flight condition'
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
+ units='lbm/h',
+ desc='Current rate of total fuel consumption of the vehicle. Consumption (i.e. '
+ 'mass reduction) of fuel is defined as negative.',
)
add_meta_data(
- Dynamic.Mission.SHAFT_POWER,
+ Dynamic.Vehicle.Propulsion.FUEL_FLOW_RATE_TOTAL,
meta_data=_MetaData,
- historical_name={"GASP": ['SHP, EHP'], "FLOPS": None, "LEAPS1": None},
- units='hp',
- desc='current shaft power, per engine',
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
+ units='lbm/h',
+ desc='Current rate of total fuel consumption of the vehicle. Consumption (i.e. '
+ 'mass reduction) of fuel is defined as positive.',
)
add_meta_data(
- Dynamic.Mission.SHAFT_POWER_GEARBOX,
+ Dynamic.Vehicle.Propulsion.HYBRID_THROTTLE,
meta_data=_MetaData,
historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
- units='kW',
- desc='current shaft power coming out of the gearbox, per gearbox',
+ units='unitless',
+ desc='Current secondary throttle setting of each individual engine model on the '
+ 'vehicle, used as an additional degree of control for hybrid engines',
)
add_meta_data(
- Dynamic.Mission.SHAFT_POWER_MAX,
+ Dynamic.Vehicle.Propulsion.NOX_RATE,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
- units='hp',
- desc='The maximum possible shaft power currently producible, per engine'
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
+ units='lbm/h',
+ desc='Current rate of nitrous oxide (NOx) production by the vehicle, per single '
+ 'instance of each engine model',
)
add_meta_data(
- Dynamic.Mission.SHAFT_POWER_MAX_GEARBOX,
+ Dynamic.Vehicle.Propulsion.NOX_RATE_TOTAL,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
- units='hp',
- desc='The maximum possible shaft power the gearbox can currently produce, per gearbox'
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
+ units='lbm/h',
+ desc='Current total rate of nitrous oxide (NOx) production by the vehicle',
)
add_meta_data(
- Dynamic.Mission.SPECIFIC_ENERGY_RATE_EXCESS,
+ Dynamic.Vehicle.Propulsion.PROPELLER_TIP_SPEED,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
- units='m/s',
- desc='Specific excess power of the vehicle at current flight condition and at '
- 'hypothetical maximum thrust'
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
+ units='ft/s',
+ desc='linear propeller tip speed due to rotation (not airspeed at propeller tip)',
+ default_value=500.0,
)
add_meta_data(
- Dynamic.Mission.SPEED_OF_SOUND,
+ Dynamic.Vehicle.Propulsion.RPM,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
- units='ft/s',
- desc="Atmospheric speed of sound at vehicle's current flight condition"
+ historical_name={"GASP": ['RPM', 'RPMe'], "FLOPS": None, "LEAPS1": None},
+ units='rpm',
+ desc='Rotational rate of shaft, per engine.',
)
add_meta_data(
- Dynamic.Mission.STATIC_PRESSURE,
+ Dynamic.Vehicle.Propulsion.SHAFT_POWER,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
- units='lbf/ft**2',
- desc="Atmospheric static pressure at the vehicle's current flight condition"
+ historical_name={"GASP": ['SHP, EHP'], "FLOPS": None, "LEAPS1": None},
+ units='hp',
+ desc='current shaft power, per engine',
)
add_meta_data(
- Dynamic.Mission.TEMPERATURE,
+ Dynamic.Vehicle.Propulsion.SHAFT_POWER_MAX,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
- units='degR',
- desc="Atmospheric temperature at vehicle's current flight condition"
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
+ units='hp',
+ desc='The maximum possible shaft power currently producible, per engine',
)
add_meta_data(
- Dynamic.Mission.TEMPERATURE_T4,
+ Dynamic.Vehicle.Propulsion.TEMPERATURE_T4,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='degR',
desc='Current turbine exit temperature (T4) of turbine engines on vehicle, per '
- 'single instance of each engine model'
+ 'single instance of each engine model',
)
add_meta_data(
- Dynamic.Mission.THROTTLE,
+ Dynamic.Vehicle.Propulsion.THROTTLE,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='unitless',
- desc='Current throttle setting for each individual engine model on the vehicle'
+ desc='Current throttle setting for each individual engine model on the vehicle',
)
add_meta_data(
- Dynamic.Mission.THRUST,
+ Dynamic.Vehicle.Propulsion.THRUST,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='lbf',
desc='Current net thrust produced by engines, per single instance of each engine '
- 'model'
+ 'model',
)
add_meta_data(
- Dynamic.Mission.THRUST_MAX,
+ Dynamic.Vehicle.Propulsion.THRUST_MAX,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='lbf',
desc="Hypothetical maximum possible net thrust that can be produced per single "
- "instance of each engine model at the vehicle's current flight condition"
+ "instance of each engine model at the vehicle's current flight condition",
)
add_meta_data(
- Dynamic.Mission.THRUST_MAX_TOTAL,
+ Dynamic.Vehicle.Propulsion.THRUST_MAX_TOTAL,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='lbf',
desc='Hypothetical maximum possible net thrust produced by the vehicle at its '
- 'current flight condition'
+ 'current flight condition',
)
add_meta_data(
- Dynamic.Mission.THRUST_TOTAL,
+ Dynamic.Vehicle.Propulsion.THRUST_TOTAL,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='lbf',
- desc='Current total net thrust produced by the vehicle'
+ desc='Current total net thrust produced by the vehicle',
)
add_meta_data(
- Dynamic.Mission.TORQUE,
+ Dynamic.Vehicle.Propulsion.TORQUE,
meta_data=_MetaData,
historical_name={"GASP": 'TORQUE', "FLOPS": None, "LEAPS1": None},
units='N*m',
@@ -6799,7 +6610,7 @@
)
add_meta_data(
- Dynamic.Mission.TORQUE_MAX,
+ Dynamic.Vehicle.Propulsion.TORQUE_MAX,
meta_data=_MetaData,
historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='N*m',
@@ -6807,37 +6618,6 @@
'condition, per engine',
)
-add_meta_data(
- Dynamic.Mission.TORQUE_GEARBOX,
- meta_data=_MetaData,
- historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
- units='N*m',
- desc='Current torque being produced, per gearbox',
-)
-
-add_meta_data(
- Dynamic.Mission.VELOCITY,
- meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
- units='ft/s',
- desc='Current velocity of the vehicle along its body axis'
-)
-
-add_meta_data(
- Dynamic.Mission.VELOCITY_RATE,
- meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
- units='ft/s**2',
- desc='Current rate of change in velocity (acceleration) of the vehicle along its '
- 'body axis'
-)
-
# ============================================================================================================================================
# .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .-----------------.
# | .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. |
@@ -6860,33 +6640,40 @@
# \_____| \___/ |_| |_| |___/ \__| |_| \__,_| |_| |_| |_| \__| |___/
# ===========================================================================
+add_meta_data(
+ Mission.Constraints.GEARBOX_SHAFT_POWER_RESIDUAL,
+ meta_data=_MetaData,
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
+ units='kW',
+ desc='Must be zero or positive to ensure that the gearbox is sized large enough to handle the maximum shaft power the engine could output during any part of the mission',
+)
+
add_meta_data(
Mission.Constraints.MASS_RESIDUAL,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='lbm',
desc='residual to make sure aircraft mass closes on actual '
- 'gross takeoff mass, value should be zero at convergence '
- '(within acceptable tolerance)',
+ 'gross takeoff mass, value should be zero at convergence '
+ '(within acceptable tolerance)',
)
add_meta_data(
Mission.Constraints.MAX_MACH,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'WTIN.VMMO',
- # [ # inputs
- # '&DEFINE.WTIN.VMMO', 'VLIMIT.VMMO',
- # # outputs
- # 'VLIMIT.VMAX',
- # ],
- "LEAPS1": ['aircraft.inputs.L0_weights.max_mach',
- 'aircraft.outputs.L0_weights.max_mach',
- ]
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'WTIN.VMMO',
+ # [ # inputs
+ # '&DEFINE.WTIN.VMMO', 'VLIMIT.VMMO',
+ # # outputs
+ # 'VLIMIT.VMAX',
+ # ],
+ "LEAPS1": [
+ 'aircraft.inputs.L0_weights.max_mach',
+ 'aircraft.outputs.L0_weights.max_mach',
+ ],
+ },
units='unitless',
desc='aircraft cruise mach number',
# TODO: derived default value: Mission.Summary.CRUISE_MACH ???
@@ -6897,35 +6684,21 @@
add_meta_data(
Mission.Constraints.RANGE_RESIDUAL,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='NM',
desc='residual to make sure aircraft range is equal to the targeted '
- 'range, value should be zero at convergence (within acceptable '
- 'tolerance)',
+ 'range, value should be zero at convergence (within acceptable '
+ 'tolerance)',
)
add_meta_data(
Mission.Constraints.RANGE_RESIDUAL_RESERVE,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='NM',
desc='residual to make sure aircraft reserve mission range is equal to the targeted '
- 'range, value should be zero at convergence (within acceptable '
- 'tolerance)',
-)
-
-add_meta_data(
- Mission.Constraints.SHAFT_POWER_RESIDUAL,
- meta_data=_MetaData,
- historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
- units='kW',
- desc='Must be zero or positive to ensure that the gearbox is sized large enough to handle the maximum shaft power the engine could output during any part of the mission',
+ 'range, value should be zero at convergence (within acceptable '
+ 'tolerance)',
)
# _____ _
@@ -6941,23 +6714,18 @@
add_meta_data(
Mission.Design.CRUISE_ALTITUDE,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.CRALT',
- "FLOPS": None,
- "LEAPS1": None
- },
- option=True,
+ historical_name={"GASP": 'INGASP.CRALT', "FLOPS": None, "LEAPS1": None},
units='ft',
- default_value=25000,
+ option=True,
+ default_value=25000.0,
+ types=(int, float),
desc='design mission cruise altitude',
- types=[int, float]
)
add_meta_data(
Mission.Design.CRUISE_RANGE,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None},
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='NM',
desc='the distance flown by the aircraft during cruise',
default_value=0.0,
@@ -6966,45 +6734,45 @@
add_meta_data(
Mission.Design.FUEL_MASS,
meta_data=_MetaData,
- historical_name={"GASP": "INGASP.WFADES",
- "FLOPS": None, # ['WSP(38, 2)', '~WEIGHT.FUELM', '~INERT.FUELM'],
- "LEAPS1": ['(WeightABC)self._fuel_weight',
- 'aircraft.outputs.L0_weights_summary.fuel_weight'
- ]
- },
+ historical_name={
+ "GASP": "INGASP.WFADES",
+ "FLOPS": None, # ['WSP(38, 2)', '~WEIGHT.FUELM', '~INERT.FUELM'],
+ "LEAPS1": [
+ '(WeightABC)self._fuel_weight',
+ 'aircraft.outputs.L0_weights_summary.fuel_weight',
+ ],
+ },
units='lbm',
desc='fuel carried by the aircraft when it is on the ramp at the '
- 'beginning of the design mission',
+ 'beginning of the design mission',
)
add_meta_data(
Mission.Design.FUEL_MASS_REQUIRED,
meta_data=_MetaData,
- historical_name={"GASP": "INGASP.WFAREQ",
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": "INGASP.WFAREQ", "FLOPS": None, "LEAPS1": None},
units='lbm',
desc='fuel carried by the aircraft when it is on the ramp at the '
- 'beginning of the design mission',
+ 'beginning of the design mission',
)
add_meta_data(
Mission.Design.GROSS_MASS,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.WG',
- # ['&DEFINE.WTIN.DGW', 'WTS.DGW', '~WEIGHT.DG', '~WWGHT.DG'],
- "FLOPS": 'WTIN.DGW',
- "LEAPS1": [ # TODO: 'aircraft.inputs.L0_weights.design_ramp_weight_fraction' ???
- # - design_ramp_weight_fraction has a default: 1.0
- # - design_ramp_weight does not have an explicit default
- # - design_ramp_weight has an implicit default, by way of
- # design_ramp_weight_fraction:
- # [L0_design_variables] ramp_weight
- 'aircraft.inputs.L0_weights.design_ramp_weight',
- '(weightABC)self._design_gross_weight'
- ]
- },
+ historical_name={
+ "GASP": 'INGASP.WG',
+ # ['&DEFINE.WTIN.DGW', 'WTS.DGW', '~WEIGHT.DG', '~WWGHT.DG'],
+ "FLOPS": 'WTIN.DGW',
+ "LEAPS1": [ # TODO: 'aircraft.inputs.L0_weights.design_ramp_weight_fraction' ???
+ # - design_ramp_weight_fraction has a default: 1.0
+ # - design_ramp_weight does not have an explicit default
+ # - design_ramp_weight has an implicit default, by way of
+ # design_ramp_weight_fraction:
+ # [L0_design_variables] ramp_weight
+ 'aircraft.inputs.L0_weights.design_ramp_weight',
+ '(weightABC)self._design_gross_weight',
+ ],
+ },
units='lbm',
desc='design gross mass of the aircraft',
default_value=None,
@@ -7014,50 +6782,55 @@
# NOTE: user override (no scaling)
Mission.Design.LIFT_COEFFICIENT,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'AERIN.FCLDES',
- # [ # inputs
- # '&DEFINE.AERIN.FCLDES', 'OSWALD.FCLDES',
- # # outputs
- # '~EDET.CLDES', '~CLDESN.CLDES', '~MDESN.CLDES'
- # ],
- "LEAPS1": ['aircraft.inputs.L0_aerodynamics.design_lift_coeff',
- 'aircraft.outputs.L0_aerodynamics.design_lift_coeff'
- ]
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'AERIN.FCLDES',
+ # [ # inputs
+ # '&DEFINE.AERIN.FCLDES', 'OSWALD.FCLDES',
+ # # outputs
+ # '~EDET.CLDES', '~CLDESN.CLDES', '~MDESN.CLDES'
+ # ],
+ "LEAPS1": [
+ 'aircraft.inputs.L0_aerodynamics.design_lift_coeff',
+ 'aircraft.outputs.L0_aerodynamics.design_lift_coeff',
+ ],
+ },
units='unitless',
desc='Fixed design lift coefficient. If input, overrides design lift '
- 'coefficient computed by EDET.',
+ 'coefficient computed by EDET.',
default_value=None,
)
add_meta_data(
Mission.Design.LIFT_COEFFICIENT_MAX_FLAPS_UP,
meta_data=_MetaData,
- historical_name={"GASP": ['INGASP.CLMWFU', 'INGASP.CLMAX'],
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={
+ "GASP": ['INGASP.CLMWFU', 'INGASP.CLMAX'],
+ "FLOPS": None,
+ "LEAPS1": None,
+ },
units='unitless',
desc='maximum lift coefficient from flaps model when flaps are up '
- '(not deployed)',
+ '(not deployed)',
)
add_meta_data(
# NOTE: user override (no scaling)
Mission.Design.MACH,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.CRMACH',
- "FLOPS": 'AERIN.FMDES',
- # [ # inputs
- # '&DEFINE.AERIN.FMDES', 'OSWALD.FMDES'
- # # outputs
- # '~EDET.DESM', '~MDESN.DESM'
- # ],
- "LEAPS1": ['aircraft.inputs.L0_design_variables.design_mach',
- 'aircraft.outputs.L0_design_variables.design_mach',
- ]
- },
+ historical_name={
+ "GASP": 'INGASP.CRMACH',
+ "FLOPS": 'AERIN.FMDES',
+ # [ # inputs
+ # '&DEFINE.AERIN.FMDES', 'OSWALD.FMDES'
+ # # outputs
+ # '~EDET.DESM', '~MDESN.DESM'
+ # ],
+ "LEAPS1": [
+ 'aircraft.inputs.L0_design_variables.design_mach',
+ 'aircraft.outputs.L0_design_variables.design_mach',
+ ],
+ },
units='unitless',
desc='aircraft design Mach number',
)
@@ -7065,11 +6838,12 @@
add_meta_data(
Mission.Design.RANGE,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.ARNGE',
- # ['&DEFINE.CONFIN.DESRNG', 'CONFIG.DESRNG'],
- "FLOPS": 'CONFIN.DESRNG',
- "LEAPS1": 'aircraft.inputs.L0_configuration.design_range'
- },
+ historical_name={
+ "GASP": 'INGASP.ARNGE',
+ # ['&DEFINE.CONFIN.DESRNG', 'CONFIG.DESRNG'],
+ "FLOPS": 'CONFIN.DESRNG',
+ "LEAPS1": 'aircraft.inputs.L0_configuration.design_range',
+ },
units='NM',
desc='the aircraft target distance',
default_value=0.0,
@@ -7078,10 +6852,7 @@
add_meta_data(
Mission.Design.RATE_OF_CLIMB_AT_TOP_OF_CLIMB,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.ROCTOC',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.ROCTOC', "FLOPS": None, "LEAPS1": None},
option=True,
units='ft/min',
desc='The required rate of climb at top of climb',
@@ -7089,15 +6860,12 @@
)
add_meta_data(
- Mission.Design.RESERVE_FUEL,
- meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ Mission.Design.RESERVE_FUEL,
+ meta_data=_MetaData,
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units="lbm",
desc='the total fuel reserves which is the sum of: '
- 'RESERVE_FUEL_BURNED, RESERVE_FUEL_ADDITIONAL, RESERVE_FUEL_FRACTION',
+ 'RESERVE_FUEL_BURNED, RESERVE_FUEL_ADDITIONAL, RESERVE_FUEL_FRACTION',
default_value=0,
)
@@ -7105,17 +6873,19 @@
# TODO move to Engine?
Mission.Design.THRUST_TAKEOFF_PER_ENG,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # FLOPS may scale the input value as it resizes the engine if requested by
- # the user
- # ['&DEFINE.AERIN.THROFF', 'LANDG.THROF', 'LANDG.THROFF'],
- "FLOPS": 'AERIN.THROFF',
- # LEAPS1 uses the average thrust_takeoff of all operational engines
- # actually on the airplane, possibly after resizing (as with FLOPS)
- "LEAPS1": ['aircraft.inputs.L0_engine.thrust_takeoff',
- '(SimpleTakeoff)self.thrust',
- ]
- },
+ historical_name={
+ "GASP": None,
+ # FLOPS may scale the input value as it resizes the engine if requested by
+ # the user
+ # ['&DEFINE.AERIN.THROFF', 'LANDG.THROF', 'LANDG.THROFF'],
+ "FLOPS": 'AERIN.THROFF',
+ # LEAPS1 uses the average thrust_takeoff of all operational engines
+ # actually on the airplane, possibly after resizing (as with FLOPS)
+ "LEAPS1": [
+ 'aircraft.inputs.L0_engine.thrust_takeoff',
+ '(SimpleTakeoff)self.thrust',
+ ],
+ },
units='lbf',
# need better description of what state. rolling takeoff condition? alt? mach?
desc='thrust on the aircraft for takeoff',
@@ -7135,10 +6905,7 @@
add_meta_data(
Mission.Landing.AIRPORT_ALTITUDE,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.ALTLND',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.ALTLND', "FLOPS": None, "LEAPS1": None},
units='ft',
desc='altitude of airport where aircraft lands',
default_value=0,
@@ -7147,10 +6914,7 @@
add_meta_data(
Mission.Landing.BRAKING_DELAY,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.TDELAY',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.TDELAY', "FLOPS": None, "LEAPS1": None},
units='s',
desc='time delay between touchdown and the application of brakes',
default_value=1,
@@ -7164,17 +6928,16 @@
# 'FLOPS': ['&DEFTOL.TOLIN.BRAKMU', 'BALFLD.BRAKMU'],
# 'GASP': None,
# 'LEAPS1': 'aircraft.inputs.L0_takeoff_and_landing.braking_mu'},
- historical_name={'FLOPS': None, 'GASP': None, 'LEAPS1': None}, default_value=0.3,
+ historical_name={'FLOPS': None, 'GASP': None, 'LEAPS1': None},
+ default_value=0.3,
units='unitless',
- desc='landing coefficient of friction, with brakes on')
+ desc='landing coefficient of friction, with brakes on',
+)
add_meta_data(
Mission.Landing.DRAG_COEFFICIENT_FLAP_INCREMENT,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.DCD',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.DCD', "FLOPS": None, "LEAPS1": None},
units='unitless',
desc='drag coefficient increment at landing due to flaps',
)
@@ -7182,10 +6945,11 @@
add_meta_data(
Mission.Landing.DRAG_COEFFICIENT_MIN,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'AERIN.CDMLD', # ['&DEFINE.AERIN.CDMLD', 'LANDG.CDMLD'],
- "LEAPS1": None
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'AERIN.CDMLD', # ['&DEFINE.AERIN.CDMLD', 'LANDG.CDMLD'],
+ "LEAPS1": None,
+ },
units='unitless',
desc='Minimum drag coefficient for takeoff. Typically this is CD at zero lift.',
default_value=0.0,
@@ -7194,21 +6958,19 @@
add_meta_data(
Mission.Landing.FIELD_LENGTH,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None, # '~ANALYS.FARLDG',
- "LEAPS1": '(SimpleLanding)self.landing_distance'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # '~ANALYS.FARLDG',
+ "LEAPS1": '(SimpleLanding)self.landing_distance',
+ },
units='ft',
- desc='FAR landing field length'
+ desc='FAR landing field length',
)
add_meta_data(
Mission.Landing.FLARE_RATE,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'TOLIN.VANGLD',
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": 'TOLIN.VANGLD', "LEAPS1": None},
units="deg/s",
desc='flare rate in detailed landing',
default_value=2.0,
@@ -7217,10 +6979,7 @@
add_meta_data(
Mission.Landing.GLIDE_TO_STALL_RATIO,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.VRATT',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.VRATT', "FLOPS": None, "LEAPS1": None},
units="unitless",
desc='ratio of glide (approach) speed to stall speed',
default_value=1.3,
@@ -7229,55 +6988,48 @@
add_meta_data(
Mission.Landing.GROUND_DISTANCE,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.DLT', # Is DLT actual landing distance or field length?
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={
+ "GASP": 'INGASP.DLT', # Is DLT actual landing distance or field length?
+ "FLOPS": None,
+ "LEAPS1": None,
+ },
units='ft',
- desc='distance covered over the ground during landing'
+ desc='distance covered over the ground during landing',
)
add_meta_data(
Mission.Landing.INITIAL_ALTITUDE,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.HIN',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.HIN', "FLOPS": None, "LEAPS1": None},
units='ft',
- desc='altitude where landing calculations begin'
+ desc='altitude where landing calculations begin',
)
add_meta_data(
Mission.Landing.INITIAL_MACH,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units="unitless",
desc='approach mach number',
- default_value=0.1
+ default_value=0.1,
)
add_meta_data(
Mission.Landing.INITIAL_VELOCITY,
meta_data=_MetaData,
- historical_name={"GASP": "INGASP.VGL",
- "FLOPS": 'AERIN.VAPPR',
- "LEAPS1": '(SimpleLanding)self.vapp'
- },
+ historical_name={
+ "GASP": "INGASP.VGL",
+ "FLOPS": 'AERIN.VAPPR',
+ "LEAPS1": '(SimpleLanding)self.vapp',
+ },
units='ft/s',
- desc='approach velocity'
+ desc='approach velocity',
)
add_meta_data(
Mission.Landing.LIFT_COEFFICIENT_FLAP_INCREMENT,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.DCL',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.DCL', "FLOPS": None, "LEAPS1": None},
units='unitless',
desc='lift coefficient increment at landing due to flaps',
)
@@ -7288,10 +7040,11 @@
# CLLDM (this variable)
Mission.Landing.LIFT_COEFFICIENT_MAX,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.CLMWLD',
- "FLOPS": 'AERIN.CLLDM', # ['&DEFINE.AERIN.CLLDM', 'LANDG.CLLDM'],
- "LEAPS1": 'aircraft.inputs.L0_takeoff_and_landing.max_landing_lift_coeff'
- },
+ historical_name={
+ "GASP": 'INGASP.CLMWLD',
+ "FLOPS": 'AERIN.CLLDM', # ['&DEFINE.AERIN.CLLDM', 'LANDG.CLLDM'],
+ "LEAPS1": 'aircraft.inputs.L0_takeoff_and_landing.max_landing_lift_coeff',
+ },
units='unitless',
desc='maximum lift coefficient for landing',
default_value=3.0,
@@ -7300,10 +7053,7 @@
add_meta_data(
Mission.Landing.MAXIMUM_FLARE_LOAD_FACTOR,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.XLFMX',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.XLFMX', "FLOPS": None, "LEAPS1": None},
units="unitless",
desc='maximum load factor during landing flare',
default_value=1.15,
@@ -7312,10 +7062,7 @@
add_meta_data(
Mission.Landing.MAXIMUM_SINK_RATE,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.RSMX',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.RSMX', "FLOPS": None, "LEAPS1": None},
units='ft/min',
desc='maximum rate of sink during glide',
default_value=1000,
@@ -7324,10 +7071,7 @@
add_meta_data(
Mission.Landing.OBSTACLE_HEIGHT,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.HAPP',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.HAPP', "FLOPS": None, "LEAPS1": None},
units='ft',
desc='landing obstacle height above the ground at airport altitude',
default_value=50,
@@ -7346,8 +7090,7 @@
# },
historical_name={'FLOPS': None, 'GASP': None, 'LEAPS1': None},
units='unitless',
- desc='coefficient of rolling friction for groundroll '
- 'portion of takeoff',
+ desc='coefficient of rolling friction for groundroll ' 'portion of takeoff',
default_value=0.025,
)
@@ -7380,10 +7123,7 @@
add_meta_data(
Mission.Landing.STALL_VELOCITY,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.VST',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.VST', "FLOPS": None, "LEAPS1": None},
units='ft/s',
desc='stall speed during approach',
)
@@ -7391,24 +7131,22 @@
add_meta_data(
Mission.Landing.TOUCHDOWN_MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None, # ['~ANALYS.WLDG', '~LNDING.GROSWT'],
- "LEAPS1": '(SimpleLanding)self.weight'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # ['~ANALYS.WLDG', '~LNDING.GROSWT'],
+ "LEAPS1": '(SimpleLanding)self.weight',
+ },
units='lbm',
desc='computed mass of aircraft for landing, is only '
- 'required to be equal to Aircraft.Design.TOUCHDOWN_MASS '
- 'when the design case is being run '
- 'for HEIGHT_ENERGY missions this is the mass at the end of the last regular phase (non-reserve phase)',
+ 'required to be equal to Aircraft.Design.TOUCHDOWN_MASS '
+ 'when the design case is being run '
+ 'for HEIGHT_ENERGY missions this is the mass at the end of the last regular phase (non-reserve phase)',
)
add_meta_data(
Mission.Landing.TOUCHDOWN_SINK_RATE,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.SINKTD',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.SINKTD', "FLOPS": None, "LEAPS1": None},
units='ft/s',
desc='sink rate at touchdown',
default_value=3,
@@ -7427,25 +7165,19 @@
add_meta_data(
Mission.Objectives.FUEL,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='unitless',
desc='regularized objective that minimizes total fuel mass subject '
- 'to other necessary additions',
+ 'to other necessary additions',
)
add_meta_data(
Mission.Objectives.RANGE,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='unitless',
desc='regularized objective that maximizes range subject to other '
- 'necessary additions',
+ 'necessary additions',
)
# _____
@@ -7461,20 +7193,22 @@
add_meta_data(
Mission.Summary.CRUISE_MACH,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'CONFIN.VCMN',
- # [ # inputs
- # '&DEFINE.CONFIN.VCMN', 'PARVAR.DVD(1,8)',
- # # outputs
- # 'CONFIG.VCMN', 'CONFIG.DVA(8)', '~FLOPS.DVA(8)', '~ANALYS.DVA(8)',
- # # other
- # 'MISSA.VCMIN',
- # ],
- "LEAPS1": ['aircraft.inputs.L0_design_variables.cruise_mach',
- 'aircraft.outputs.L0_design_variables.cruise_mach',
- 'aircraft.outputs.L0_design_variables.mission_cruise_mach',
- ]
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'CONFIN.VCMN',
+ # [ # inputs
+ # '&DEFINE.CONFIN.VCMN', 'PARVAR.DVD(1,8)',
+ # # outputs
+ # 'CONFIG.VCMN', 'CONFIG.DVA(8)', '~FLOPS.DVA(8)', '~ANALYS.DVA(8)',
+ # # other
+ # 'MISSA.VCMIN',
+ # ],
+ "LEAPS1": [
+ 'aircraft.inputs.L0_design_variables.cruise_mach',
+ 'aircraft.outputs.L0_design_variables.cruise_mach',
+ 'aircraft.outputs.L0_design_variables.mission_cruise_mach',
+ ],
+ },
units='unitless',
desc='aircraft cruise mach number',
default_value=0.0, # TODO: required
@@ -7483,10 +7217,7 @@
add_meta_data(
Mission.Summary.CRUISE_MASS_FINAL,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='lbm',
desc='mass of the aircraft at the end of cruise',
default_value=0.0,
@@ -7495,13 +7226,10 @@
add_meta_data(
Mission.Summary.FUEL_BURNED,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='lbm',
desc='fuel burned during regular phases, this '
- 'does not include fuel burned in reserve phases'
+ 'does not include fuel burned in reserve phases',
)
# NOTE if per-mission level scaling is not best mapping for GASP's 'CKFF', map
@@ -7511,65 +7239,54 @@
add_meta_data(
Mission.Summary.FUEL_FLOW_SCALER,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.CKFF',
- "FLOPS": 'MISSIN.FACT', # ['&DEFMSS.MISSIN.FACT', 'TRNSF.FACT'],
- "LEAPS1": ['aircraft.inputs.L0_fuel_flow.overall_factor']
- },
+ historical_name={
+ "GASP": 'INGASP.CKFF',
+ "FLOPS": 'MISSIN.FACT', # ['&DEFMSS.MISSIN.FACT', 'TRNSF.FACT'],
+ "LEAPS1": ['aircraft.inputs.L0_fuel_flow.overall_factor'],
+ },
units='unitless',
desc='scale factor on overall fuel flow',
default_value=1.0,
- option=True
+ option=True,
)
add_meta_data(
Mission.Summary.GROSS_MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='lbm',
desc='gross takeoff mass of aircraft for that specific mission, not '
- 'necessarily the value for the aircraft`s design mission'
+ 'necessarily the value for the aircraft`s design mission',
)
add_meta_data(
Mission.Summary.RANGE,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='NM',
desc='actual range that the aircraft flies, whether '
- 'it is a design case or an off design case. Equal '
- 'to Mission.Design.RANGE value in the design case.'
+ 'it is a design case or an off design case. Equal '
+ 'to Mission.Design.RANGE value in the design case.',
)
add_meta_data(
Mission.Summary.RESERVE_FUEL_BURNED,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='lbm',
desc='fuel burned during reserve phases, this '
- 'does not include fuel burned in regular phases',
- default_value=0.,
+ 'does not include fuel burned in regular phases',
+ default_value=0.0,
)
add_meta_data(
Mission.Summary.TOTAL_FUEL_MASS,
meta_data=_MetaData,
- historical_name={"GASP": "INGASP.WFA",
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": "INGASP.WFA", "FLOPS": None, "LEAPS1": None},
units='lbm',
desc='total fuel carried at the beginnning of a mission '
- 'includes fuel burned in the mission, reserve fuel '
- 'and fuel margin',
+ 'includes fuel burned in the mission, reserve fuel '
+ 'and fuel margin',
)
@@ -7584,12 +7301,9 @@
add_meta_data(
Mission.Takeoff.AIRPORT_ALTITUDE,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='ft',
- desc='altitude of airport where aircraft takes off'
+ desc='altitude of airport where aircraft takes off',
)
add_meta_data(
@@ -7599,19 +7313,18 @@
# ['&DEFTOL.TOLIN.ALPRUN', 'BALFLD.ALPRUN', '~CLGRAD.ALPRUN'],
'FLOPS': 'TOLIN.ALPRUN',
'GASP': None,
- 'LEAPS1': 'aircraft.inputs.L0_takeoff_and_landing.alpha_runway'},
+ 'LEAPS1': 'aircraft.inputs.L0_takeoff_and_landing.alpha_runway',
+ },
option=True,
- default_value=0.,
+ default_value=0.0,
units='deg',
- desc='angle of attack on ground')
+ desc='angle of attack on ground',
+)
add_meta_data(
Mission.Takeoff.ASCENT_DURATION,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='s',
desc='duration of the ascent phase of takeoff',
)
@@ -7619,10 +7332,7 @@
add_meta_data(
Mission.Takeoff.ASCENT_T_INTIIAL,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='s',
desc='time that the ascent phase of takeoff starts at',
default_value=10,
@@ -7635,18 +7345,17 @@
historical_name={
'FLOPS': 'TOLIN.BRAKMU', # ['&DEFTOL.TOLIN.BRAKMU', 'BALFLD.BRAKMU'],
'GASP': None,
- 'LEAPS1': 'aircraft.inputs.L0_takeoff_and_landing.braking_mu'},
+ 'LEAPS1': 'aircraft.inputs.L0_takeoff_and_landing.braking_mu',
+ },
default_value=0.3,
units='unitless',
- desc='takeoff coefficient of friction, with brakes on')
+ desc='takeoff coefficient of friction, with brakes on',
+)
add_meta_data(
Mission.Takeoff.DECISION_SPEED_INCREMENT,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.DV1',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.DV1', "FLOPS": None, "LEAPS1": None},
units='kn',
desc='increment of engine failure decision speed above stall speed',
default_value=5,
@@ -7655,10 +7364,7 @@
add_meta_data(
Mission.Takeoff.DRAG_COEFFICIENT_FLAP_INCREMENT,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.DCD',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.DCD', "FLOPS": None, "LEAPS1": None},
units='unitless',
desc='drag coefficient increment at takeoff due to flaps',
)
@@ -7666,10 +7372,11 @@
add_meta_data(
Mission.Takeoff.DRAG_COEFFICIENT_MIN,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'AERIN.CDMTO', # ['&DEFINE.AERIN.CDMTO', 'LANDG.CDMTO'],
- "LEAPS1": None
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'AERIN.CDMTO', # ['&DEFINE.AERIN.CDMTO', 'LANDG.CDMTO'],
+ "LEAPS1": None,
+ },
units='unitless',
desc='Minimum drag coefficient for takeoff. Typically this is CD at zero lift.',
default_value=0.0,
@@ -7678,22 +7385,24 @@
add_meta_data(
Mission.Takeoff.FIELD_LENGTH,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None, # '~ANALYS.FAROFF',
- "LEAPS1": '(SimpleTakeoff)self.takeoff_distance'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # '~ANALYS.FAROFF',
+ "LEAPS1": '(SimpleTakeoff)self.takeoff_distance',
+ },
units='ft',
- desc='FAR takeoff field length'
+ desc='FAR takeoff field length',
)
add_meta_data(
Mission.Takeoff.FINAL_ALTITUDE,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['&DEFTOL.TOLIN.OBSTO', 'TOCOMM.OBSTO', 'TOCOMM.DUMC(8)'],
- "FLOPS": 'TOLIN.OBSTO',
- "LEAPS1": 'aircraft.inputs.L0_takeoff_and_landing.obstacle_height'
- },
+ historical_name={
+ "GASP": None,
+ # ['&DEFTOL.TOLIN.OBSTO', 'TOCOMM.OBSTO', 'TOCOMM.DUMC(8)'],
+ "FLOPS": 'TOLIN.OBSTO',
+ "LEAPS1": 'aircraft.inputs.L0_takeoff_and_landing.obstacle_height',
+ },
units='ft',
desc='altitude of aircraft at the end of takeoff',
# Note default value is aircraft type dependent
@@ -7705,24 +7414,21 @@
add_meta_data(
Mission.Takeoff.FINAL_MACH,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None,
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None,
+ "LEAPS1": None,
+ },
units='unitless',
- desc='Mach number of aircraft after taking off and '
- 'clearing a 35 foot obstacle'
+ desc='Mach number of aircraft after taking off and ' 'clearing a 35 foot obstacle',
)
add_meta_data(
Mission.Takeoff.FINAL_MASS,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='lbm',
- desc='mass after aircraft has cleared 35 ft obstacle'
+ desc='mass after aircraft has cleared 35 ft obstacle',
)
add_meta_data(
@@ -7731,13 +7437,13 @@
# - correct Aviary equations?
Mission.Takeoff.FINAL_VELOCITY,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None, # '~TOFF.V2',
- "LEAPS1": '(ClimbToObstacle)self.V2'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # '~TOFF.V2',
+ "LEAPS1": '(ClimbToObstacle)self.V2',
+ },
units='m/s',
- desc='velocity of aircraft after taking off and '
- 'clearing a 35 foot obstacle'
+ desc='velocity of aircraft after taking off and ' 'clearing a 35 foot obstacle',
)
add_meta_data(
@@ -7746,13 +7452,15 @@
# part of takeoff
Mission.Takeoff.FUEL_SIMPLE,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['&DEFMSS.MISSIN.FTKOFL', 'FFLALL.FTKOFL', '~MISSON.TAKOFL'],
- "FLOPS": 'MISSIN.FTKOFL',
- "LEAPS1": ['aircraft.inputs.L0_mission.fixed_takeoff_fuel',
- 'aircraft.outputs.L0_takeoff_and_landing.takeoff_fuel',
- ]
- },
+ historical_name={
+ "GASP": None,
+ # ['&DEFMSS.MISSIN.FTKOFL', 'FFLALL.FTKOFL', '~MISSON.TAKOFL'],
+ "FLOPS": 'MISSIN.FTKOFL',
+ "LEAPS1": [
+ 'aircraft.inputs.L0_mission.fixed_takeoff_fuel',
+ 'aircraft.outputs.L0_takeoff_and_landing.takeoff_fuel',
+ ],
+ },
units='lbm',
desc='fuel burned during simple takeoff calculation',
default_value=None,
@@ -7761,21 +7469,15 @@
add_meta_data(
Mission.Takeoff.GROUND_DISTANCE,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units='ft',
- desc='ground distance covered by takeoff with all engines operating'
+ desc='ground distance covered by takeoff with all engines operating',
)
add_meta_data(
Mission.Takeoff.LIFT_COEFFICIENT_FLAP_INCREMENT,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.DCL',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.DCL', "FLOPS": None, "LEAPS1": None},
units='unitless',
desc='lift coefficient increment at takeoff due to flaps',
)
@@ -7783,11 +7485,12 @@
add_meta_data(
Mission.Takeoff.LIFT_COEFFICIENT_MAX,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.CLMWTO',
- # ['&DEFINE.AERIN.CLTOM', 'LANDG.CLTOM', '~DEFTOL.CLTOA'],
- "FLOPS": 'AERIN.CLTOM',
- "LEAPS1": 'aircraft.inputs.L0_takeoff_and_landing.max_takeoff_lift_coeff'
- },
+ historical_name={
+ "GASP": 'INGASP.CLMWTO',
+ # ['&DEFINE.AERIN.CLTOM', 'LANDG.CLTOM', '~DEFTOL.CLTOA'],
+ "FLOPS": 'AERIN.CLTOM',
+ "LEAPS1": 'aircraft.inputs.L0_takeoff_and_landing.max_takeoff_lift_coeff',
+ },
units='unitless',
desc='maximum lift coefficient for takeoff',
default_value=2.0,
@@ -7796,12 +7499,13 @@
add_meta_data(
Mission.Takeoff.LIFT_OVER_DRAG,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None, # '~ANALYS.CLOD',
- "LEAPS1": '(SimpleTakeoff)self.lift_over_drag_ratio'
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": None, # '~ANALYS.CLOD',
+ "LEAPS1": '(SimpleTakeoff)self.lift_over_drag_ratio',
+ },
units='unitless',
- desc='ratio of lift to drag at takeoff'
+ desc='ratio of lift to drag at takeoff',
)
add_meta_data(
@@ -7816,36 +7520,34 @@
# Note default value is aircraft type dependent
# - transport: 35 ft
# assume transport for now
- default_value=35.,
+ default_value=35.0,
units='ft',
- desc='takeoff obstacle height above the ground at airport altitude'
+ desc='takeoff obstacle height above the ground at airport altitude',
)
add_meta_data(
Mission.Takeoff.ROLLING_FRICTION_COEFFICIENT,
meta_data=_MetaData,
- historical_name={"GASP": None,
- # ['&DEFTOL.TOLIN.ROLLMU', 'BALFLD.ROLLMU'],
- "FLOPS": 'TOLIN.ROLLMU',
- "LEAPS1": ['aircraft.inputs.L0_takeoff_and_landing.rolling_mu',
- '(GroundRoll)self.mu',
- '(Rotate)self.mu',
- '(GroundBrake)self.rolling_mu',
- ]
- },
+ historical_name={
+ "GASP": None,
+ # ['&DEFTOL.TOLIN.ROLLMU', 'BALFLD.ROLLMU'],
+ "FLOPS": 'TOLIN.ROLLMU',
+ "LEAPS1": [
+ 'aircraft.inputs.L0_takeoff_and_landing.rolling_mu',
+ '(GroundRoll)self.mu',
+ '(Rotate)self.mu',
+ '(GroundBrake)self.rolling_mu',
+ ],
+ },
units='unitless',
- desc='coefficient of rolling friction for groundroll '
- 'portion of takeoff',
+ desc='coefficient of rolling friction for groundroll ' 'portion of takeoff',
default_value=0.025,
)
add_meta_data(
Mission.Takeoff.ROTATION_SPEED_INCREMENT,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.DVR',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.DVR', "FLOPS": None, "LEAPS1": None},
units='kn',
desc='increment of takeoff rotation speed above engine failure decision speed',
default_value=5,
@@ -7854,10 +7556,7 @@
add_meta_data(
Mission.Takeoff.ROTATION_VELOCITY,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.VR',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.VR', "FLOPS": None, "LEAPS1": None},
units='kn',
desc='rotation velocity',
)
@@ -7865,10 +7564,11 @@
add_meta_data(
Mission.Takeoff.SPOILER_DRAG_COEFFICIENT,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'TOLIN.CDSPOL', # '&DEFTOL.TOLIN.CDSPOL',
- "LEAPS1": None
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'TOLIN.CDSPOL', # '&DEFTOL.TOLIN.CDSPOL',
+ "LEAPS1": None,
+ },
units='unitless',
desc='drag coefficient for spoilers during takeoff abort',
default_value=0.0,
@@ -7877,10 +7577,11 @@
add_meta_data(
Mission.Takeoff.SPOILER_LIFT_COEFFICIENT,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": 'TOLIN.CLSPOL', # '&DEFTOL.TOLIN.CLSPOL',
- "LEAPS1": None
- },
+ historical_name={
+ "GASP": None,
+ "FLOPS": 'TOLIN.CLSPOL', # '&DEFTOL.TOLIN.CLSPOL',
+ "LEAPS1": None,
+ },
units='unitless',
desc='lift coefficient for spoilers during takeoff abort',
default_value=0.0,
@@ -7892,11 +7593,13 @@
historical_name={
'FLOPS': 'TOLIN.TINC', # ['&DEFTOL.TOLIN.TINC', 'BALFLD.TINC', '~CLGRAD.TINC'],
'GASP': None,
- 'LEAPS1': 'aircraft.inputs.L0_takeoff_and_landing.thrust_incidence_angle'},
+ 'LEAPS1': 'aircraft.inputs.L0_takeoff_and_landing.thrust_incidence_angle',
+ },
option=True,
- default_value=0.,
+ default_value=0.0,
units='deg',
- desc='thrust incidence on ground')
+ desc='thrust incidence on ground',
+)
# _______ _
# |__ __| (_)
@@ -7909,10 +7612,7 @@
add_meta_data(
Mission.Taxi.DURATION,
meta_data=_MetaData,
- historical_name={"GASP": 'INGASP.DELTT',
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": 'INGASP.DELTT', "FLOPS": None, "LEAPS1": None},
units='h',
desc='time spent taxiing before takeoff',
option=True,
@@ -7922,10 +7622,7 @@
add_meta_data(
Mission.Taxi.MACH,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
units="unitless",
desc='speed during taxi, must be nonzero if pycycle is enabled',
option=True,
@@ -7947,10 +7644,7 @@
add_meta_data(
Settings.EQUATIONS_OF_MOTION,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
desc='Sets which equations of motion Aviary will use in mission analysis',
option=True,
types=EquationsOfMotion,
@@ -7960,45 +7654,41 @@
add_meta_data(
Settings.MASS_METHOD,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
desc="Sets which legacy code's methods will be used for mass estimation",
option=True,
types=LegacyCode,
- default_value=None
+ default_value=None,
)
add_meta_data(
Settings.PROBLEM_TYPE,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
desc="Select from Aviary's built in problem types: Sizing, Alternate, and Fallout",
option=True,
types=ProblemType,
- default_value=None
+ default_value=None,
)
add_meta_data(
Settings.VERBOSITY,
meta_data=_MetaData,
- historical_name={"GASP": None,
- "FLOPS": None,
- "LEAPS1": None
- },
+ historical_name={"GASP": None, "FLOPS": None, "LEAPS1": None},
desc='Sets how much information Aviary outputs when run. Options include:'
- '0. QUIET: All output except errors are suppressed'
- '1. BRIEF: Only important information is output, in human-readable format'
- '2. VERBOSE: All user-relevant information is output, in human-readable format'
- '3. DEBUG: Any information can be outtputed, including warnings, intermediate calculations, etc., with no formatting requirement',
+ '0. QUIET: All output except errors are suppressed'
+ '1. BRIEF: Only important information is output, in human-readable format'
+ '2. VERBOSE: All user-relevant information is output, in human-readable format'
+ '3. DEBUG: Any information can be outtputed, including warnings, intermediate calculations, etc., with no formatting requirement',
option=True,
types=Verbosity,
- default_value=Verbosity.BRIEF
+ default_value=Verbosity.BRIEF,
)
-# here we create a copy of the Aviary-core metadata. The reason for this copy is that if we simply imported the Aviary _MetaData in all the external subsystem extensions, we would be modifying the original and the original _MetaData in the core of Aviary could get altered in undesirable ways. By importing this copy to the API the user modifies a new MetaData designed just for their purposes.
+# here we create a copy of the Aviary-core metadata. The reason for this
+# copy is that if we simply imported the Aviary _MetaData in all the
+# external subsystem extensions, we would be modifying the original and
+# the original _MetaData in the core of Aviary could get altered in
+# undesirable ways. By importing this copy to the API the user modifies a
+# new MetaData designed just for their purposes.
CoreMetaData = deepcopy(_MetaData)
diff --git a/aviary/variable_info/variables.py b/aviary/variable_info/variables.py
index b3488defb..038a50eb9 100644
--- a/aviary/variable_info/variables.py
+++ b/aviary/variable_info/variables.py
@@ -39,8 +39,9 @@ class BWB:
CABIN_AREA = 'aircraft:blended_wing_body_design:cabin_area'
NUM_BAYS = 'aircraft:blended_wing_body_design:num_bays'
- PASSENGER_LEADING_EDGE_SWEEP = \
+ PASSENGER_LEADING_EDGE_SWEEP = (
'aircraft:blended_wing_body_design:passenger_leading_edge_sweep'
+ )
class Canard:
AREA = 'aircraft:canard:area'
@@ -59,48 +60,50 @@ class Canard:
class Controls:
COCKPIT_CONTROL_MASS_SCALER = 'aircraft:controls:cockpit_control_mass_scaler'
CONTROL_MASS_INCREMENT = 'aircraft:controls:control_mass_increment'
- STABILITY_AUGMENTATION_SYSTEM_MASS = \
+ STABILITY_AUGMENTATION_SYSTEM_MASS = (
'aircraft:controls:stability_augmentation_system_mass'
- STABILITY_AUGMENTATION_SYSTEM_MASS_SCALER = \
+ )
+ STABILITY_AUGMENTATION_SYSTEM_MASS_SCALER = (
'aircraft:controls:stability_augmentation_system_mass_scaler'
+ )
TOTAL_MASS = 'aircraft:controls:total_mass'
class CrewPayload:
BAGGAGE_MASS = 'aircraft:crew_and_payload:baggage_mass'
- BAGGAGE_MASS_PER_PASSENGER = \
+ BAGGAGE_MASS_PER_PASSENGER = (
'aircraft:crew_and_payload:baggage_mass_per_passenger'
+ )
- CARGO_CONTAINER_MASS = \
- 'aircraft:crew_and_payload:cargo_container_mass'
+ CARGO_CONTAINER_MASS = 'aircraft:crew_and_payload:cargo_container_mass'
- CARGO_CONTAINER_MASS_SCALER = \
+ CARGO_CONTAINER_MASS_SCALER = (
'aircraft:crew_and_payload:cargo_container_mass_scaler'
+ )
CARGO_MASS = 'aircraft:crew_and_payload:cargo_mass'
- CATERING_ITEMS_MASS_PER_PASSENGER = \
+ CATERING_ITEMS_MASS_PER_PASSENGER = (
'aircraft:crew_and_payload:catering_items_mass_per_passenger'
+ )
FLIGHT_CREW_MASS = 'aircraft:crew_and_payload:flight_crew_mass'
- FLIGHT_CREW_MASS_SCALER = \
- 'aircraft:crew_and_payload:flight_crew_mass_scaler'
+ FLIGHT_CREW_MASS_SCALER = 'aircraft:crew_and_payload:flight_crew_mass_scaler'
MASS_PER_PASSENGER = 'aircraft:crew_and_payload:mass_per_passenger'
MISC_CARGO = 'aircraft:crew_and_payload:misc_cargo'
- NON_FLIGHT_CREW_MASS = \
- 'aircraft:crew_and_payload:non_flight_crew_mass'
+ NON_FLIGHT_CREW_MASS = 'aircraft:crew_and_payload:non_flight_crew_mass'
- NON_FLIGHT_CREW_MASS_SCALER = \
+ NON_FLIGHT_CREW_MASS_SCALER = (
'aircraft:crew_and_payload:non_flight_crew_mass_scaler'
+ )
NUM_BUSINESS_CLASS = 'aircraft:crew_and_payload:num_business_class'
NUM_FIRST_CLASS = 'aircraft:crew_and_payload:num_first_class'
- NUM_FLIGHT_ATTENDANTS = \
- 'aircraft:crew_and_payload:num_flight_attendants'
+ NUM_FLIGHT_ATTENDANTS = 'aircraft:crew_and_payload:num_flight_attendants'
NUM_FLIGHT_CREW = 'aircraft:crew_and_payload:num_flight_crew'
NUM_GALLEY_CREW = 'aircraft:crew_and_payload:num_galley_crew'
@@ -108,26 +111,31 @@ class CrewPayload:
NUM_PASSENGERS = 'aircraft:crew_and_payload:num_passengers'
NUM_TOURIST_CLASS = 'aircraft:crew_and_payload:num_tourist_class'
- PASSENGER_MASS = \
- 'aircraft:crew_and_payload:passenger_mass'
- PASSENGER_MASS_WITH_BAGS = \
- 'aircraft:crew_and_payload:passenger_mass_with_bags'
+ PASSENGER_MASS = 'aircraft:crew_and_payload:passenger_mass'
+ PASSENGER_MASS_WITH_BAGS = 'aircraft:crew_and_payload:passenger_mass_with_bags'
PASSENGER_PAYLOAD_MASS = 'aircraft:crew_and_payload:passenger_payload_mass'
- PASSENGER_SERVICE_MASS = \
- 'aircraft:crew_and_payload:passenger_service_mass'
+ PASSENGER_SERVICE_MASS = 'aircraft:crew_and_payload:passenger_service_mass'
- PASSENGER_SERVICE_MASS_PER_PASSENGER = \
+ PASSENGER_SERVICE_MASS_PER_PASSENGER = (
'aircraft:crew_and_payload:passenger_service_mass_per_passenger'
+ )
- PASSENGER_SERVICE_MASS_SCALER = \
+ PASSENGER_SERVICE_MASS_SCALER = (
'aircraft:crew_and_payload:passenger_service_mass_scaler'
+ )
TOTAL_PAYLOAD_MASS = 'aircraft:crew_and_payload:total_payload_mass'
WATER_MASS_PER_OCCUPANT = 'aircraft:crew_and_payload:water_mass_per_occupant'
WING_CARGO = 'aircraft:crew_and_payload:wing_cargo'
+ class Design:
+ NUM_BUSINESS_CLASS = 'aircraft:crew_and_payload:design:num_business_class'
+ NUM_FIRST_CLASS = 'aircraft:crew_and_payload:design:num_first_class'
+ NUM_TOURIST_CLASS = 'aircraft:crew_and_payload:design:num_tourist_class'
+ NUM_PASSENGERS = 'aircraft:crew_and_payload:design:num_passengers'
+
class Design:
# These variables are values that do not fall into a particular aircraft
# component.
@@ -135,8 +143,9 @@ class Design:
BASE_AREA = 'aircraft:design:base_area'
CG_DELTA = 'aircraft:design:cg_delta'
CHARACTERISTIC_LENGTHS = 'aircraft:design:characteristic_lengths'
- COCKPIT_CONTROL_MASS_COEFFICIENT = \
+ COCKPIT_CONTROL_MASS_COEFFICIENT = (
'aircraft:design:cockpit_control_mass_coefficient'
+ )
COMPUTE_HTAIL_VOLUME_COEFF = 'aircraft:design:compute_htail_volume_coeff'
COMPUTE_VTAIL_VOLUME_COEFF = 'aircraft:design:compute_vtail_volume_coeff'
DRAG_COEFFICIENT_INCREMENT = 'aircraft:design:drag_increment'
@@ -146,8 +155,7 @@ class Design:
EMPTY_MASS = 'aircraft:design:empty_mass'
EMPTY_MASS_MARGIN = 'aircraft:design:empty_mass_margin'
- EMPTY_MASS_MARGIN_SCALER = \
- 'aircraft:design:empty_mass_margin_scaler'
+ EMPTY_MASS_MARGIN_SCALER = 'aircraft:design:empty_mass_margin_scaler'
EXTERNAL_SUBSYSTEMS_MASS = 'aircraft:design:external_subsystems_mass'
FINENESS = 'aircraft:design:fineness'
@@ -157,12 +165,12 @@ class Design:
LAMINAR_FLOW_LOWER = 'aircraft:design:laminar_flow_lower'
LAMINAR_FLOW_UPPER = 'aircraft:design:laminar_flow_upper'
- LANDING_TO_TAKEOFF_MASS_RATIO = \
- 'aircraft:design:landing_to_takeoff_mass_ratio'
+ LANDING_TO_TAKEOFF_MASS_RATIO = 'aircraft:design:landing_to_takeoff_mass_ratio'
LIFT_CURVE_SLOPE = 'aircraft:design:lift_curve_slope'
- LIFT_DEPENDENT_DRAG_COEFF_FACTOR = \
+ LIFT_DEPENDENT_DRAG_COEFF_FACTOR = (
'aircraft:design:lift_dependent_drag_coeff_factor'
+ )
LIFT_DEPENDENT_DRAG_POLAR = 'aircraft:design:lift_dependent_drag_polar'
LIFT_INDEPENDENT_DRAG_POLAR = 'aircraft:design:lift_independent_drag_polar'
@@ -180,13 +188,11 @@ class Design:
STRUCTURAL_MASS_INCREMENT = 'aircraft:design:structural_mass_increment'
STRUCTURE_MASS = 'aircraft:design:structure_mass'
- SUBSONIC_DRAG_COEFF_FACTOR = \
- 'aircraft:design:subsonic_drag_coeff_factor'
+ SUBSONIC_DRAG_COEFF_FACTOR = 'aircraft:design:subsonic_drag_coeff_factor'
SUPERCRITICAL_DIVERGENCE_SHIFT = 'aircraft:design:supercritical_drag_shift'
- SUPERSONIC_DRAG_COEFF_FACTOR = \
- 'aircraft:design:supersonic_drag_coeff_factor'
+ SUPERSONIC_DRAG_COEFF_FACTOR = 'aircraft:design:supersonic_drag_coeff_factor'
SYSTEMS_EQUIP_MASS = 'aircraft:design:systems_equip_mass'
SYSTEMS_EQUIP_MASS_BASE = 'aircraft:design:systems_equip_mass_base'
@@ -197,8 +203,7 @@ class Design:
USE_ALT_MASS = 'aircraft:design:use_alt_mass'
WETTED_AREAS = 'aircraft:design:wetted_areas'
ZERO_FUEL_MASS = 'aircraft:design:zero_fuel_mass'
- ZERO_LIFT_DRAG_COEFF_FACTOR = \
- 'aircraft:design:zero_lift_drag_coeff_factor'
+ ZERO_LIFT_DRAG_COEFF_FACTOR = 'aircraft:design:zero_lift_drag_coeff_factor'
class Electrical:
HAS_HYBRID_SYSTEM = 'aircraft:electrical:has_hybrid_system'
@@ -209,18 +214,21 @@ class Electrical:
class Engine:
ADDITIONAL_MASS = 'aircraft:engine:additional_mass'
ADDITIONAL_MASS_FRACTION = 'aircraft:engine:additional_mass_fraction'
- COMPUTE_PROPELLER_INSTALLATION_LOSS = \
- 'aircraft:engine:compute_propeller_installation_loss'
CONSTANT_FUEL_CONSUMPTION = 'aircraft:engine:constant_fuel_consumption'
CONTROLS_MASS = 'aircraft:engine:controls_mass'
DATA_FILE = 'aircraft:engine:data_file'
+ FIXED_RPM = 'aircraft:engine:fixed_rpm'
FLIGHT_IDLE_MAX_FRACTION = 'aircraft:engine:flight_idle_max_fraction'
FLIGHT_IDLE_MIN_FRACTION = 'aircraft:engine:flight_idle_min_fraction'
FLIGHT_IDLE_THRUST_FRACTION = 'aircraft:engine:flight_idle_thrust_fraction'
- FUEL_FLOW_SCALER_CONSTANT_TERM = 'aircraft:engine:fuel_flow_scaler_constant_term'
+ FUEL_FLOW_SCALER_CONSTANT_TERM = (
+ 'aircraft:engine:fuel_flow_scaler_constant_term'
+ )
FUEL_FLOW_SCALER_LINEAR_TERM = 'aircraft:engine:fuel_flow_scaler_linear_term'
GENERATE_FLIGHT_IDLE = 'aircraft:engine:generate_flight_idle'
GEOPOTENTIAL_ALT = 'aircraft:engine:geopotential_alt'
+ GLOBAL_HYBRID_THROTTLE = 'aircraft:engine:global_hybrid_throttle'
+ GLOBAL_THROTTLE = 'aircraft:engine:global_throttle'
HAS_PROPELLERS = 'aircraft:engine:has_propellers'
IGNORE_NEGATIVE_THRUST = 'aircraft:engine:ignore_negative_thrust'
INTERPOLATION_METHOD = 'aircraft:engine:interpolation_method'
@@ -229,18 +237,10 @@ class Engine:
MASS_SPECIFIC = 'aircraft:engine:mass_specific'
NUM_ENGINES = 'aircraft:engine:num_engines'
NUM_FUSELAGE_ENGINES = 'aircraft:engine:num_fuselage_engines'
- NUM_PROPELLER_BLADES = 'aircraft:engine:num_propeller_blades'
NUM_WING_ENGINES = 'aircraft:engine:num_wing_engines'
POD_MASS = 'aircraft:engine:pod_mass'
POD_MASS_SCALER = 'aircraft:engine:pod_mass_scaler'
POSITION_FACTOR = 'aircraft:engine:position_factor'
- PROPELLER_ACTIVITY_FACTOR = 'aircraft:engine:propeller_activity_factor'
- PROPELLER_DATA_FILE = 'aircraft:engine:propeller_data_file'
- PROPELLER_DIAMETER = 'aircraft:engine:propeller_diameter'
- PROPELLER_INTEGRATED_LIFT_COEFFICIENT = \
- 'aircraft:engine:propeller_integrated_lift_coefficient'
- PROPELLER_TIP_MACH_MAX = 'propeller_tip_mach_max'
- PROPELLER_TIP_SPEED_MAX = 'aircraft:engine:propeller_tip_speed_max'
PYLON_FACTOR = 'aircraft:engine:pylon_factor'
REFERENCE_DIAMETER = 'aircraft:engine:reference_diameter'
REFERENCE_MASS = 'aircraft:engine:reference_mass'
@@ -256,20 +256,33 @@ class Engine:
THRUST_REVERSERS_MASS = 'aircraft:engine:thrust_reversers_mass'
THRUST_REVERSERS_MASS_SCALER = 'aircraft:engine:thrust_reversers_mass_scaler'
TYPE = 'aircraft:engine:type'
- USE_PROPELLER_MAP = 'aircraft:engine:use_propeller_map'
WING_LOCATIONS = 'aircraft:engine:wing_locations'
class Gearbox:
- EFFICIENCY = "aircraft:engine:gearbox:efficiency"
- GEAR_RATIO = "aircraft:engine:gearbox:gear_ratio"
- MASS = "aircraft:engine:gearbox:mass"
- SHAFT_POWER_DESIGN = 'aircraft:engine:shaft_power_design'
+ EFFICIENCY = 'aircraft:engine:gearbox:efficiency'
+ GEAR_RATIO = 'aircraft:engine:gearbox:gear_ratio'
+ MASS = 'aircraft:engine:gearbox:mass'
+ SHAFT_POWER_DESIGN = 'aircraft:engine:gearbox:shaft_power_design'
SPECIFIC_TORQUE = "aircraft:engine:gearbox:specific_torque"
class Motor:
MASS = 'aircraft:engine:motor:mass'
TORQUE_MAX = 'aircraft:engine:motor:torque_max'
+ class Propeller:
+ ACTIVITY_FACTOR = 'aircraft:engine:propeller:activity_factor'
+ COMPUTE_INSTALLATION_LOSS = (
+ 'aircraft:engine:propeller:compute_installation_loss'
+ )
+ DATA_FILE = 'aircraft:engine:propeller:data_file'
+ DIAMETER = 'aircraft:engine:propeller:diameter'
+ INTEGRATED_LIFT_COEFFICIENT = (
+ 'aircraft:engine:propeller:integrated_lift_coefficient'
+ )
+ NUM_BLADES = 'aircraft:engine:propeller:num_blades'
+ TIP_MACH_MAX = 'aircraft:engine:propeller:tip_mach_max'
+ TIP_SPEED_MAX = 'aircraft:engine:propeller:tip_speed_max'
+
class Fins:
AREA = 'aircraft:fins:area'
MASS = 'aircraft:fins:mass'
@@ -335,8 +348,7 @@ class Fuselage:
NUM_FUSELAGES = 'aircraft:fuselage:num_fuselages'
NUM_SEATS_ABREAST = 'aircraft:fuselage:num_seats_abreast'
- PASSENGER_COMPARTMENT_LENGTH = \
- 'aircraft:fuselage:passenger_compartment_length'
+ PASSENGER_COMPARTMENT_LENGTH = 'aircraft:fuselage:passenger_compartment_length'
PILOT_COMPARTMENT_LENGTH = 'aircraft:fuselage:pilot_compartment_length'
PLANFORM_AREA = 'aircraft:fuselage:planform_area'
@@ -352,8 +364,7 @@ class HorizontalTail:
ASPECT_RATIO = 'aircraft:horizontal_tail:aspect_ratio'
AVERAGE_CHORD = 'aircraft:horizontal_tail:average_chord'
- CHARACTERISTIC_LENGTH = \
- 'aircraft:horizontal_tail:characteristic_length'
+ CHARACTERISTIC_LENGTH = 'aircraft:horizontal_tail:characteristic_length'
FINENESS = 'aircraft:horizontal_tail:fineness'
FORM_FACTOR = 'aircraft:horizontal_tail:form_factor'
@@ -370,16 +381,16 @@ class HorizontalTail:
TAPER_RATIO = 'aircraft:horizontal_tail:taper_ratio'
THICKNESS_TO_CHORD = 'aircraft:horizontal_tail:thickness_to_chord'
- VERTICAL_TAIL_FRACTION = \
- 'aircraft:horizontal_tail:vertical_tail_fraction'
+ VERTICAL_TAIL_FRACTION = 'aircraft:horizontal_tail:vertical_tail_fraction'
VOLUME_COEFFICIENT = 'aircraft:horizontal_tail:volume_coefficient'
WETTED_AREA = 'aircraft:horizontal_tail:wetted_area'
WETTED_AREA_SCALER = 'aircraft:horizontal_tail:wetted_area_scaler'
class Hydraulics:
- FLIGHT_CONTROL_MASS_COEFFICIENT = \
+ FLIGHT_CONTROL_MASS_COEFFICIENT = (
'aircraft:hydraulics:flight_control_mass_coefficient'
+ )
GEAR_MASS_COEFFICIENT = 'aircraft:hydraulics:gear_mass_coefficient'
MASS = 'aircraft:hydraulics:mass'
MASS_SCALER = 'aircraft:hydraulics:mass_scaler'
@@ -397,15 +408,13 @@ class LandingGear:
MAIN_GEAR_LOCATION = 'aircraft:landing_gear:main_gear_location'
MAIN_GEAR_MASS = 'aircraft:landing_gear:main_gear_mass'
MAIN_GEAR_MASS_COEFFICIENT = 'aircraft:landing_gear:main_gear_mass_coefficient'
- MAIN_GEAR_MASS_SCALER = \
- 'aircraft:landing_gear:main_gear_mass_scaler'
+ MAIN_GEAR_MASS_SCALER = 'aircraft:landing_gear:main_gear_mass_scaler'
MAIN_GEAR_OLEO_LENGTH = 'aircraft:landing_gear:main_gear_oleo_length'
MASS_COEFFICIENT = 'aircraft:landing_gear:mass_coefficient'
NOSE_GEAR_MASS = 'aircraft:landing_gear:nose_gear_mass'
- NOSE_GEAR_MASS_SCALER = \
- 'aircraft:landing_gear:nose_gear_mass_scaler'
+ NOSE_GEAR_MASS_SCALER = 'aircraft:landing_gear:nose_gear_mass_scaler'
NOSE_GEAR_OLEO_LENGTH = 'aircraft:landing_gear:nose_gear_oleo_length'
TAIL_HOOK_MASS_SCALER = 'aircraft:landing_gear:tail_hook_mass_scaler'
@@ -435,8 +444,7 @@ class Paint:
MASS_PER_UNIT_AREA = 'aircraft:paint:mass_per_unit_area'
class Propulsion:
- ENGINE_OIL_MASS_SCALER = \
- 'aircraft:propulsion:engine_oil_mass_scaler'
+ ENGINE_OIL_MASS_SCALER = 'aircraft:propulsion:engine_oil_mass_scaler'
MASS = 'aircraft:propulsion:mass'
MISC_MASS_SCALER = 'aircraft:propulsion:misc_mass_scaler'
@@ -452,15 +460,15 @@ class Propulsion:
TOTAL_SCALED_SLS_THRUST = 'aircraft:propulsion:total_scaled_sls_thrust'
TOTAL_STARTER_MASS = 'aircraft:propulsion:total_starter_mass'
- TOTAL_THRUST_REVERSERS_MASS = \
- 'aircraft:propulsion:total_thrust_reversers_mass'
+ TOTAL_THRUST_REVERSERS_MASS = 'aircraft:propulsion:total_thrust_reversers_mass'
class Strut:
AREA = 'aircraft:strut:area'
AREA_RATIO = 'aircraft:strut:area_ratio'
ATTACHMENT_LOCATION = 'aircraft:strut:attachment_location'
- ATTACHMENT_LOCATION_DIMENSIONLESS = \
+ ATTACHMENT_LOCATION_DIMENSIONLESS = (
'aircraft:strut:attachment_location_dimensionless'
+ )
CHORD = 'aircraft:strut:chord'
DIMENSIONAL_LOCATION_SPECIFIED = 'aircraft:strut:dimensional_location_specified'
FUSELAGE_INTERFERENCE_FACTOR = 'aircraft:strut:fuselage_interference_factor'
@@ -497,19 +505,18 @@ class VerticalTail:
WETTED_AREA_SCALER = 'aircraft:vertical_tail:wetted_area_scaler'
class Wing:
- AEROELASTIC_TAILORING_FACTOR = \
- 'aircraft:wing:aeroelastic_tailoring_factor'
+ AEROELASTIC_TAILORING_FACTOR = 'aircraft:wing:aeroelastic_tailoring_factor'
AIRFOIL_TECHNOLOGY = 'aircraft:wing:airfoil_technology'
AREA = 'aircraft:wing:area'
ASPECT_RATIO = 'aircraft:wing:aspect_ratio'
ASPECT_RATIO_REF = 'aircraft:wing:aspect_ratio_reference'
AVERAGE_CHORD = 'aircraft:wing:average_chord'
- BENDING_FACTOR = 'aircraft:wing:bending_factor'
- BENDING_MASS = 'aircraft:wing:bending_mass'
+ BENDING_MATERIAL_FACTOR = 'aircraft:wing:bending_material_factor'
+ BENDING_MATERIAL_MASS = 'aircraft:wing:bending_material_mass'
# Not defined in metadata!
# BENDING_MASS_NO_INERTIA = 'aircraft:wing:bending_mass_no_inertia'
- BENDING_MASS_SCALER = 'aircraft:wing:bending_mass_scaler'
+ BENDING_MATERIAL_MASS_SCALER = 'aircraft:wing:bending_material_mass_scaler'
BWB_AFTBODY_MASS = 'aircraft:wing:bwb_aft_body_mass'
BWB_AFTBODY_MASS_SCALER = 'aircraft:wing:bwb_aft_body_mass_scaler'
CENTER_CHORD = 'aircraft:wing:center_chord'
@@ -531,8 +538,9 @@ class Wing:
FLAP_LIFT_INCREMENT_OPTIMUM = 'aircraft:wing:flap_lift_increment_optimum'
FLAP_SPAN_RATIO = 'aircraft:wing:flap_span_ratio'
FLAP_TYPE = 'aircraft:wing:flap_type'
- FOLD_DIMENSIONAL_LOCATION_SPECIFIED = \
+ FOLD_DIMENSIONAL_LOCATION_SPECIFIED = (
'aircraft:wing:fold_dimensional_location_specified'
+ )
FOLD_MASS = 'aircraft:wing:fold_mass'
FOLD_MASS_COEFFICIENT = 'aircraft:wing:fold_mass_coefficient'
FOLDED_SPAN = 'aircraft:wing:folded_span'
@@ -576,8 +584,7 @@ class Wing:
ROOT_CHORD = 'aircraft:wing:root_chord'
SHEAR_CONTROL_MASS = 'aircraft:wing:shear_control_mass'
- SHEAR_CONTROL_MASS_SCALER = \
- 'aircraft:wing:shear_control_mass_scaler'
+ SHEAR_CONTROL_MASS_SCALER = 'aircraft:wing:shear_control_mass_scaler'
SLAT_CHORD_RATIO = 'aircraft:wing:slat_chord_ratio'
SLAT_LIFT_INCREMENT_OPTIMUM = 'aircraft:wing:slat_lift_increment_optimum'
@@ -589,8 +596,7 @@ class Wing:
SURFACE_CONTROL_MASS = 'aircraft:wing:surface_ctrl_mass'
SURFACE_CONTROL_MASS_COEFFICIENT = 'aircraft:wing:surface_ctrl_mass_coefficient'
- SURFACE_CONTROL_MASS_SCALER = \
- 'aircraft:wing:surface_ctrl_mass_scaler'
+ SURFACE_CONTROL_MASS_SCALER = 'aircraft:wing:surface_ctrl_mass_scaler'
SWEEP = 'aircraft:wing:sweep'
TAPER_RATIO = 'aircraft:wing:taper_ratio'
@@ -608,76 +614,89 @@ class Wing:
class Dynamic:
- """Dynamic mission data hierarchy"""
+ """All time-dependent variables used during mission analysis"""
+
+ class Atmosphere:
+ """Atmospheric and freestream conditions"""
+
+ DENSITY = 'density'
+ DYNAMIC_PRESSURE = 'dynamic_pressure'
+ KINEMATIC_VISCOSITY = 'kinematic_viscosity'
+ MACH = 'mach'
+ MACH_RATE = 'mach_rate'
+ SPEED_OF_SOUND = 'speed_of_sound'
+ STATIC_PRESSURE = 'static_pressure'
+ TEMPERATURE = 'temperature'
class Mission:
- # all time-dependent variables used during mission analysis
+ """
+ Kinematic description of vehicle states in a ground-fixed axis.
+ These values are typically used by the Equations of Motion to determine
+ vehicle states at other timesteps.
+ """
+
+ # TODO Vehicle summary forces, torques, etc. in X,Y,Z axes should also go here
ALTITUDE = 'altitude'
ALTITUDE_RATE = 'altitude_rate'
ALTITUDE_RATE_MAX = 'altitude_rate_max'
- BATTERY_STATE_OF_CHARGE = 'battery_state_of_charge'
- CUMULATIVE_ELECTRIC_ENERGY_USED = 'cumulative_electric_energy_used'
- DENSITY = 'density'
+ # TODO Angle of Attack
DISTANCE = 'distance'
DISTANCE_RATE = 'distance_rate'
- DRAG = 'drag'
- DYNAMIC_PRESSURE = 'dynamic_pressure'
- ELECTRIC_POWER_IN = 'electric_power_in'
- ELECTRIC_POWER_IN_TOTAL = 'electric_power_in_total'
- # EXIT_AREA = 'exit_area'
FLIGHT_PATH_ANGLE = 'flight_path_angle'
FLIGHT_PATH_ANGLE_RATE = 'flight_path_angle_rate'
- FUEL_FLOW_RATE = 'fuel_flow_rate'
- FUEL_FLOW_RATE_NEGATIVE = 'fuel_flow_rate_negative'
- FUEL_FLOW_RATE_NEGATIVE_TOTAL = 'fuel_flow_rate_negative_total'
- FUEL_FLOW_RATE_TOTAL = 'fuel_flow_rate_total'
- HYBRID_THROTTLE = 'hybrid_throttle'
- KINEMATIC_VISCOSITY = 'kinematic_viscosity'
- LIFT = 'lift'
- MACH = 'mach'
- MACH_RATE = 'mach_rate'
- MASS = 'mass'
- MASS_RATE = 'mass_rate'
- NOX_RATE = 'nox_rate'
- NOX_RATE_TOTAL = 'nox_rate_total'
- # PERCENT_ROTOR_RPM_CORRECTED = 'percent_rotor_rpm_corrected'
- PROPELLER_TIP_SPEED = 'propeller_tip_speed'
- RPM = 'rotations_per_minute'
- RPM_GEARBOX = 'rotations_per_minute_gearbox'
- SHAFT_POWER = 'shaft_power'
- SHAFT_POWER_GEARBOX = 'shaft_power_gearbox'
- SHAFT_POWER_MAX = 'shaft_power_max'
- SHAFT_POWER_MAX_GEARBOX = 'shaft_power_max_gearbox'
SPECIFIC_ENERGY = 'specific_energy'
SPECIFIC_ENERGY_RATE = 'specific_energy_rate'
SPECIFIC_ENERGY_RATE_EXCESS = 'specific_energy_rate_excess'
- SPEED_OF_SOUND = 'speed_of_sound'
- STATIC_PRESSURE = 'static_pressure'
- TEMPERATURE = 'temperature'
- TEMPERATURE_T4 = 't4'
- THROTTLE = 'throttle'
- THRUST = 'thrust_net'
- THRUST_MAX = 'thrust_net_max'
- THRUST_MAX_TOTAL = 'thrust_net_max_total'
- THRUST_TOTAL = 'thrust_net_total'
- TORQUE = 'torque'
- TORQUE_GEARBOX = 'torque_gearbox'
- TORQUE_MAX = 'torque_max'
VELOCITY = 'velocity'
VELOCITY_RATE = 'velocity_rate'
+ class Vehicle:
+ """Vehicle properties and states in a vehicle-fixed reference frame."""
+
+ BATTERY_STATE_OF_CHARGE = 'battery_state_of_charge'
+ CUMULATIVE_ELECTRIC_ENERGY_USED = 'cumulative_electric_energy_used'
+ DRAG = 'drag'
+ LIFT = 'lift'
+ MASS = 'mass'
+ MASS_RATE = 'mass_rate'
+
+ class Propulsion:
+ # variables specific to the propulsion subsystem
+ ELECTRIC_POWER_IN = 'electric_power_in'
+ ELECTRIC_POWER_IN_TOTAL = 'electric_power_in_total'
+ # EXIT_AREA = 'exit_area'
+ FUEL_FLOW_RATE = 'fuel_flow_rate'
+ FUEL_FLOW_RATE_NEGATIVE = 'fuel_flow_rate_negative'
+ FUEL_FLOW_RATE_NEGATIVE_TOTAL = 'fuel_flow_rate_negative_total'
+ FUEL_FLOW_RATE_TOTAL = 'fuel_flow_rate_total'
+ HYBRID_THROTTLE = 'hybrid_throttle'
+ NOX_RATE = 'nox_rate'
+ NOX_RATE_TOTAL = 'nox_rate_total'
+ PROPELLER_TIP_SPEED = 'propeller_tip_speed'
+ RPM = 'rotations_per_minute'
+ SHAFT_POWER = 'shaft_power'
+ SHAFT_POWER_MAX = 'shaft_power_max'
+ TEMPERATURE_T4 = 't4'
+ THROTTLE = 'throttle'
+ THRUST = 'thrust_net'
+ THRUST_MAX = 'thrust_net_max'
+ THRUST_MAX_TOTAL = 'thrust_net_max_total'
+ THRUST_TOTAL = 'thrust_net_total'
+ TORQUE = 'torque'
+ TORQUE_MAX = 'torque_max'
+
class Mission:
- """mission data hierarchy"""
+ """Mission data hierarchy"""
class Constraints:
# these can be residuals (for equality constraints),
# upper bounds, or lower bounds
+ GEARBOX_SHAFT_POWER_RESIDUAL = 'mission:constraints:gearbox_shaft_power_residual'
MASS_RESIDUAL = 'mission:constraints:mass_residual'
MAX_MACH = 'mission:constraints:max_mach'
RANGE_RESIDUAL = 'mission:constraints:range_residual'
RANGE_RESIDUAL_RESERVE = 'mission:constraints:range_residual_reserve'
- SHAFT_POWER_RESIDUAL = 'shaft_power_residual'
class Design:
# These values MAY change in design mission, but in off-design
@@ -703,8 +722,9 @@ class Landing:
BRAKING_DELAY = 'mission:landing:braking_delay'
BRAKING_FRICTION_COEFFICIENT = 'mission:landing:braking_friction_coefficient'
- DRAG_COEFFICIENT_FLAP_INCREMENT = \
+ DRAG_COEFFICIENT_FLAP_INCREMENT = (
'mission:landing:drag_coefficient_flap_increment'
+ )
DRAG_COEFFICIENT_MIN = 'mission:landing:drag_coefficient_min'
FIELD_LENGTH = 'mission:landing:field_length'
@@ -715,8 +735,9 @@ class Landing:
INITIAL_MACH = 'mission:landing:initial_mach'
INITIAL_VELOCITY = 'mission:landing:initial_velocity'
- LIFT_COEFFICIENT_FLAP_INCREMENT = \
+ LIFT_COEFFICIENT_FLAP_INCREMENT = (
'mission:landing:lift_coefficient_flap_increment'
+ )
LIFT_COEFFICIENT_MAX = 'mission:landing:lift_coefficient_max'
MAXIMUM_FLARE_LOAD_FACTOR = 'mission:landing:maximum_flare_load_factor'
@@ -759,8 +780,9 @@ class Takeoff:
BRAKING_FRICTION_COEFFICIENT = 'mission:takeoff:braking_friction_coefficient'
DECISION_SPEED_INCREMENT = 'mission:takeoff:decision_speed_increment'
- DRAG_COEFFICIENT_FLAP_INCREMENT = \
+ DRAG_COEFFICIENT_FLAP_INCREMENT = (
'mission:takeoff:drag_coefficient_flap_increment'
+ )
DRAG_COEFFICIENT_MIN = 'mission:takeoff:drag_coefficient_min'
FIELD_LENGTH = 'mission:takeoff:field_length'
@@ -771,8 +793,9 @@ class Takeoff:
FUEL_SIMPLE = 'mission:takeoff:fuel_simple'
GROUND_DISTANCE = 'mission:takeoff:ground_distance'
- LIFT_COEFFICIENT_FLAP_INCREMENT = \
+ LIFT_COEFFICIENT_FLAP_INCREMENT = (
'mission:takeoff:lift_coefficient_flap_increment'
+ )
LIFT_COEFFICIENT_MAX = 'mission:takeoff:lift_coefficient_max'
LIFT_OVER_DRAG = 'mission:takeoff:lift_over_drag'
@@ -791,6 +814,7 @@ class Taxi:
class Settings:
"""Setting data hierarchy"""
+
EQUATIONS_OF_MOTION = 'settings:equations_of_motion'
MASS_METHOD = 'settings:mass_method'
PROBLEM_TYPE = 'settings:problem_type'
diff --git a/aviary/visualization/dashboard.py b/aviary/visualization/dashboard.py
index bf68c8362..15c208bed 100644
--- a/aviary/visualization/dashboard.py
+++ b/aviary/visualization/dashboard.py
@@ -5,6 +5,7 @@
import json
import os
import pathlib
+from pathlib import Path
import re
import shutil
import warnings
@@ -12,22 +13,21 @@
import numpy as np
-import bokeh.palettes as bp
-from bokeh.models import Legend, CheckboxGroup, CustomJS
+import pandas as pd
+
+from bokeh.models import Legend, LegendItem, CheckboxGroup, CustomJS, TextInput, ColumnDataSource, CustomJS, Div, Range1d, LinearAxis, PrintfTickFormatter
from bokeh.plotting import figure
-from bokeh.models import ColumnDataSource
+from bokeh.layouts import column
+from bokeh.palettes import Category10, Category20, d3
-import hvplot.pandas # noqa # need this ! Otherwise hvplot using DataFrames does not work
-import pandas as pd
import panel as pn
-from panel.theme import DefaultTheme
import openmdao.api as om
from openmdao.utils.general_utils import env_truthy
from openmdao.utils.units import conversion_to_base_units
try:
from openmdao.utils.gui_testing_utils import get_free_port
-except:
+except BaseException:
# If get_free_port is unavailable, the default port will be used
def get_free_port():
return 5000
@@ -43,8 +43,8 @@ def get_free_port():
from openmdao.utils.array_utils import convert_ndarray_to_support_nans_in_json
except ImportError:
from openmdao.visualization.n2_viewer.n2_viewer import (
- _convert_ndarray_to_support_nans_in_json as convert_ndarray_to_support_nans_in_json,
- )
+ _convert_ndarray_to_support_nans_in_json
+ as convert_ndarray_to_support_nans_in_json,)
import aviary.api as av
@@ -135,17 +135,19 @@ def _dashboard_setup_parser(parser):
help="show debugging output",
)
- parser.add_argument("--save",
- nargs='?',
- const=True,
- default=False,
- help="Name of zip file in which dashboard files are saved. If no argument given, use the script name to name the zip file",
- )
+ parser.add_argument(
+ "--save",
+ nargs='?',
+ const=True,
+ default=False,
+ help="Name of zip file in which dashboard files are saved. If no argument given, use the script name to name the zip file",
+ )
- parser.add_argument("--force",
- action='store_true',
- help="When displaying data from a shared zip file, if the directory in the reports directory exists, overrite if this is True",
- )
+ parser.add_argument(
+ "--force",
+ action='store_true',
+ help="When displaying data from a shared zip file, if the directory in the reports directory exists, overrite if this is True",
+ )
def _dashboard_cmd(options, user_args):
@@ -175,15 +177,18 @@ def _dashboard_cmd(options, user_args):
# if yes, then unzip into reports directory and run dashboard on it
if zipfile.is_zipfile(options.script_name):
report_dir_name = Path(options.script_name).stem
- report_dir_path = Path("reports") / report_dir_name
+ report_dir_path = Path(f"{report_dir_name}_out")
# need to check to see if that directory already exists
if not options.force and report_dir_path.is_dir():
raise RuntimeError(
- f"The reports directory {report_dir_name} already exists. If you wish to overrite the existing directory, use the --force option")
- if report_dir_path.is_dir(): # need to delete it. The unpacking will just add to what is there, not do a clean unpack
+ f"The reports directory {report_dir_path} already exists. If you wish "
+ "to overrite the existing directory, use the --force option"
+ )
+ if report_dir_path.is_dir(
+ ): # need to delete it. The unpacking will just add to what is there, not do a clean unpack
shutil.rmtree(report_dir_path)
- shutil.unpack_archive(options.script_name, f"reports/{report_dir_name}")
+ shutil.unpack_archive(options.script_name, report_dir_path)
dashboard(
report_dir_name,
options.problem_recorder,
@@ -200,7 +205,7 @@ def _dashboard_cmd(options, user_args):
else:
save_filename_stem = Path(options.save).stem
print(f"Saving to {save_filename_stem}.zip")
- shutil.make_archive(save_filename_stem, "zip", f"reports/{options.script_name}")
+ shutil.make_archive(save_filename_stem, "zip", f"{options.script_name}_out")
return
dashboard(
@@ -212,7 +217,7 @@ def _dashboard_cmd(options, user_args):
)
-def create_table_pane_from_json(json_filepath):
+def create_table_pane_from_json(json_filepath, documentation):
"""
Create a Tabulator Pane with Name and Value columns using tabular data
from a JSON file.
@@ -242,10 +247,20 @@ def create_table_pane_from_json(json_filepath):
'Name': '',
'Value': '',
})
+ table_pane_with_doc = pn.Column(
+ pn.pane.HTML(f"{documentation}
",
+ styles={'text-align': documentation_text_align}),
+ table_pane
+ )
except Exception as err:
- warnings.warn(f"Unable to generate table due to: {err}.")
- table_pane = None
- return table_pane
+ table_pane_with_doc = pn.Column(
+ pn.pane.HTML(f"{documentation}
",
+ styles={'text-align': documentation_text_align}),
+ pn.pane.Markdown(
+ f"# Table not shown because data source JSON file, '{json_filepath}', not found.")
+ )
+
+ return table_pane_with_doc
# functions for creating Panel Panes given different kinds of
@@ -466,7 +481,7 @@ def create_aviary_variables_table_data_nested(script_name, recorder_file):
)
aviary_variables_file_path = (
- f"reports/{script_name}/aviary_vars/{aviary_variables_json_file_name}"
+ f"{script_name}_out/reports/aviary_vars/{aviary_variables_json_file_name}"
)
with open(aviary_variables_file_path, "w") as fp:
json.dump(table_data_nested, fp)
@@ -474,7 +489,7 @@ def create_aviary_variables_table_data_nested(script_name, recorder_file):
return table_data_nested
-def convert_case_recorder_file_to_df(recorder_file_name):
+def convert_driver_case_recorder_file_to_df(recorder_file_name):
"""
Convert a case recorder file into a Pandas data frame.
@@ -560,7 +575,7 @@ def create_aircraft_3d_file(recorder_file, reports_dir, outfilepath):
The path to the location where the file should be created.
"""
# Get the location of the HTML template file for this HTML file
- aviary_dir = pathlib.Path(importlib.util.find_spec("aviary").origin).parent
+ aviary_dir = Path(importlib.util.find_spec("aviary").origin).parent
aircraft_3d_template_filepath = aviary_dir.joinpath(
"visualization/assets/aircraft_3d_file_template.html"
)
@@ -569,7 +584,7 @@ def create_aircraft_3d_file(recorder_file, reports_dir, outfilepath):
# next to the HTML file
shutil.copy(
aviary_dir.joinpath("visualization/assets/aviary_airlines.png"),
- f"{reports_dir}/aviary_airlines.png",
+ Path(reports_dir) / "aviary_airlines.png",
)
aircraft_3d_model = Aircraft3DModel(recorder_file)
@@ -579,7 +594,8 @@ def create_aircraft_3d_file(recorder_file, reports_dir, outfilepath):
aircraft_3d_model.write_file(aircraft_3d_template_filepath, outfilepath)
-def _get_interactive_plot_sources(data_by_varname_and_phase, x_varname, y_varname, phase):
+def _get_interactive_plot_sources(
+ data_by_varname_and_phase, x_varname, y_varname, phase):
x = data_by_varname_and_phase[x_varname][phase]
y = data_by_varname_and_phase[y_varname][phase]
if len(x) > 0 and len(x) == len(y):
@@ -588,8 +604,210 @@ def _get_interactive_plot_sources(data_by_varname_and_phase, x_varname, y_varnam
return [], []
+def create_optimization_history_plot(case_recorder, df):
+
+ # Create a ColumnDataSource
+ source = ColumnDataSource(df)
+
+ # Create a Bokeh figure
+ plotting_figure = figure(title='Optimization History',
+ width=1000,
+ height=600,
+ )
+ plotting_figure.title.align = 'center'
+ plotting_figure.yaxis.visible = False
+ plotting_figure.xaxis.axis_label = 'Iterations'
+ plotting_figure.yaxis.formatter = PrintfTickFormatter(format="%5.2e")
+ plotting_figure.title.text_font_size = "25px"
+
+ # Choose a palette
+ palette = Category20[20]
+
+ # Plot each time series and keep references to the renderers
+ renderers = {}
+ variable_names = list(df.columns)[1:]
+ for i, variable_name in enumerate(variable_names):
+ color = palette[i % 20]
+
+ renderers[variable_name] = plotting_figure.line(
+ x='iter_count',
+ y=variable_name,
+ source=source,
+ y_range_name=f"extra_y_{variable_name}",
+ color=color,
+ line_width=2,
+ visible=False, # hide them all initially. clicking checkboxes makes them visible
+ )
+
+ # create axes both to the right and left of the plot.
+ # hide them initially
+ # as the user selects/deselects variables to be plotted, they get turned on/off
+ extra_y_axis = LinearAxis(y_range_name=f"extra_y_{variable_name}",
+ axis_label=f"{variable_name}",
+ axis_label_text_color=color)
+ plotting_figure.add_layout(extra_y_axis, 'right')
+ plotting_figure.right[i].visible = False
+
+ extra_y_axis = LinearAxis(y_range_name=f"extra_y_{variable_name}",
+ axis_label=f"{variable_name}",
+ axis_label_text_color=color)
+ plotting_figure.add_layout(extra_y_axis, 'left')
+ plotting_figure.left[i + 1].visible = False
+
+ # set the range
+ y_min = df[variable_name].min()
+ y_max = df[variable_name].max()
+ # if the range is zero, the axis will not be displayed. Plus need some range to make it
+ # look good. Some other code seems to do +- 1 for the range in this case.
+ if y_min == y_max:
+ y_min = y_min - 1
+ y_max = y_max + 1
+ plotting_figure.extra_y_ranges[f"extra_y_{variable_name}"] = Range1d(
+ y_min, y_max)
+
+ # Make a Legend with no items in it. those will be added in JavaScript
+ # as users select variables to be plotted
+ legend = Legend(items=[], location=(-50, -5), border_line_width=0)
+
+ # make the legend items in Python. Pass them to JavaScript where they can
+ # be added to the Legend
+ legend_items = []
+ for variable_name in variable_names:
+ units = case_recorder.problem_metadata['variables'][variable_name]['units']
+ legend_item = LegendItem(label=f"{variable_name} ({units})", renderers=[
+ renderers[variable_name]])
+ legend_items.append(legend_item)
+
+ plotting_figure.add_layout(legend, 'below')
+
+ # make the list of variables with checkboxes
+ data_source = ColumnDataSource(
+ data=dict(options=variable_names, checked=[False] * len(variable_names)))
+ # Create a Div to act as a scrollable container
+ variable_scroll_box = Div(
+ styles={
+ 'overflow-y': 'scroll',
+ 'height': '500px',
+ 'border': '1px solid #ddd',
+ 'padding': '10px'
+ }
+ )
+
+ # make the text box used to filter variables
+ filter_variables_text_box = TextInput(placeholder='Variable name filter')
+
+ # CustomJS callback for checkbox changes
+ variable_checkbox_callback = CustomJS(args=dict(data_source=data_source,
+ plotting_figure=plotting_figure,
+ renderers=renderers,
+ legend=legend,
+ legend_items=legend_items),
+ code="""
+ // Three things happen in this code.
+ // 1. turn on/off the plot lines
+ // 2. show the legend items for the items being plotted
+ // 3. show the y axes for each of the lines being plotted
+ // The incoming Legend is empty. The items are passed in separately
+
+ // 1. Plots
+ // turn off or on the line plot for the clicked on variable
+ const checkedIndex = cb_obj.index;
+ const isChecked = cb_obj.checked;
+ data_source.data['checked'][checkedIndex] = isChecked;
+ renderers[data_source.data['options'][checkedIndex]].visible = isChecked;
+
+ // 2. Legend
+ // empty the Legend items and then add in the ones for the variables that are checked
+ legend.items = [];
+ for (let i =0; i < legend_items.length; i++){
+ if ( data_source.data['checked'][i] ) {
+ legend.items.push(legend_items[i]);
+ }
+ }
+
+ // 3. Y axes
+ // first hide all of them
+ for (let i =0; i < legend_items.length; i++){
+ var extra_y_axis = plotting_figure.left[i + 1];
+ extra_y_axis.visible = false ;
+
+ var extra_y_axis = plotting_figure.right[i];
+ extra_y_axis.visible = false ;
+ }
+ // alternate between making visible the axes on the left and the right to make it more even.
+ // this variable keeps track of which side to add the axes to.
+ let put_on_left_side = true;
+ for (let i =0; i < legend_items.length; i++){
+ if (data_source.data['checked'][i]){
+ if (put_on_left_side){
+ plotting_figure.left[i + 1].visible = true;
+ } else {
+ plotting_figure.right[i].visible = true;
+ }
+ put_on_left_side = ! put_on_left_side ;
+ }
+ }
+ data_source.change.emit();
+ """)
+
+ # CustomJS callback for the variable filtering
+ filter_variables_callback = CustomJS(
+ args=dict(
+ data_source=data_source,
+ variable_scroll_box=variable_scroll_box,
+ variable_checkbox_callback=variable_checkbox_callback),
+ code="""
+
+ const filter_text = cb_obj.value.toLowerCase();
+ const all_options = data_source.data['options'];
+ const checked_states = data_source.data['checked'];
+
+ // Filter options
+ const filtered_options = all_options.filter(option =>
+ option.toLowerCase().includes(filter_text)
+ );
+
+ // Update the scroll box content
+ let checkboxes_html = '';
+ filtered_options.forEach((label) => {
+ const index = all_options.indexOf(label);
+ checkboxes_html += `
+
+
+ ${label}
+
+ `;
+ });
+ variable_scroll_box.text = checkboxes_html;
+ """)
+
+ filter_variables_text_box.js_on_change('value', filter_variables_callback)
+
+ # Initial population of the scroll box
+ initial_html = ''.join(
+ f"""
+
+
+ {variable_name}
+
+ """
+ for i, variable_name in enumerate(variable_names)
+ )
+ variable_scroll_box.text = initial_html
+
+ # Arrange the layout using Panel
+ layout = pn.Row(pn.Column(filter_variables_text_box,
+ variable_scroll_box), plotting_figure)
+
+ return layout
+
# The main script that generates all the tabs in the dashboard
-def dashboard(script_name, problem_recorder, driver_recorder, port, run_in_background=False):
+
+
+def dashboard(script_name, problem_recorder, driver_recorder,
+ port, run_in_background=False):
"""
Generate the dashboard app display.
@@ -604,27 +822,29 @@ def dashboard(script_name, problem_recorder, driver_recorder, port, run_in_backg
port : int
HTTP port used for the dashboard webapp. If 0, use any free port
"""
- if "reports/" not in script_name:
- reports_dir = f"reports/{script_name}"
- else:
- reports_dir = script_name
+ reports_dir = f"{script_name}_out/reports/"
+ out_dir = f"{script_name}_out/"
- if not pathlib.Path(reports_dir).is_dir():
+ if not Path(reports_dir).is_dir():
raise ValueError(
- f"The script name, '{script_name}', does not have a reports folder associated with it. "
- f"The directory '{reports_dir}' does not exist."
+ f"The script name, '{script_name}', does not have a reports folder "
+ f"associated with it. The directory '{reports_dir}' does not exist."
)
- if not os.path.isfile(problem_recorder):
+ problem_recorder_path = Path(out_dir) / problem_recorder
+ driver_recorder_path = Path(out_dir) / driver_recorder
+
+ if not os.path.isfile(problem_recorder_path):
issue_warning(
- f"Given Problem case recorder file {problem_recorder} does not exist.")
+ f"Given Problem case recorder file {problem_recorder_path} does not exist.")
# TODO - use lists and functions to do this with a lot less code
####### Model Tab #######
model_tabs_list = []
# Debug Input List
- input_list_pane = create_report_frame("text", "input_list.txt", '''
+ input_list_pane = create_report_frame(
+ "text", Path(reports_dir) / "input_list.txt", '''
A plain text display of the model inputs. Recommended for beginners. Only created if Settings.VERBOSITY is set to at least 2 in the input deck.
The variables are listed in a tree structure. There are three columns. The left column is a list of variable names,
the middle column is the value, and the right column is the
@@ -635,7 +855,8 @@ def dashboard(script_name, problem_recorder, driver_recorder, port, run_in_backg
model_tabs_list.append(("Debug Input List", input_list_pane))
# Debug Output List
- output_list_pane = create_report_frame("text", "output_list.txt", '''
+ output_list_pane = create_report_frame(
+ "text", Path(reports_dir) / "output_list.txt", '''
A plain text display of the model outputs. Recommended for beginners. Only created if Settings.VERBOSITY is set to at least 2 in the input deck.
The variables are listed in a tree structure. There are three columns. The left column is a list of variable names,
the middle column is the value, and the right column is the
@@ -647,11 +868,13 @@ def dashboard(script_name, problem_recorder, driver_recorder, port, run_in_backg
# Inputs
inputs_pane = create_report_frame(
- "html", f"{reports_dir}/inputs.html", "Detailed report on the model inputs.")
+ "html",
+ Path(reports_dir) / "inputs.html",
+ "Detailed report on the model inputs.")
model_tabs_list.append(("Inputs", inputs_pane))
# N2
- n2_pane = create_report_frame("html", f"{reports_dir}/n2.html", '''
+ n2_pane = create_report_frame("html", Path(reports_dir) / "n2.html", '''
The N2 diagram, sometimes referred to as an eXtended Design Structure Matrix (XDSM), is a
powerful tool for understanding your model in OpenMDAO. It is an N-squared diagram in the
shape of a matrix representing functional or physical interfaces between system elements.
@@ -661,7 +884,7 @@ def dashboard(script_name, problem_recorder, driver_recorder, port, run_in_backg
# Trajectory Linkage
traj_linkage_report_pane = create_report_frame(
- "html", f"{reports_dir}/traj_linkage_report.html", '''
+ "html", Path(reports_dir) / "traj_linkage_report.html", '''
This is a Dymos linkage report in a customized N2 diagram. It provides a report detailing how phases
are linked together via constraint or connection. The diagram clearly shows how mission phases are linked.
It can be used to identify errant linkages between fixed quantities.
@@ -669,12 +892,9 @@ def dashboard(script_name, problem_recorder, driver_recorder, port, run_in_backg
)
model_tabs_list.append(("Trajectory Linkage", traj_linkage_report_pane))
- ####### Optimization Tab #######
- optimization_tabs_list = []
-
# Driver scaling
driver_scaling_report_pane = create_report_frame(
- "html", f"{reports_dir}/driver_scaling_report.html", '''
+ "html", Path(reports_dir) / "driver_scaling_report.html", '''
This report is a summary of driver scaling information. After all design variables, objectives, and constraints
are declared and the problem has been set up, this report presents all the design variables and constraints
in all phases as well as the objectives. It also shows Jacobian information showing responses with respect to
@@ -683,126 +903,93 @@ def dashboard(script_name, problem_recorder, driver_recorder, port, run_in_backg
)
model_tabs_list.append(("Driver Scaling", driver_scaling_report_pane))
- # Desvars, cons, opt interactive plot
+ ####### Optimization Tab #######
+ optimization_tabs_list = []
+
+ # Optimization History Plot
if driver_recorder:
if os.path.isfile(driver_recorder):
- df = convert_case_recorder_file_to_df(f"{driver_recorder}")
- if df is not None:
- variables = pn.widgets.CheckBoxGroup(
- name="Variables",
- options=list(df.columns),
- # just so all of them aren't plotted from the beginning. Skip the iter count
- value=list(df.columns)[1:2],
- )
- ipipeline = df.interactive()
- ihvplot = ipipeline.hvplot(
- y=variables,
- responsive=True,
- min_height=400,
- color=list(bp.Category10[10]),
- yformatter="%.0f",
- title="Model Optimization using OpenMDAO",
- )
- optimization_plot_pane = pn.Column(
- pn.Row(
- pn.Column(
- variables,
- pn.VSpacer(height=30),
- pn.VSpacer(height=30),
- width=300,
- ),
- ihvplot.panel(),
- )
- )
- else:
- optimization_plot_pane = pn.pane.Markdown(
- f"# Recorder file '{driver_recorder}' does not have Driver case recordings."
- )
- else:
- optimization_plot_pane = pn.pane.Markdown(
- f"# Recorder file containing optimization history,'{driver_recorder}', not found.")
-
- optimization_plot_pane_with_doc = pn.Column(
- pn.pane.HTML(f"Plot of design variables, constraints, and objectives.
",
- styles={'text-align': documentation_text_align}),
- optimization_plot_pane
- )
- optimization_tabs_list.append(
- ("History", optimization_plot_pane_with_doc)
- )
+ df = convert_driver_case_recorder_file_to_df(f"{driver_recorder}")
+ cr = om.CaseReader(f"{driver_recorder}")
+ opt_history_pane = create_optimization_history_plot(cr, df)
+ optimization_tabs_list.append(("Optimization History", opt_history_pane))
# IPOPT report
- if os.path.isfile(f"{reports_dir}/IPOPT.out"):
- ipopt_pane = create_report_frame("text", f"{reports_dir}/IPOPT.out", '''
+ if os.path.isfile(Path(reports_dir) / "IPOPT.out"):
+ ipopt_pane = create_report_frame("text", Path(reports_dir) / "IPOPT.out", '''
This report is generated by the IPOPT optimizer.
''')
optimization_tabs_list.append(("IPOPT Output", ipopt_pane))
# Optimization report
- opt_report_pane = create_report_frame("html", f"{reports_dir}/opt_report.html", '''
+ opt_report_pane = create_report_frame(
+ "html", Path(reports_dir) / "opt_report.html", '''
This report is an OpenMDAO optimization report. All values are in unscaled, physical units.
On the top is a summary of the optimization, followed by the objective, design variables, constraints,
and optimizer settings. This report is important when dissecting optimal results produced by Aviary.''')
optimization_tabs_list.append(("Summary", opt_report_pane))
# PyOpt report
- if os.path.isfile(f"{reports_dir}/pyopt_solution.out"):
+ if os.path.isfile(Path(reports_dir) / "pyopt_solution.out"):
pyopt_solution_pane = create_report_frame(
- "text", f"{reports_dir}/pyopt_solution.txt", '''
+ "text", Path(reports_dir) / "pyopt_solution.txt", '''
This report is generated by the pyOptSparse optimizer.
'''
)
optimization_tabs_list.append(("PyOpt Solution", pyopt_solution_pane))
# SNOPT report
- if os.path.isfile(f"{reports_dir}/SNOPT_print.out"):
- snopt_pane = create_report_frame("text", f"{reports_dir}/SNOPT_print.out", '''
+ if os.path.isfile(Path(reports_dir) / "SNOPT_print.out"):
+ snopt_pane = create_report_frame(
+ "text", Path(reports_dir) / "SNOPT_print.out", '''
This report is generated by the SNOPT optimizer.
''')
optimization_tabs_list.append(("SNOPT Output", snopt_pane))
# SNOPT summary
- if os.path.isfile(f"{reports_dir}/SNOPT_summary.out"):
- snopt_summary_pane = create_report_frame("text", f"{reports_dir}/SNOPT_summary.out", '''
+ if os.path.isfile(Path(reports_dir) / "SNOPT_summary.out"):
+ snopt_summary_pane = create_report_frame(
+ "text", Path(reports_dir) / "SNOPT_summary.out", '''
This is a report generated by the SNOPT optimizer that summarizes the optimization results.''')
optimization_tabs_list.append(("SNOPT Summary", snopt_summary_pane))
# Coloring report
coloring_report_pane = create_report_frame(
- "html", f"{reports_dir}/total_coloring.html", "The report shows metadata associated with the creation of the coloring."
- )
+ "html", Path(reports_dir) / "total_coloring.html",
+ "The report shows metadata associated with the creation of the coloring.")
optimization_tabs_list.append(("Total Coloring", coloring_report_pane))
####### Results Tab #######
results_tabs_list = []
# Aircraft 3d model display
- if problem_recorder:
- if os.path.isfile(problem_recorder):
+ if problem_recorder_path:
+ if os.path.isfile(problem_recorder_path):
try:
+ aircraft_3d_file = Path(reports_dir) / "aircraft_3d.html"
create_aircraft_3d_file(
- problem_recorder, reports_dir, f"{reports_dir}/aircraft_3d.html"
+ problem_recorder_path, reports_dir, aircraft_3d_file
)
aircraft_3d_pane = create_report_frame(
- "html", f"{reports_dir}/aircraft_3d.html",
+ "html", aircraft_3d_file,
"3D model view of designed aircraft."
)
except Exception as e:
aircraft_3d_pane = create_report_frame(
- "simple_message", f"Unable to create aircraft 3D model display due to error: {e}",
- "3D model view of designed aircraft."
- )
+ "simple_message",
+ f"Unable to create aircraft 3D model display due to error: {e}",
+ "3D model view of designed aircraft.")
results_tabs_list.append(("Aircraft 3d model", aircraft_3d_pane))
# Make the Aviary variables table pane
- if os.path.isfile(problem_recorder):
+ if os.path.isfile(problem_recorder_path):
# Make dir reports/script_name/aviary_vars if needed
- aviary_vars_dir = pathlib.Path(f"reports/{script_name}/aviary_vars")
+ aviary_vars_dir = Path(reports_dir) / "aviary_vars"
aviary_vars_dir.mkdir(parents=True, exist_ok=True)
# copy index.html file to reports/script_name/aviary_vars/index.html
- aviary_dir = pathlib.Path(importlib.util.find_spec("aviary").origin).parent
+ aviary_dir = Path(importlib.util.find_spec("aviary").origin).parent
shutil.copy(
aviary_dir.joinpath("visualization/assets/aviary_vars/index.html"),
@@ -814,35 +1001,38 @@ def dashboard(script_name, problem_recorder, driver_recorder, port, run_in_backg
)
# copy script.js file to reports/script_name/aviary_vars/index.html.
# mod the script.js file to point at the json file
- # create the json file and put it in reports/script_name/aviary_vars/aviary_vars.json
+ # create the json file and put it in
+ # reports/script_name/aviary_vars/aviary_vars.json
try:
create_aviary_variables_table_data_nested(
- script_name, problem_recorder
+ script_name, problem_recorder_path
) # create the json file
aviary_vars_pane = create_report_frame(
- "html", f"{reports_dir}/aviary_vars/index.html",
+ "html", Path(reports_dir) / "aviary_vars/index.html",
"Table showing Aviary variables"
)
results_tabs_list.append(("Aviary Variables", aviary_vars_pane))
except Exception as e:
issue_warning(
- f'Unable to create Aviary Variables tab in dashboard due to the error: {e}'
- )
+ f'Unable to create Aviary Variables tab in dashboard due to the error: {e}')
# Mission Summary
mission_summary_pane = create_report_frame(
- "markdown", f"{reports_dir}/mission_summary.md", "A report of mission results from an Aviary problem")
+ "markdown", Path(reports_dir) / "mission_summary.md",
+ "A report of mission results from an Aviary problem")
results_tabs_list.append(("Mission Summary", mission_summary_pane))
# Run status pane
- status_pane = create_table_pane_from_json(f"{reports_dir}/status.json")
+ status_pane = create_table_pane_from_json(
+ Path(reports_dir) / "status.json",
+ "A high level overview of the status of the run")
results_tabs_list.append(("Run status pane", status_pane))
run_status_pane_tab_number = len(results_tabs_list) - 1
# Timeseries Mission Output Report
mission_timeseries_pane = create_csv_frame(
- f"{reports_dir}/mission_timeseries_data.csv", '''
+ Path(reports_dir) / "mission_timeseries_data.csv", '''
The outputs of the aircraft trajectory.
Any value that is included in the timeseries data is included in this report.
This data is useful for post-processing, especially those used for acoustic analysis.
@@ -853,7 +1043,7 @@ def dashboard(script_name, problem_recorder, driver_recorder, port, run_in_backg
# Trajectory results
traj_results_report_pane = create_report_frame(
- "html", f"{reports_dir}/traj_results_report.html", '''
+ "html", Path(reports_dir) / "traj_results_report.html", '''
This is one of the most important reports produced by Aviary. It will help you visualize and
understand the optimal trajectory produced by Aviary.
Users should play with it and try to grasp all possible features.
@@ -868,17 +1058,21 @@ def dashboard(script_name, problem_recorder, driver_recorder, port, run_in_backg
)
# Interactive XY plot of mission variables
- if problem_recorder:
- if os.path.exists(problem_recorder):
- cr = om.CaseReader(problem_recorder)
+ if problem_recorder_path:
+ if os.path.exists(problem_recorder_path):
+ cr = om.CaseReader(problem_recorder_path)
# determine what trajectories there are
- traj_nodes = [n for n in _meta_tree_subsys_iter(
- cr.problem_metadata['tree'], cls='dymos.trajectory.trajectory:Trajectory')]
+ traj_nodes = [
+ n
+ for n in _meta_tree_subsys_iter(
+ cr.problem_metadata['tree'],
+ cls='dymos.trajectory.trajectory:Trajectory')]
if len(traj_nodes) == 0:
- raise ValueError("No trajectories available in case recorder file for use "
- "in generating interactive XY plot of mission variables")
+ raise ValueError(
+ "No trajectories available in case recorder file for use "
+ "in generating interactive XY plot of mission variables")
traj_name = traj_nodes[0]["name"]
if len(traj_nodes) > 1:
issue_warning("More than one trajectory found in problem case recorder file. Only using "
@@ -935,8 +1129,8 @@ def dashboard(script_name, problem_recorder, driver_recorder, port, run_in_backg
# need to create ColumnDataSource for each phase
sources = {}
for phase in phases:
- x, y = _get_interactive_plot_sources(data_by_varname_and_phase,
- x_varname_default, y_varname_default, phase)
+ x, y = _get_interactive_plot_sources(
+ data_by_varname_and_phase, x_varname_default, y_varname_default, phase)
sources[phase] = ColumnDataSource(data=dict(
x=x,
y=y))
@@ -951,7 +1145,7 @@ def dashboard(script_name, problem_recorder, driver_recorder, port, run_in_backg
],
)
- colors = bp.d3['Category20'][20][0::2] + bp.d3['Category20'][20][1::2]
+ colors = d3['Category20'][20][0::2] + d3['Category20'][20][1::2]
legend_data = []
phases = sorted(phases, key=str.casefold)
for i, phase in enumerate(phases):
@@ -969,7 +1163,8 @@ def dashboard(script_name, problem_recorder, driver_recorder, port, run_in_backg
# Make the Legend
legend = Legend(items=legend_data, location='center',
label_text_font_size='8pt')
- # so users can click on the dot in the legend to turn off/on that phase in the plot
+ # so users can click on the dot in the legend to turn off/on that phase in
+ # the plot
legend.click_policy = "hide"
p.add_layout(legend, 'right')
@@ -1007,29 +1202,34 @@ def update_plot(x_varname, y_varname):
)
else:
interactive_mission_var_plot_pane = pn.pane.Markdown(
- f"# Recorder file '{problem_recorder}' not found.")
+ f"# Recorder file '{problem_recorder_path}' not found.")
interactive_mission_var_plot_pane_with_doc = pn.Column(
- pn.pane.HTML(f"Plot of mission variables allowing user to select X and Y plot values.
",
- styles={'text-align': documentation_text_align}),
- interactive_mission_var_plot_pane
- )
+ pn.pane.HTML(
+ f"Plot of mission variables allowing user to select X and Y plot values.
",
+ styles={
+ 'text-align': documentation_text_align}),
+ interactive_mission_var_plot_pane)
results_tabs_list.append(
- ("Interactive Mission Variable Plot", interactive_mission_var_plot_pane_with_doc)
- )
+ ("Interactive Mission Variable Plot",
+ interactive_mission_var_plot_pane_with_doc))
####### Subsystems Tab #######
subsystem_tabs_list = []
# Look through subsystems directory for markdown files
- # The subsystems report tab shows selected results for every major subsystem in the Aviary problem
+ # The subsystems report tab shows selected results for every major
+ # subsystem in the Aviary problem
- for md_file in sorted(pathlib.Path(f"{reports_dir}subsystems").glob("*.md"), key=str):
- subsystems_pane = create_report_frame("markdown", str(
- md_file),
+ for md_file in sorted(Path(f"{reports_dir}subsystems").glob("*.md"), key=str):
+ subsystems_pane = create_report_frame(
+ "markdown", str(md_file),
f'''
+
The subsystems report tab shows selected results for every major subsystem in the Aviary problem.
- This report is for the {md_file.stem} subsystem. Reports available currently are mass, geometry, and propulsion.
+ This report is for the
+ {md_file.stem}
+ subsystem. Reports available currently are mass, geometry, and propulsion.
''')
subsystem_tabs_list.append((md_file.stem, subsystems_pane))
@@ -1068,14 +1268,14 @@ def update_plot(x_varname, y_varname):
def save_dashboard(event):
print(f"Saving dashboard files to {script_name}.zip")
- shutil.make_archive(script_name, "zip", f"reports/{script_name}")
+ shutil.make_archive(script_name, "zip", f"{script_name}_out")
save_dashboard_button.on_click(save_dashboard)
tabs.active = 0 # make the Results tab active initially
# get status of run for display in the header of each page
- status_string_for_header = get_run_status(f"{reports_dir}/status.json")
+ status_string_for_header = get_run_status(Path(reports_dir) / "status.json")
template = pn.template.FastListTemplate(
title=f"Aviary Dashboard for {script_name}: {status_string_for_header}",
@@ -1086,7 +1286,7 @@ def save_dashboard(event):
header_background="rgb(0, 212, 169)",
header=header,
background_color="white",
- theme=DefaultTheme,
+ theme=pn.theme.DefaultTheme,
theme_toggle=False,
main_layout=None,
css_files=["assets/aviary_styles.css"],
@@ -1103,12 +1303,13 @@ def save_dashboard(event):
if run_in_background:
show = False
- assets_dir = pathlib.Path(
+ assets_dir = Path(
importlib.util.find_spec("aviary").origin
).parent.joinpath("visualization/assets/")
home_dir = "."
if port == 0:
port = get_free_port()
+
server = pn.serve(
template,
port=port,