aircraft.components.wing

Module Contents

Classes

Wing

The wing component class.

WingGeometricQuantities

WingParameters

class aircraft.components.wing.Wing(AR: Union[int, float, csdl_alpha.Variable, None], S_ref: Union[int, float, csdl_alpha.Variable, None], span: Union[int, float, csdl_alpha.Variable, None] = None, dihedral: Union[int, float, csdl_alpha.Variable, None] = None, sweep: Union[int, float, csdl_alpha.Variable, None] = None, taper_ratio: Union[int, float, csdl_alpha.Variable, None] = None, incidence: Union[int, float, csdl_alpha.Variable] = 0, root_twist_delta: Union[int, float, csdl_alpha.Variable] = 0, tip_twist_delta: Union[int, float, csdl_alpha.Variable] = 0, thickness_to_chord: float = 0.15, thickness_to_chord_loc: float = 0.3, geometry: Union[lsdo_function_spaces.FunctionSet, None] = None, tight_fit_ffd: bool = False, skip_ffd: bool = False, orientation: str = 'horizontal', **kwargs)

Bases: CADDEE_alpha.core.component.Component

The wing component class.

Parameters
- ARaspect ratio
- S_refreference area
- span (None default)
- dihedral (deg) (None default)
- sweep (deg) (None default)
- taper_ratio (None default)
Note that parameters may be design variables for optimizaiton.
If a geometry is provided, the geometry parameterization sovler
will manipulate the geometry through free-form deformation such
that the wing geometry satisfies these parameters.
Attributes
- parametersdata class storing the above parameters
- geometryb-spline set or subset containing the wing geometry
- compsdictionary for children components
- quantitiesdictionary for storing (solver) data (e.g., field data)
property LE_center
property LE_left_tip
property LE_right_tip
property TE_center
property TE_left_tip
property TE_right_tip
_add_geometry(surf_index, function, name, append=None, geometry=None)

Add a function to the geometry object.

_extract_geometric_quantities_from_ffd_block() WingGeometricQuantities
Extract the following quantities from the FFD block:
  • Span

  • root chord length

  • tip chord lengths

  • sweep/dihedral angles

Note that this helper function will not work well in all cases (e.g., in cases with high sweep or taper)

_fit_surface(parametric_points: list, fitting_coords: list, function_space: lsdo_function_spaces.FunctionSpace, mirror: bool, dependent: bool)

Fit a surface to the given parametric points.

_make_ffd_block(entities: List[lsdo_function_spaces.Function], num_coefficients: tuple = (2, 2, 2), degree: tuple = (1, 1, 1), num_physical_dimensions: int = 3, tight_fit: bool = True)

Call ‘construct_ffd_block_around_entities’ function.

Note that we overwrite the Component class’s method to - make a “tight-fit” ffd block instead of a cartesian one - to provide higher degree B-splines or more degrees of freedom if needed (via num_coefficients)

_setup_ffd_block(ffd_block, parameterization_solver, plot: bool = False)

Set up the wing ffd block.

_setup_ffd_parameterization(wing_geom_qts: WingGeometricQuantities, ffd_geometric_variables)

Set up the wing parameterization.

_setup_geometry(parameterization_solver, ffd_geometric_variables, plot=False)

Set up the wing geometry (mainly the FFD)

actuate(angle: Union[float, int, csdl_alpha.Variable], axis_location: float = 0.25, mesh_container: CADDEE_alpha.core.mesh.mesh.MeshContainer = None)

Actuate (i.e., rotate) the wing about an axis location at or behind the leading edge.

Parameters
anglefloat, int, or csdl.Variable

rotation angle (deg)

axis_locationfloat (default is 0.25)

location of actuation axis with respect to the leading edge; 0.0 corresponds the leading and 1.0 corresponds to the trailing edge

construct_ribs_and_spars(geometry: lsdo_geo.Geometry, top_geometry: lsdo_geo.Geometry = None, bottom_geometry: lsdo_geo.Geometry = None, num_ribs: int = None, spar_locations: numpy.ndarray = None, rib_locations: numpy.ndarray = None, LE_TE_interpolation=None, surf_index: int = 1000, offset: numpy.ndarray = np.array([0.0, 0.0, 0.23]), num_rib_pts: int = 20, plot_projections: bool = False, spar_function_space: lsdo_function_spaces.FunctionSpace = None, rib_function_space: lsdo_function_spaces.FunctionSpace = None, full_length_ribs: bool = False, finite_te: bool = True, export_wing_box: bool = False, export_half_wing: bool = False, spanwise_multiplicity: int = 1, exclute_te: bool = False, return_rib_points=False)

Construct ribs and spars for the given wing geometry.

Parameters
geometrylg.Geometry

The geometry object to which the ribs and spars will be added.

num_ribsint, optional

The number of ribs to be constructed. If not provided, it will be determined based on the rib_locations array.

spar_locationsnp.ndarray, optional

The locations of the spars along the wing span. If not provided, default values of [0.25, 0.75] will be used.

rib_locationsnp.ndarray, optional

The locations of the ribs along the wing span. If not provided, evenly spaced values between 0 and 1 will be used.

LE_TE_interpolationstr, optional

The method of interpolating the leading and trailing edge; This might be useful for swept and curved wing geometries. Default is None

surf_indexint, optional

The starting index for the surface functions in the geometry object. Default value is 1000.

offsetnp.ndarray, optional

The offset vector to be applied for projection. Default value is [0., 0., .23].

num_rib_ptsint, optional

The number of interpolation points to be used for each rib. Default value is 20.

plot_projectionsbool, optional

Whether to plot the projection results. Default value is False.

spar_function_spacefs.FunctionSpace, optional

The function space to be used for the spars. Defaults to a linear BSplineSpace.

rib_function_spacefs.FunctionSpace, optional

The function space to be used for the ribs. Defaults to a linear BSplineSpace.

full_length_ribsbool, optional

If true, the ribs will be extended to the root and tip of the wing. Default value is False.

finite_tebool, optional

If true, the trailing edge will have a finite thickness. Default value is True.

export_wing_boxbool, optional

If true, a water-tight wing box geometry will be exported to a .igs file. Default value is False.

class aircraft.components.wing.WingGeometricQuantities
center_chord: csdl_alpha.Variable
dihedral_angle_left: csdl_alpha.Variable
dihedral_angle_right: csdl_alpha.Variable
left_tip_chord: csdl_alpha.Variable
right_tip_chord: csdl_alpha.Variable
span: csdl_alpha.Variable
sweep_angle_left: csdl_alpha.Variable
sweep_angle_right: csdl_alpha.Variable
class aircraft.components.wing.WingParameters
AR: Union[float, int, csdl_alpha.Variable]
MAC: Union[float, None]
S_ref: Union[float, int, csdl_alpha.Variable]
S_wet: Union[float, int, csdl_alpha.Variable, None]
dihedral: Union[float, int, csdl_alpha.Variable]
incidence: Union[float, int, csdl_alpha.Variable]
root_twist_delta: Union[int, float, csdl_alpha.Variable, None]
span: Union[float, int, csdl_alpha.Variable]
sweep: Union[float, int, csdl_alpha.Variable]
taper_ratio: Union[float, int, csdl_alpha.Variable]
thickness_to_chord: Union[float, int, csdl_alpha.Variable] = 0.15
thickness_to_chord_loc: float = 0.3
tip_twist_delta: Union[int, float, csdl_alpha.Variable, None]