Source code for RCAIDE.Library.Components.Wings.Segments.Segment
# RCAIDE/Library/Compoments/Wings/Segment.py
#
# Created: Mar 2024, M. Clarke
# ----------------------------------------------------------------------------------------------------------------------
# IMPORT
# ----------------------------------------------------------------------------------------------------------------------
# RCAIDE imports
import RCAIDE
from RCAIDE.Framework.Core import Data, Container
from RCAIDE.Library.Components import Component
# ----------------------------------------------------------------------------------------------------------------------
# Segment
# ----------------------------------------------------------------------------------------------------------------------
[docs]
class Segment(Component):
"""
A class representing a wing segment that defines a portion of a wing's geometry.
Attributes
----------
tag : str
Unique identifier for the segment, defaults to 'segment'
prev : Component
Link to previous segment in wing, defaults to None
next : Component
Link to next segment in wing, defaults to None
percent_span_location : float
Spanwise location as fraction of wing span, defaults to 0.0
twist : float
Local twist angle, defaults to 0.0
taper : float
Local taper ratio, defaults to 0.0
root_chord_percent : float
Root chord as fraction of wing root chord, defaults to 0.0
dihedral_outboard : float
Dihedral angle of outboard section, defaults to 0.0
thickness_to_chord : float
Local thickness-to-chord ratio, defaults to 0.0
sweeps : Data
Collection of sweep angles
- quarter_chord : float
Quarter-chord sweep angle, defaults to 0.0
- leading_edge : float
Leading edge sweep angle, defaults to None
chords : Data
Collection of chord lengths
- mean_aerodynamic : float
Mean aerodynamic chord, defaults to 0.0
areas : Data
Collection of area measurements
- reference : float
Reference area, defaults to 0.0
- exposed : float
Exposed area, defaults to 0.0
- wetted : float
Wetted area, defaults to 0.0
Airfoil : Container
Collection of airfoil definitions, initialized empty
Notes
-----
Wing segments are used to build up complete wing geometries by defining
local properties at various spanwise locations.
See Also
--------
RCAIDE.Library.Components.Wings.Wing
Parent wing class that uses segments
RCAIDE.Library.Components.Wings.Main_Wing
Main wing implementation using segments
"""
def __defaults__(self):
"""
Sets default values for the wing segment attributes.
"""
self.tag = 'segment'
self.prev = None
self.next = None
self.percent_span_location = 0.0
self.twist = 0.0
self.taper = 0.0
self.root_chord_percent = 0.0
self.dihedral_outboard = 0.0
self.thickness_to_chord = 0.0
self.sweeps = Data()
self.sweeps.quarter_chord = 0.0
self.sweeps.leading_edge = None
self.chords = Data()
self.chords.mean_aerodynamic = 0.0
self.areas = Data()
self.areas.reference = 0.0
self.areas.exposed = 0.0
self.areas.wetted = 0.0
self.airfoil = None
[docs]
def append_airfoil(self, airfoil):
"""
Adds an airfoil definition to the segment.
Parameters
----------
airfoil : Data
Airfoil data to be added to the segment
"""
# Assert database type
if not isinstance(airfoil,RCAIDE.Library.Components.Airfoils.Airfoil):
raise Exception('input component must be of type Airfoil')
# store data
self.airfoil = airfoil
[docs]
class Segment_Container(Container):
"""
Container class for managing wing segments. Provides organization and
access methods for segment components.
See Also
--------
RCAIDE.Library.Components.Wings.Segments.Segment
The segment components stored in this container
"""
[docs]
def get_children(self):
"""
Returns a list of allowable child component types for the segment container.
Returns
-------
list
Empty list as segments do not contain child components
"""
return []