aerosandbox.aerodynamics.aero_3D.linear_potential_flow#

Module Contents#

Classes#

LinearPotentialFlow

Helper class that provides a standard way to create an ABC using

Functions#

tall(array)

wide(array)

Attributes#

aerosandbox.aerodynamics.aero_3D.linear_potential_flow.tall(array)[source]#
aerosandbox.aerodynamics.aero_3D.linear_potential_flow.wide(array)[source]#
aerosandbox.aerodynamics.aero_3D.linear_potential_flow.immutable_dataclass[source]#
class aerosandbox.aerodynamics.aero_3D.linear_potential_flow.LinearPotentialFlow(airplane, op_point, xyz_ref=None, run_symmetric_if_possible=False, verbose=False, wing_model='vortex_lattice_all_horseshoe', fuselage_model='none', wing_options=None, fuselage_options=None)[source]#

Bases: aerosandbox.ExplicitAnalysis

Helper class that provides a standard way to create an ABC using inheritance.

Parameters:
class Elements[source]#

Bases: abc.ABC

Helper class that provides a standard way to create an ABC using inheritance.

parent_component: aerosandbox.AeroSandboxObject[source]#
start_index: int[source]#
end_index: int[source]#
__repr__()[source]#

Return repr(self).

abstract __len__()[source]#
class PanelElements[source]#

Bases: Elements, abc.ABC

Helper class that provides a standard way to create an ABC using inheritance.

front_left_vertices: aerosandbox.geometry.np.ndarray[source]#
back_left_vertices: aerosandbox.geometry.np.ndarray[source]#
back_right_vertices: aerosandbox.geometry.np.ndarray[source]#
front_right_vertices: aerosandbox.geometry.np.ndarray[source]#
__len__()[source]#
crosses()[source]#
cross_norms()[source]#
areas()[source]#
Return type:

aerosandbox.geometry.np.ndarray

normal_directions()[source]#
class WingHorseshoeVortexElements[source]#

Bases: PanelElements

Helper class that provides a standard way to create an ABC using inheritance.

trailing_vortex_direction: aerosandbox.geometry.np.ndarray[source]#
vortex_core_radius: float[source]#
left_vortex_vertices()[source]#
right_vortex_vertices()[source]#
vortex_centers()[source]#
vortex_bound_legs()[source]#
collocation_points()[source]#
get_induced_velocity_at_points(points, vortex_strengths, sum_across_elements=True)[source]#
Parameters:
  • points (aerosandbox.geometry.np.ndarray) –

  • vortex_strengths (aerosandbox.geometry.np.ndarray) –

  • sum_across_elements (bool) –

Return type:

Tuple[aerosandbox.geometry.np.ndarray]

class WingLiftingLineElements[source]#

Bases: WingHorseshoeVortexElements

Helper class that provides a standard way to create an ABC using inheritance.

abstract property collocation_points[source]#
CL0: aerosandbox.geometry.np.ndarray[source]#
CLa: aerosandbox.geometry.np.ndarray[source]#
class FuselagePrescribedSourceLineElements[source]#

Bases: Elements

Helper class that provides a standard way to create an ABC using inheritance.

front_vertices: aerosandbox.geometry.np.ndarray[source]#
back_vertices: aerosandbox.geometry.np.ndarray[source]#
strength: aerosandbox.geometry.np.ndarray[source]#
__len__()[source]#
__repr__()[source]#

Return repr(self).

discretization()[source]#

Returns: A list of dictionaries, where each item in the list represents a single element.

Each item in the list is a namedtuple (effectively, a dictionary), and one of the following types:

  • wing_vlm_element

  • wing_lifting_line_element

  • fuselage_prescribed_source_line

N_elements()[source]#
AIC()[source]#
abstract run()[source]#

Computes the aerodynamic forces.

Returns a dictionary with keys:

  • ‘F_g’ : an [x, y, z] list of forces in geometry axes [N]

  • ‘F_b’ : an [x, y, z] list of forces in body axes [N]

  • ‘F_w’ : an [x, y, z] list of forces in wind axes [N]

  • ‘M_g’ : an [x, y, z] list of moments about geometry axes [Nm]

  • ‘M_b’ : an [x, y, z] list of moments about body axes [Nm]

  • ‘M_w’ : an [x, y, z] list of moments about wind axes [Nm]

  • ‘L’ : the lift force [N]. Definitionally, this is in wind axes.

  • ‘Y’ : the side force [N]. This is in wind axes.

  • ‘D’ : the drag force [N]. Definitionally, this is in wind axes.

  • ‘l_b’, the rolling moment, in body axes [Nm]. Positive is roll-right.

  • ‘m_b’, the pitching moment, in body axes [Nm]. Positive is pitch-up.

  • ‘n_b’, the yawing moment, in body axes [Nm]. Positive is nose-right.

  • ‘CL’, the lift coefficient [-]. Definitionally, this is in wind axes.

  • ‘CY’, the sideforce coefficient [-]. This is in wind axes.

  • ‘CD’, the drag coefficient [-]. Definitionally, this is in wind axes.

  • ‘Cl’, the rolling coefficient [-], in body axes

  • ‘Cm’, the pitching coefficient [-], in body axes

  • ‘Cn’, the yawing coefficient [-], in body axes

Nondimensional values are nondimensionalized using reference values in the LinearPotentialFlow.airplane object.

Return type:

Dict[str, Any]

abstract get_induced_velocity_at_points(points)[source]#
Parameters:

points (aerosandbox.geometry.np.ndarray) –

Return type:

aerosandbox.geometry.np.ndarray

abstract get_velocity_at_points(points)[source]#
Parameters:

points (aerosandbox.geometry.np.ndarray) –

Return type:

aerosandbox.geometry.np.ndarray

abstract get_streamlines(seed_points=None, n_steps=300, length=None)[source]#
Parameters:
  • seed_points (aerosandbox.geometry.np.ndarray) –

  • n_steps (int) –

  • length (float) –

abstract draw(c=None, cmap=None, colorbar_label=None, show=True, show_kwargs=None, draw_streamlines=True, recalculate_streamlines=False, backend='pyvista')[source]#
Parameters:
  • c (aerosandbox.geometry.np.ndarray) –

  • cmap (str) –

  • colorbar_label (str) –

  • show (bool) –

  • show_kwargs (Dict) –

  • backend (str) –

abstract draw_three_view()[source]#
aerosandbox.aerodynamics.aero_3D.linear_potential_flow.geometry_folder[source]#