Source code for RCAIDE.Library.Methods.Aerodynamics.Athena_Vortex_Lattice.AVL_Objects.Body
# RCAIDE/Library/Methods/Aerodynamics/Athena_Vortex_Lattice/AVL_Objects/Body.py
#
# Created: Oct 2024, M. Clarke
# ----------------------------------------------------------------------------------------------------------------------
# IMPORT
# ----------------------------------------------------------------------------------------------------------------------
# RCAIDE imports
from RCAIDE.Framework.Core import Data
# ----------------------------------------------------------------------------------------------------------------------
# Body
# ----------------------------------------------------------------------------------------------------------------------
[docs]
class Body(Data):
""" A data class defining the parameters of a fuselage or other body modeled
by side and planform projections arranged in a plus (+) shape (when viewed from
the front).
Assumptions:
None
Source:
None
Inputs:
None
Outputs:
None
Properties Used:
N/A
"""
def __defaults__(self):
""" Defines the data structure and defaults for aircraft body geometry
Assumptions:
None
Source:
None
Inputs:
None
Outputs:
None
Properties Used:
N/A
"""
self.tag = 'body'
self.symmetric = True
self.origin = [0.,0.,0.]
self.lengths = Data()
self.lengths.total = 0.0
self.lengths.nose = 0.0
self.lengths.tail = 0.0
self.widths = Data()
self.widths.maximum = 0.0
self.heights = Data()
self.heights.maximum = 0.0
self.sections = Data()
self.sections.vertical = Data()
self.sections.horizontal = Data()
self.configuration = Data()
self.configuration.nspanwise = 10
self.configuration.nchordwise = 5
self.configuration.sspace = 1.0
self.configuration.cspace = 1.0
[docs]
def append_section(self,section,orientation='Horizontal'):
""" Adds a section to the body vertical or horizontal segment
Assumptions:
None
Source:
None
Inputs:
None
Outputs:
None
Properties Used:
N/A
"""
# assert database type
if not isinstance(section,Data):
raise Exception('input component must be of type Data()')
# store data
if orientation.lower() == 'horizontal':
self.sections.horizontal.append(section)
elif orientation.lower() == 'vertical':
self.sections.vertical.append(section)
else:
raise KeyError('No key, "{}". Use "Horizontal" or "Vertical".'.format(orientation))
return