Data structure details
We're incorporating struct
s as part of modernizing TASOPT from Fortran. Note that as we represent more parts of an aircraft
as struct
s, these may change and will hopefully become a natural and intuitive data structure.
Primary struct
s
Here are the main struct
s that comprise an aircraft
object.
TASOPT.aircraft
— Typeaircraft
A type representing a TASOPT aircraft model including, geometric, aerodynamic, propulsion system parameters. It is designed to hold information related to the aircraft's name, description, as well as different sets of parameters used for analysis and optimization.
Overloads Base.summary to print a summary of the aircraft
model.
Fields:
name::String
: Aircraft name (eg: "Boeing 777")description::String
: A brief description of the aircraftoptions::TASOPT.Options
: Configuration options for the aircraftparg::AbstractArray{Float64}
: Geometry parametersparm::AbstractArray{Float64}
: Mission parameterspara::AbstractArray{Float64}
: Aero parameterspare::AbstractArray{Float64}
: Engine parametersfuse_tank::fuselage_tank
: fuselage fuel tank objectfuselage::Fuselage
: fuselage fuel tank objectwing::Wing
: wing objecthtail::Tail
: horizontal tail objectvtail::Tail
: vertical tail objectengine::Engine
: engine objectlanding_gear::LandingGear
: landing gear objectfuselage::Fuselage
: Fuselage layout, data, and parametersfuse_tank::fuselage_tank
: Fuselage tank data and parameters (when applicable)wing::Wing
: Wing data and parametershtail::Tail
: Horizontal tail data and parametersvtail::Tail
: Vertical tail data and parametersengine::Engine
: Engine models, data, and parameters
The indices for accessing specific data in the par
arrays are defined in /src/data_structs/index.inc
. Refer to the sample input file (/example/defaults/default_input.toml
and read_input.jl
) for usage. Refer to the docs for a summary of the main struct
s.
TASOPT.Options
— Typemutable struct Options
Field of an aircraft
containing configuration-level design choices.
opt_fuel::String
: Fuel type (e.g., Jet-A, LH2)ifuel::Integer
: Fuel option index (non-driving; determined and used by gas calcs)has_centerbox_fuel::Bool
: Indicates presence of centerbox fuel tank, can only be true if haswingfuel is truehas_wing_fuel::Bool
: Indicates presence of wing fuel tankshas_fuselage_fuel::Bool
: Indicates presence of fuselage fuel tanks (non-driving; set byfuse_tank
inputs)opt_engine_location::String
: Engine location ("wing", "fuselage")opt_prop_sys_arch::String
: Propulsion system architecture (e.g., "tf" for turbofan, "te" for turboelectric), performance and weight models set in ac.Engineis_doubledecker::Bool
: Indicates if the aircraft has a double-decker fuselage configurationopt_move_wing::String
: Move wingbox selection for longitudinal stability analysis. "fixed" = static wing position ,"fixedCLh" move wing to get CLh="CLhspec" in cruise, "minstatic_margin" = move wing to get min static margin = "SMmin"
TASOPT.structures.Fuselage
— Typemutable struct Fuselage
Fuselage Structure: Divided into 5 modules 1. General Properties 2. Internal Structure 3. External Loads 4. Fuselage Layout 5. Misc Properties
weight::Float64
: Fuselage Weight [N]volume::Float64
: Fuselage Volume [m^3]moment::Float64
: Fuselage Weight [Nm^3]layout::TASOPT.structures.FuselageLayout
: Fuselage Layoutcabin::TASOPT.structures.Cabin
: Cabin Propertiesmaterial::StructuralAlloy
: Fuselage Materialskin::TASOPT.structures.StructuralMember
: Structural Membersshell::TASOPT.structures.StructuralMember
cone::TASOPT.structures.StructuralMember
floor::TASOPT.structures.StructuralMember
: Internal Membersinsulation::TASOPT.structures.Weight
window::TASOPT.structures.Weight
floor_W_per_area::Float64
insulation_W_per_area::Float64
window_W_per_length::Float64
bendingmaterial_h::TASOPT.structures.StructuralMember
: Bending Materialbendingmaterial_v::TASOPT.structures.StructuralMember
APU::TASOPT.structures.Weight
: External Weightsseat::TASOPT.structures.Weight
added_payload::TASOPT.structures.Weight
HPE_sys::TASOPT.structures.Weight
fixed::TASOPT.structures.Weight
n_decks::Int64
: Number of decks in fuselageweight_frac_stringers::Float64
: Fuselage Weight fraction of stringersweight_frac_frame::Float64
: Fuselage Weight fraction of frameweight_frac_skin_addl::Float64
: Fuselage Weight fraction of additional weights on skinratio_young_mod_fuse_bending::Float64
: Fuselage Shell Modulus Ratio Ebend/Eskin
TASOPT.fuselage_tank
— Typemutable struct fuselage_tank
Fuselage tank component. Usually for Hydrogen aircraft
fueltype::String
: Fuel type nametank_count::Int64
: Fuel tank countplacement::String
: Fuel tank locationsizes_insulation::Bool
: Flag for insulation sizingWfuelintank::Float64
: Weight of fuel in one tank (N)clearance_fuse::Float64
t_insul::Vector{Float64}
: Vector with insulation layer thickness (m)material_insul::Vector{ThermalInsulator}
: Vector with insulation materialsiinsuldes::Vector{Int64}
: Vector with insulation layer design indicesinner_material::StructuralAlloy
: Inner vessel materialouter_material::StructuralAlloy
: Outer vessel materialARtank::Float64
: Tank head aspect ratiotheta_inner::Float64
: Angular location of inner vessel stiffenerstheta_outer::Vector{Float64}
: Vector with angular location of outer vessel stiffenersNinterm::Float64
: Number of intermediate stiffeners in outer vesselpvent::Float64
: Venting pressure (Pa)pinitial::Float64
: Fill pressure (Pa)pmin::Float64
: Minimum allowable tank pressure (Pa)t_hold_orig::Float64
: Departure hold time (s)t_hold_dest::Float64
: Arrival hold time (s)TSLtank::Float64
: Sea-level temperature used to design tank (K)rhofuel::Float64
: Liquid fuel density (kg/m^3)Tfuel::Float64
: Liquid fuel temperature in tank (K)rhofuelgas::Float64
: Gas fuel density (kg/m^3)hvap::Float64
: Fuel specific enthalpy of vaporization (J/kg)boiloff_rate::Float64
: Percentage tank boiloff rate at start of cruise (%/h)ftankadd::Float64
: Vessel additional mass fractionew::Float64
: Vessel weld efficiencyullage_frac::Float64
: Minimum ullage fractionqfac::Float64
: Heat leakage factorpfac::Float64
: Pressure rise factor
TASOPT.structures.Wing
— Typemutable struct Wing{air<:TASOPT.aerodynamics.airfoil} <: TASOPT.structures.AbstractWing
The Wing structure is composed of 6 sub-structures as follow and are visualized here.
- General Properties
- Wing Layout
- Material
- Wing Sections
- Strut
- Weight Fractions
See structures.WingSection
, structures.WingLayout
or structures.WingCrossSection
for more detail.
weight::Float64
: Wing Weight [N]dxW::Float64
: Aircraft pitching moment contribution from the weight distribution of the wing [Nm]layout::TASOPT.structures.WingLayout
: Wing Layoutmaterial::StructuralAlloy
: Wing Materialairsection::TASOPT.aerodynamics.airfoil
: Airfoil datainboard::TASOPT.structures.WingSection
: Inboard Wing Section (at wing root)outboard::TASOPT.structures.WingSection
: Outboard Wing Section (at strut attachment point)fuse_lift_carryover::Float64
: Fuselage lift carryover factortip_lift_loss::Float64
: Tip lift roll-off factormean_aero_chord::Float64
: Mean Aerodynamic Chordhas_strut::Bool
: Wing Strutstrut::TASOPT.structures.Strut
weight_frac_flap::Float64
: Wing flap weight fractionweight_frac_slat::Float64
: Wing slats weight fractionweight_frac_ailerons::Float64
: Wing ailerons weight fractionweight_frac_leading_trailing_edge::Float64
: Wing leadingtrailingedge weight fractionweight_frac_ribs::Float64
: Wing ribs weight fractionweight_frac_spoilers::Float64
: Wing spoilers weight fractionweight_frac_attachments::Float64
: Wing attachments weight fraction
TASOPT.structures.Tail
— Typemutable struct Tail <: TASOPT.structures.AbstractWing
Tail
layout::TASOPT.structures.WingLayout
: Tail Layoutoutboard::TASOPT.structures.WingSection
: Tail Sectionsinboard::TASOPT.structures.WingSection
has_strut::Bool
: Tail Strutstrut::TASOPT.structures.Strut
tip_lift_loss::Float64
: Tip lift roll-off factordxW::Float64
: Aircraft pitching moment contribution from the weight distribution of the strut [N m]weight::Float64
: Tail Weight [N]weight_fraction_added::Float64
: Tail Added Weight FractionCL_max::Float64
: Tail Max CLvolume::Float64
: Tail Volume [m^3]opt_sizing::String
: Tail Sizing assumption selection - different for HTail vs VTaildownwash_factor::Float64
: Tail Downwash factor dε/dαCL_max_fwd_CG::Float64
: Tail max fwd CG (only used if optsizing == "CLmaxfwdCG" for HTail)SM_min::Float64
: Tail Minimum static marginCL_CLmax::Float64
: Max Tail down load. Tail download param at max load casentails::Float64
: Number of Tails
TASOPT.engine.Engine
— Typemutable struct Engine{M<:TASOPT.engine.AbstractModel}
Engine and models
model::TASOPT.engine.AbstractModel
data::TASOPT.engine.AbstractData
: Engine data storageheat_exchangers::Array{TASOPT.engine.HX_struct}
: Heat exchanger parameters and data
Subordinate struct
s
The above struct
s are in turn partially composed of subordinate struct
s, including some to represent materials, geometric layouts, and airfoil aerodynamic performance.
Users shouldn't need to mess with these, but a few for reference:
TASOPT.structures.FuselageLayout
— Typemutable struct FuselageLayout <: TASOPT.structures.AbstractLayout
Fuselage Layout Structure: Contains dimensions, heights, etc. to design a fuselage
cross_section::TASOPT.structures.AbstractCrossSection
: Cross section definitionthickness_webs::Float64
: Thickness of websx_nose::Float64
: X position of nose [m]x_pressure_shell_fwd::Float64
: X position of pressure shell forward [m]x_pressure_shell_aft::Float64
: X position of pressure shell aft [m]x_start_cylinder::Float64
: X position of cylinder start [m]x_end_cylinder::Float64
: X position of cylinder end [m]x_cone_end::Float64
: X position of fuselage cone end [m]x_end::Float64
: X position of fuselage end [m]taper_tailcone::Float64
: Tailcone taper (lambdac) [m]floor_depth::Float64
: Floor depth (depth of floor beams) [m]nose_radius::Float64
: Nose Radius [m]tail_radius::Float64
: Tail Radius [m]opt_tapers_to::String
: Taper fuselage to "point" or "edge"l_cabin_cylinder::Float64
: Length of cylindrical portion of cabin that contains payload [m]
TASOPT.structures.Cabin
— Typemutable struct Cabin <: TASOPT.structures.AbstractCabin
Cabin Layout Structure: Contains seating dimensions and quantities to design a cabin layout
design_pax::Int64
: Design number of passengersexit_limit::Int64
: Maximum number of passengersseat_pitch::Float64
: Longitudinal seat pitch [m]seat_width::Float64
: Transverse seat width [m]seat_height::Float64
: Seat height [m]aisle_halfwidth::Float64
: Aisle half-width [m]floor_distance::Float64
: Distance between double decker floors [m]min_top_cabin_height::Float64
: Top cabin minimum height [m]cabin_width_main::Float64
: Main cabin width [m]cabin_width_top::Float64
: Top cabin width [m]seats_abreast_main::Int64
: Number of seats abreast in main cabinseats_abreast_top::Int64
: Number of seats abreast in top cabinfloor_angle_main::Float64
: Floor angle of main cabin [rad]floor_angle_top::Float64
: Floor angle of top cabin [rad]front_seat_offset::Float64
: Front cabin offset before seats [m]rear_seat_offset::Float64
: Rear cabin offset after seats [m]unit_load_device::String
: Unit load device type
TASOPT.structures.StructuralMember
— Typemutable struct StructuralMember
StructuralMember: Contains structural and material properties of structural members
material::StructuralAlloy
: Material: Automatically sets stress and density of StructuralMember [StructuralAlloy]weight::TASOPT.structures.Weight
: WeightEIh::Float64
: Horizontal/Bending Stiffness [N m^2]EIv::Float64
: Vertical/Normal Stiffness [N m^2]GJ::Float64
: Torsional Rigidity [N m^2]thickness::Float64
: Thickness [m]
TASOPT.structures.WingLayout
— TypeWing layout is a structure that defines the wing planform. See WingSection
and WingCrossSection
as well.
TASOPT.structures.WingSection
— Typemutable struct WingSection <: TASOPT.structures.AbstractWingSection
Wing Section
cross_section::TASOPT.structures.WingCrossSection
: Wing Section layoutco::Float64
: Starting section chord [m]λ::Float64
: Taper ratio λ = cend/cstartwebs::TASOPT.structures.StructuralMember
: Wing Section webscaps::TASOPT.structures.StructuralMember
: Wing Section capsEI::Matrix{Float64}
: Bending Stiffness EI matrix [N m^2]GJ::Float64
: Torsional Stiffness GJ [N m^2]max_shear_load::Float64
: Max shear load [N]moment::Float64
: Moment [N m]weight::Float64
: Weight [N]dyW::Float64
: Wing root moment contribution from wing weight section of engine [N m]
TASOPT.structures.WingCrossSection
— Typemutable struct WingCrossSection
Stores all the non-dimensional parameters in the normal-plane cross section of the wing (mainly related to the spar-box) Cross-section of wing box:
┌──────────────────────────────────────┐
┌──┘ ▲ └──┐
▲┌──┘ │ └──┐
web height ││ spar box height ││
▼└──┐ │ ┌──┘
└──┐ ▼ ┌──┘
└──────────────────────────────────────┘
◄───────────────── box width ──────────────────────►
◄───────────────────────────── c⟂ ──────────────────────────────────►
thickness_to_chord::Float64
: Wing section's spar box height to perpendicular chord (c⟂) [-]width_to_chord::Float64
: Wing section's spar box width to c⟂[-]web_to_box_height::Float64
: Wing section's web height to max box height [-]t_cap::Float64
: Sparbox cap normalized thickness (i.e., h_cap/c⟂) [-]t_web::Float64
: Sparbox web normalized thicknessA_internal::Float64
: Internal Area normalized by chord2
TASOPT.aerodynamics.airfoil
— Typeairfoil
A type representing a database of pre-computed airfoil data for a single Reyolds number and a range of Mach numbers, sectional lift coefficients, and thickness-to-chord ratios. By default, this is the original TASOPT transonic airfoil, as modelled by M. Drela in MSES and stored in src/air/
.
Overloads Base.show to print a summary of the airfoil
model.
Fields:
Ma::AbstractVector{Float64}
: Mach nos.cl::AbstractVector{Float64}
: Sectional lift coefficients.τ::AbstractVector{Float64}
: Thickness-to-chord ratios.Re::Float64
: Reynolds number.A::AbstractArray{Float64}
: Multi-dimensional array of aero performance data.
Various views of the data:
A_M::AbstractArray{Float64}
:A_τ::AbstractArray{Float64}
:A_cl::AbstractArray{Float64}
:A_M_τ::AbstractArray{Float64}
:A_M_cl::AbstractArray{Float64}
:A_cl_τ::AbstractArray{Float64}
:A_M_cl_τ::AbstractArray{Float64}
:
TASOPT.materials.StructuralAlloy
— Typemutable struct StructuralAlloy
Generic structural alloy.
name::String
: Nameρ::Float64
: Density [kg/m³]E::Float64
: Young's Modulus [Pa]G::Float64
: Shear Modulus [Pa]ν::Float64
: Poisson's Ratio [-]σmax::Float64
: Maximum Stress (Yield or Ultimate Strength) [Pa]τmax::Float64
: Maximum Shear [Pa]YTS::Float64
: Yield tensile strength [Pa]UTS::Float64
: Ultimate tensile strength [Pa]USS::Float64
: Ultimate shear strength [Pa]k::Float64
: Thermal conductivity [W/(m K)]