-
Notifications
You must be signed in to change notification settings - Fork 139
Expand file tree
/
Copy pathapi.py
More file actions
207 lines (182 loc) · 8.19 KB
/
Copy pathapi.py
File metadata and controls
207 lines (182 loc) · 8.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
"""
This module is the API for Aviary aircraft analysis code.
For users: All built-in Aviary functions, code, and objects
should be imported from this file.
For developers: All Aviary code which is intended to be
user-facing should be imported to this file.
"""
# TODO: don't rename things here, do it in the entire codebase
# TODO: when documenting methods and classes, make sure to include documentation (printing of docstrings) for everything that's imported in this API
# TODO: remove overload prototype
# TODO: import and use the aviary api in all user-facing files rather than individual imports
###################
# General Imports #
###################
from aviary.variable_info.variables import Aircraft, Mission, Dynamic, Settings
from aviary.variable_info.options import is_option
from aviary.utils.develop_metadata import add_meta_data, update_meta_data
from aviary.variable_info.variable_meta_data import CoreMetaData
from aviary.variable_info.functions import (
add_aviary_input,
add_aviary_output,
add_aviary_option,
get_units,
)
from aviary.utils.merge_hierarchies import merge_hierarchies
from aviary.utils.merge_variable_metadata import merge_meta_data
from aviary.utils.named_values import NamedValues
from aviary.utils.aviary_values import AviaryValues
from aviary.utils.csv_data_file import read_data_file, write_data_file
from aviary.utils.data_interpolator_builder import build_data_interpolator
from aviary.variable_info.enums import *
from aviary.models.missions.two_dof_default import phase_info as default_2DOF_phase_info
from aviary.models.missions.energy_state_default import (
phase_info as default_energy_state_phase_info,
)
from aviary.interface.run_aviary import run_aviary
from aviary.core.aviary_problem import AviaryProblem, reload_aviary_problem
# Converters
from aviary.utils.engine_deck_conversion import convert_engine_deck
from aviary.utils.fortran_to_aviary import fortran_to_aviary
from aviary.utils.aero_table_conversion import convert_aero_table
from aviary.utils.functions import (
get_path,
set_aviary_initial_values,
set_aviary_input_defaults,
top_dir,
)
from aviary.utils.options import list_options
from aviary.constants import (
GRAV_ENGLISH_GASP,
GRAV_ENGLISH_LBM,
GRAV_METRIC_GASP,
PSLS_PSF,
TSLS_DEGR,
)
from aviary.subsystems.test.subsystem_tester import (
TestSubsystemBuilder,
)
from aviary.subsystems.propulsion.utils import build_engine_deck
###################
# Level 3 Imports #
###################
# Model Setup
from aviary.variable_info.functions import (
override_aviary_vars,
setup_model_options,
setup_trajectory_params,
)
# Miscellaneous
from aviary.subsystems.premission import CorePreMission
from aviary.subsystems.subsystem_builder import SubsystemBuilder
from aviary.utils.process_input_decks import create_vehicle
# Preprocessors
from aviary.utils.preprocessors import (
preprocess_options,
preprocess_crewpayload,
preprocess_fuel_capacities,
preprocess_propulsion,
)
# ODEs
# TODO: check and see if this works with both sides, or just GASP
from aviary.mission.base_ode import BaseODE
from aviary.mission.energy_state.ode.energy_state_ODE import EnergyStateODE
from aviary.mission.energy_state.ode.landing_ode import LandingODE as DetailedLandingODE
from aviary.mission.energy_state.ode.landing_ode import FlareODE as DetailedFlareODE
from aviary.mission.energy_state.ode.takeoff_ode import TakeoffODE as DetailedTakeoffODE
from aviary.mission.energy_state.phases.simplified_takeoff import (
TakeoffGroup as EnergyStateSimplifiedTakeoff,
)
from aviary.mission.energy_state.phases.simplified_landing import (
LandingGroup as EnergyStateSimplifiedLanding,
)
from aviary.mission.two_dof.ode.two_dof_ode import TwoDOFODE
from aviary.mission.two_dof.ode.accel_ode import AccelODE as TwoDOFAccelerationODE
from aviary.mission.two_dof.ode.breguet_cruise_ode import BreguetCruiseODE, ElectricBreguetCruiseODE
from aviary.mission.two_dof.ode.flight_ode import FlightODE as TwoDOFFlightODE
from aviary.mission.two_dof.ode.takeoff_ode import TakeOffODE as TwoDOFTakeOffODE
from aviary.mission.two_dof.ode.landing_ode import LandingSegment as TwoDOFSimplifiedLanding
from aviary.mission.two_dof.ode.taxi_ode import TaxiSegment as AnalyticTaxi
# Phase builders
from aviary.mission.phase_builder import PhaseBuilder
# note that this is only for simplified right now
from aviary.mission.energy_state.phases.energy_phase import (
EnergyPhase as EnergyStatePhaseBuilder,
)
from aviary.mission.energy_state.phases.build_landing import (
Landing as EnergyStateLandingPhaseBuilder,
)
# note that this is only for simplified right now
from aviary.mission.energy_state.phases.build_takeoff import (
Takeoff as EnergyStateTakeoffPhaseBuilder,
)
from aviary.mission.energy_state.phases.detailed_landing_phases import (
LandingApproachToMicP3 as DetailedLandingApproachToMicP3PhaseBuilder,
LandingMicP3ToObstacle as DetailedLandingMicP3ToObstaclePhaseBuilder,
LandingObstacleToFlare as DetailedLandingObstacleToFlarePhaseBuilder,
LandingFlareToTouchdown as DetailedLandingFlareToTouchdownPhaseBuilder,
LandingTouchdownToNoseDown as DetailedLandingTouchdownToNoseDownPhaseBuilder,
LandingNoseDownToStop as DetailedLandingNoseDownToStopPhaseBuilder,
)
from aviary.mission.energy_state.phases.detailed_takeoff_phases import (
TakeoffBrakeReleaseToDecisionSpeed as DetailedTakeoffBrakeReleaseToDecisionSpeedPhaseBuilder,
TakeoffDecisionSpeedToRotate as DetailedTakeoffDecisionSpeedToRotatePhaseBuilder,
TakeoffDecisionSpeedBrakeDelay as DetailedTakeoffDecisionSpeedBrakeDelayPhaseBuilder,
TakeoffRotateToLiftoff as DetailedTakeoffRotateToLiftoffPhaseBuilder,
TakeoffLiftoffToObstacle as DetailedTakeoffLiftoffToObstaclePhaseBuilder,
TakeoffObstacleToMicP2 as DetailedTakeoffObstacleToMicP2PhaseBuilder,
TakeoffMicP2ToEngineCutback as DetailedTakeoffMicP2ToEngineCutbackPhaseBuilder,
TakeoffEngineCutback as DetailedTakeoffEngineCutbackPhaseBuilder,
TakeoffEngineCutbackToMicP1 as DetailedTakeoffEngineCutbackToMicP1PhaseBuilder,
TakeoffMicP1ToClimb as DetailedTakeoffMicP1ToClimbPhaseBuilder,
TakeoffBrakeToAbort as DetailedTakeoffBrakeToAbortPhaseBuilder,
)
# Phase builders
from aviary.mission.two_dof.phases.accel_phase import AccelPhase as TwoDOFAccelerationPhase
from aviary.mission.two_dof.phases.flight_phase import FlightPhase as TwoDOFFlightPhase
from aviary.mission.two_dof.phases.takeoff_phase import TakeoffPhase as TwoDOFTakeoffPhase
from aviary.mission.two_dof.phases.breguet_cruise_phase import (
BreguetCruisePhase,
ElectricCruisePhase,
)
# Trajectory builders
from aviary.mission.energy_state.phases.detailed_landing_phases import (
LandingTrajectory as DetailedLandingTrajectoryBuilder,
)
from aviary.mission.energy_state.phases.detailed_takeoff_phases import (
TakeoffTrajectory as DetailedTakeoffTrajectoryBuilder,
)
##############
# Subsystems #
##############
# Aerodynamics
from aviary.subsystems.aerodynamics.aerodynamics_builder import (
AerodynamicsBuilder,
CoreAerodynamicsBuilder,
)
from aviary.subsystems.aerodynamics.flops_based.tabular_aero_group import TabularAeroGroup
# Atmosphere
from aviary.subsystems.atmosphere.atmosphere import Atmosphere
# Energy
from aviary.subsystems.energy.battery_builder import BatteryBuilder
# Geometry
from aviary.subsystems.geometry.geometry_builder import GeometryBuilder, CoreGeometryBuilder
# Mass
from aviary.subsystems.mass.mass_builder import MassBuilder, CoreMassBuilder
# Performance
from aviary.subsystems.performance.performance_builder import (
PerformanceBuilder,
CorePerformanceBuilder,
)
# Propulsion
from aviary.subsystems.propulsion.engine_deck import EngineDeck
from aviary.subsystems.propulsion.engine_model import EngineModel
from aviary.subsystems.propulsion.motor.motor_builder import MotorBuilder
from aviary.subsystems.propulsion.propulsion_builder import (
PropulsionBuilder,
CorePropulsionBuilder,
)
from aviary.subsystems.propulsion.turboprop_model import TurbopropModel
from aviary.subsystems.propulsion.gearbox.gearbox_builder import GearboxBuilder
from aviary.subsystems.propulsion.motor.motor_builder import MotorBuilder
from aviary.subsystems.propulsion.propeller.propeller_builder import PropellerBuilder