aircraft.components.wing
Module Contents
Classes
The wing component class. |
|
- 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.ComponentThe 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]