Private Functions

VortexStepMethod.calculate_AIC_matrices!Function
calculate_AIC_matrices!(body_aero::BodyAerodynamics, model::Model, 
                     core_radius_fraction::Float64,
                     va_norm_array::Vector{Float64}, 
                     va_unit_array::Matrix{Float64})

Calculate Aerodynamic Influence Coefficient matrices.

See also: BodyAerodynamics, Model

Returns: Tuple of (AIC_x, AIC_y, AIC_z) matrices

source
VortexStepMethod.calculate_panel_propertiesFunction
calculate_panel_properties(section_list::Vector{Section}, n_panels::Int,
                         aero_center_loc::Float64, control_point_loc::Float64)

Calculate geometric properties for each panel.

Arguments

  • section_list::Vector{Section}: List of Sections
  • n_panels::Int: Number of Panels
  • aero_center_loc::Float64: Location of the aerodynamic center
  • control_point_loc::Float64: Location of the control point

Returns:

PanelProperties containing vectors for each property

source
VortexStepMethod.calculate_inertia_tensorFunction
calculate_inertia_tensor(vertices, faces, mass, com)

Calculate the inertia tensor for a triangulated surface mesh, assuming a thin shell with uniform surface density.

Arguments

  • vertices: Vector of 3D point coordinates representing mesh vertices
  • faces: Vector of triangle indices, each defining a face of the mesh
  • mass: Total mass of the shell in kg
  • com: Center of mass coordinates [x,y,z]

Method

Uses the thin shell approximation where:

  1. Mass is distributed uniformly over the surface area
  2. Each triangle contributes to the inertia based on its area and position
  3. For each triangle vertex p, contribution to diagonal terms is: area * (sum(p²) - p_i²)
  4. For off-diagonal terms: area * (-p_i * p_j)
  5. Final tensor is scaled by mass/(3*total_area) to get correct units

Returns

  • 3×3 matrix representing the inertia tensor in kg⋅m²
source
VortexStepMethod.init!Function
init!(section::Section, LE_point, TE_point, aero_model=nothing, aero_data=nothing)

Function to update a Section in place.

source
init!(body_aero::BodyAerodynamics; 
     aero_center_location=0.25,
     control_point_location=0.75)

Initialize a BodyAerodynamics struct in-place by setting up panels and coefficients.

Arguments

  • body_aero::BodyAerodynamics: The structure to initialize

Keyword Arguments

  • aero_center_location=0.25: Chordwise location of aerodynamic center (0-1)
  • control_point_location=0.75: Chordwise location of control point (0-1)

Returns

nothing

source