Index
AeroBeams.AD
AeroBeams.BLi
AeroBeams.BLo
AeroBeams.FD
AeroBeams.Indicial
AeroBeams.IndicialGust
AeroBeams.Inflow
AeroBeams.InitialVelocitiesUpdateOptions
AeroBeams.PointInertia
AeroBeams.QuasiSteady
AeroBeams.TableLookup
AeroBeams.ThinAirfoilTheory
AeroBeams.GU_frames_loader
AeroBeams.NASA_frames_loader
AeroBeams.Newton_solver
AeroBeams.WM_to_yrp
AeroBeams.add_initial_displacements_and_velocities_to_beam!
AeroBeams.add_loads_to_beam!
AeroBeams.add_point_inertias_to_beam!
AeroBeams.add_spring_to_beams!
AeroBeams.add_springs_to_beam!
AeroBeams.axial
AeroBeams.backward_extrapolation
AeroBeams.count_of_exceedance
AeroBeams.create_AeroSurface
AeroBeams.create_Airfoil
AeroBeams.create_BC
AeroBeams.create_BWB
AeroBeams.create_Beam
AeroBeams.create_Continuous1DGust
AeroBeams.create_Continuous1DSpaceGust
AeroBeams.create_Continuous2DSpaceGust
AeroBeams.create_DiscreteSpaceGust
AeroBeams.create_DynamicProblem
AeroBeams.create_EigenProblem
AeroBeams.create_FlapLink
AeroBeams.create_HealyBaselineFFWT
AeroBeams.create_HealyFFWT
AeroBeams.create_Helios
AeroBeams.create_HingeAxisConstraint
AeroBeams.create_Model
AeroBeams.create_NewtonRaphson
AeroBeams.create_OneMinusCosineGust
AeroBeams.create_Pazy
AeroBeams.create_PazyFFWT
AeroBeams.create_SMW
AeroBeams.create_SharpEdgedGust
AeroBeams.create_Spring
AeroBeams.create_SteadyProblem
AeroBeams.create_TDWing
AeroBeams.create_TrimLoadsLink
AeroBeams.create_TrimProblem
AeroBeams.create_UnitsSystem
AeroBeams.create_conventional_HALE
AeroBeams.create_flapped_Airfoil
AeroBeams.frequency_of_exceedance
AeroBeams.gauss_legendre7
AeroBeams.geometrical_properties_Pazy
AeroBeams.get_FFT_and_PSD
AeroBeams.inertia_matrix
AeroBeams.isotropic_stiffness_matrix
AeroBeams.mode_tracking
AeroBeams.mode_tracking_hungarian
AeroBeams.moving_average
AeroBeams.plot_dynamic_deformation
AeroBeams.plot_mode_shapes
AeroBeams.plot_snapshots
AeroBeams.plot_steady_deformation
AeroBeams.plot_steady_outputs
AeroBeams.plot_time_outputs
AeroBeams.plot_undeformed_assembly
AeroBeams.quaternion_from_rotation_tensor
AeroBeams.remove_all_springs_from_beams!
AeroBeams.rms
AeroBeams.rotation_angle
AeroBeams.rotation_angle_limited
AeroBeams.rotation_between_WM
AeroBeams.rotation_parameters_Rodrigues
AeroBeams.rotation_parameters_WM
AeroBeams.rotation_tensor_E213
AeroBeams.rotation_tensor_E231
AeroBeams.rotation_tensor_E313
AeroBeams.rotation_tensor_E321
AeroBeams.rotation_tensor_WM
AeroBeams.round_off!
AeroBeams.scaled_rotation_parameters
AeroBeams.set_motion_basis_A!
AeroBeams.solve!
AeroBeams.solve_eigen!
AeroBeams.standard_atmosphere
AeroBeams.tilde
AeroBeams.tip_loss_function_Pazy
AeroBeams.typical_section_data
AeroBeams.update_Airfoil_params!
AeroBeams.update_beam!
AeroBeams.update_model!
AeroBeams.yrp_from_rotation_tensor
AeroBeams.yrp_to_WM
Public API
Creating an aerodynamic derivatives solver
AeroBeams.AD
— TypeAD (Automatic Differentiation) DerivationMethod composite type
AeroBeams.FD
— TypeFD (Finite Differences) DerivationMethod composite type
Fields
- method::FiniteDifferenceMethod
Creating an aerodynamic solver
AeroBeams.QuasiSteady
— TypeQuasiSteady AeroSolver composite type
AeroBeams.Indicial
— TypeIndicial AeroSolver composite type
AeroBeams.BLi
— TypeIncompressible modified Beddoes-Leishman AeroSolver composite type
AeroBeams.BLo
— TypeOriginal Beddoes-Leishman AeroSolver composite type
AeroBeams.Inflow
— TypeInflow AeroSolver composite type
AeroBeams.TableLookup
— TypeTableLookup FlapAeroSolver composite type
AeroBeams.ThinAirfoilTheory
— TypeThinAirfoilTheory FlapAeroSolver composite type
AeroBeams.IndicialGust
— TypeIndicialGust GustAeroSolver composite type
Creating an airfoil
AeroBeams.create_Airfoil
— Functioncreate_Airfoil(; kwargs...)
Airfoil constructor
Arguments
name::String
: name of the airfoilRe::Real
: Reynolds numberMa::Real
: Mach numberU::Real
: relative airspeedb::Real
: semichord
AeroBeams.create_flapped_Airfoil
— Functioncreate_flapped_Airfoil(; kwargs...)
Airfoil constructor (with a trailing-edge flap)
Arguments
name::String
: name of the airfoilflapSiteID::Int64
: flap site IDRe::Real
: Reynolds numberMa::Real
: Mach numberU::Real
: relative airspeedb::Real
: semichord
AeroBeams.update_Airfoil_params!
— Functionupdate_Airfoil_params!(airfoil::Airfoil; kwargs...)
Updates the airfoil parameters
Arguments
airfoil::Airfoil
Keyword arguments
Re::Real
: Reynolds numberMa::Real
: Mach numberU::Real
: reference relative airspeedb::Real
: reference semichord
Creating an aerodynamic surface
AeroBeams.create_AeroSurface
— Functioncreate_AeroSurface(; kwargs...)
Aerodynamic surface constructor
Keyword arguments
solver::AeroSolver
: aerodynamic solver for pitch-plunge-induced loadsflapLoadsSolver::FlapAeroSolver
: aerodynamic solver for flap-induced loadsgustLoadsSolver::GustAeroSolver
: aerodynamic solver for gust-induced loadsderivationMethod::DerivationMethod
: method for calculation of aerodynamic derivativesairfoil::Airfoil
: airfoil sectionc::Union{<:Function,Real}
: chordΛ::Union{<:Function,Real}
: sweep angleφ::Union{<:Function,Real}
: twist anglenormSparPos::Union{<:Function,Float64}
: normalized position of the spar (beam reference line) on the chordnormFlapSpan::Union{Nothing,Vector{<:Real}}
: normalized position of the trailing-edge flap along the span (beam arclength)normFlapPos::Union{Nothing,Float64}
: normalized position of the trailing-edge flap hinge on the chordδIsTrimVariable::Bool
: flag for trailing-edge deflection being a trim variableδ::Union{Nothing,<:Function,Real}
: trailing-edge deflection [rad]flapSiteID::Union{Nothing,Int64}
: trailing-edge flap site IDupdateAirfoilParameters::Bool
: flag to update airfoil parameters with local airspeedhasTipCorrection::Bool
: flag to employ a tip correction on aerodynamic coefficientstipLossFunction::String
: respective tip loss functiontipLossDecayFactor::Float64
: respective tip loss factorsmallAngles::Bool
: flag to employ small angles approximation on the calculation of the angle of attackhasInducedDrag::Bool
: flag to include induced drag generated by the lifting surfacehasSymmetricCounterpart::Bool
: flag to indicate the surface has a symmetric counterpart (for the computation of aspect ratio)
Creating an atmosphere
AeroBeams.standard_atmosphere
— Functionstandard_atmosphere(altitude::Real)
Atmosphere constructor based on the International Standard Atmosphere (https://en.wikipedia.org/wiki/InternationalStandardAtmosphere)
Arguments
altitude::Real
: altitude
Creating boundary conditions
AeroBeams.create_BC
— Functioncreate_BC(; kwargs...)
BC constructor
Keyword arguments
name::String
: name of the BCbeam::Beam
: beam at which the BC is appliednode::Int64
: node of the beam at which the BC is appliedtypes::Vector{String}
= types of BCs applied to the node (generalized forces and displacements)values
: corresponding values of the applied BCs (constants or functions of time)toBeTrimmed::Union{BitVector,Vector{Bool}}
: TF on whether the BC is to be trimmed
Creating a beam
AeroBeams.create_Beam
— Functioncreate_Beam(; kwargs...)
Beam constructor
Keyword Arguments
name::String
: name of the beamlength::Real
: (arc)length of the beamrotationParametrization::String
: type of rotation parametrization to define basis bp0::Vector{<:Real}
: rotation parameters from basis A to basis bk::Union{Vector{<:Real},<:Function}
: undeformed beam's curvatures per unit lengthinitialPosition::Vector{<:Real}
: initial position of the beam's first node relative to the beam's origin (which may be another beam's node)nElements::Int64
: number of elements for discretizationnormalizedNodalPositions::Vector{Float64}
: normalized nodal positions of beam elementsS::Vector{<:Matrix{<:Real}}
: array of sectional stiffness matricesI::Vector{<:Matrix{<:Real}}
: array of sectional inertia matricesconnectedBeams::Union{Nothing,Vector{Beam}}
: array of beams to which this beam is connected (a non-recursive property)connectedNodesThis::Vector{Int64}
: nodes of this beam which are connected to other beams' nodesconnectedNodesOther::Vector{Int64}
: respective nodes of the other beamspointInertias::Vector{PointInertia}
: attached point inertiashingedNodes::Vector{Int64}
: nodes with a hingehingedNodesDoF::Union{Vector{Vector{Bool}},Vector{BitVector}}
: respective hinged degrees-of-freedomu0_of_x1::Union{Vector{<:Real},<:Function,Nothing}
: initial displacement (resolved in the undeformed beam basis, b) of the beam as a function of its arclength coordinate (x1)p0_of_x1::Union{Vector{<:Real},<:Function,Nothing}
: initial rotation parameters (resolved in the undeformed beam basis, b) of the beam as a function of its arclength coordinate (x1)udot0_of_x1::Union{Vector{<:Real},<:Function,Nothing}
: initial displacement's rates (resolved in the undeformed beam basis, b) of the beam as a function of its arclength coordinate (x1)pdot0_of_x1::Union{Vector{<:Real},<:Function,Nothing}
: initial rotation parameters' rates (resolved in the undeformed beam basis, b) of the beam as a function of its arclength coordinate (x1)f_A_of_x1t::Union{Nothing,<:Function}
: distributed dead forces initially resolved in basis A, as a function of the beam arclength coordinate (x1) and time (t)m_A_of_x1t::Union{Nothing,<:Function}
: distributed dead moments initially resolved in basis A, as a function of the beam arclength coordinate (x1) and time (t)f_b_of_x1t::Union{Nothing,<:Function}
: distributed dead forces initially resolved in basis b, as a function of the beam arclength coordinate (x1) and time (t)m_b_of_x1t::Union{Nothing,<:Function}
: distributed dead moments initially resolved in basis b, as a function of the beam arclength coordinate (x1) and time (t)ff_A_of_x1t::Union{Nothing,<:Function}
: distributed follower forces initially resolved in basis A, as a function of the beam arclength coordinate (x1) and time (t)mf_A_of_x1t::Union{Nothing,<:Function}
: distributed moments forces initially resolved in basis A, as a function of the beam arclength coordinate (x1) and time (t)ff_b_of_x1t::Union{Nothing,<:Function}
: distributed follower forces initially resolved in basis b, as a function of the beam arclength coordinate (x1) and time (t)mf_b_of_x1t::Union{Nothing,<:Function}
: distributed follower moments initially resolved in basis b, as a function of the beam arclength coordinate (x1) and time (t)aeroSurface::Union{Nothing,AeroSurface}
: attached aerodynamic surfacesprings::Vector{Spring}
: array of attached springs
AeroBeams.update_beam!
— Functionupdate_beam!(beam::Beam)
Validates and updates the beam construction
Arguments
beam::Beam
AeroBeams.add_point_inertias_to_beam!
— Functionadd_point_inertias_to_beam!(beam::Beam; inertias::Vector{PointInertia})
Adds point inertias to the beam
Arguments
beam::Beam
Keyword arguments
inertias::Vector{PointInertia}
AeroBeams.add_loads_to_beam!
— Functionadd_loads_to_beam!(beam::Beam; loadTypes::Vector{String},loadFuns::Vector{<:Function})
Adds loads to the beam
Arguments
beam::Beam
Keyword arguments
loadTypes::Vector{String}
loadFuns::Vector{<:Function}
AeroBeams.add_initial_displacements_and_velocities_to_beam!
— Functionadd_initial_displacements_and_velocities_to_beam!(beam::Beam; conditionTypes::Vector{String},conditionFuns::Vector{<:Function})
Adds initial generalized displacements and velocities to the beam
Arguments
beam::Beam
Keyword arguments
conditionTypes::Vector{String}
conditionFuns::Vector{<:Function}
AeroBeams.add_springs_to_beam!
— Functionadd_springs_to_beam!(; beam::Beam,springs::Vector{Spring})
Adds simply-attached springs to a beam
Keyword arguments
beam::Beam
springs::Vector{Spring}
AeroBeams.add_spring_to_beams!
— Functionadd_spring_to_beams!(; beams::Vector{Beam},spring::Spring)
Adds a doubly-attached spring to the beams
Keyword arguments
beams::Vector{Beam}
spring::Spring
AeroBeams.remove_all_springs_from_beams!
— Functionremove_all_springs_from_beam!(; beams::Vector{Beam})
Removes all springs attached to the beams
Keyword arguments
beams::Vector{Beam}
Creating a gust
AeroBeams.create_SharpEdgedGust
— Functioncreate_SharpEdgedGust(; kwargs...)
Creates a sharp-edged gust
Keyword arguments
initialTime::Real
: time when the gust beginsduration::Real
: duration of the gustconvectiveVelocity::Real
: convective velocity of the gust (in longitudinal direction)verticalVelocity::Real
: peak vertical velocity of the gust (in lift direction)p::Vector{<:Real}
: Euler rotation parameters (3-2-1 sequence) from the inertial basis to the gust basis
AeroBeams.create_OneMinusCosineGust
— Functioncreate_OneMinusCosineGust(; kwargs...)
Creates a one-minus-cosine gust
Keyword arguments
initialTime::Real
: time when the gust beginsduration::Real
: duration of the gustconvectiveVelocity::Real
: convective velocity of the gust (in longitudinal direction)verticalVelocity::Real
: peak vertical velocity of the gust (in lift direction)p::Vector{<:Real}
: Euler rotation parameters (3-2-1 sequence) from the inertial basis to the gust basis
AeroBeams.create_Continuous1DGust
— Functioncreate_Continuous1DGust(; kwargs...)
Creates a continuous 1D gust
Keyword arguments
spectrum::String
: spectrum of the PSD: von Kármán ("vK") or Dryden ("Dryden")generationMethod::String
: method for generation of gust velocity ("sinusoids" or "whiteNoise")initialTime::Real
: time when the gust beginsduration::Real
: duration of the gustgenerationDuration::Real
: duration of the gust considered for its generationcomponents::Vector{Int}
: components of gust velocity to considerL::Real
: turbulence length scale [m]ωmin::Real
: minimum frequency of the PSD [rad/s]ωmax::Real
: maximum frequency of the PSD [rad/s]Uref::Real
: reference airspeedconvectiveVelocity::Real
: convective velocity of the gust (in longitudinal direction)σ::Real
: turbulence intensity (RMS) of gust velocity componentp::Vector{<:Real}
: Euler rotation parameters (3-2-1 sequence) from the inertial basis to the gust basisseed::Int64
: seed for random numbers generation (reproducibility)plotPSD::Bool
: flag to plot the PSD
AeroBeams.create_DiscreteSpaceGust
— Functioncreate_DiscreteSpaceGust(; kwargs...)
Creates a discrete space gust
Keyword arguments
type::String
: type of gustgustLength::Real
: length of the gust (in longitudinal direction)gustWidth::Real
: width of the gust (in spanwise direction)convectiveVelocity::Real
: convective velocity of the gust (in longitudinal direction)verticalVelocity::Real
: peak vertical velocity of the gust (in lift direction)c0::Vector{<:Real}
: position vector of the front of the gust, resolved in the inertial basisp::Vector{<:Real}
: Euler rotation parameters (3-2-1 sequence) from the inertial basis to the gust basis
AeroBeams.create_Continuous1DSpaceGust
— Functioncreate_Continuous1DSpaceGust(; kwargs...)
Creates a continuous 1D space gust
Keyword arguments
spectrum::String
: spectrum of the PSD: von Kármán ("vK") or Dryden ("Dryden")gustLength::Real
: length of the gust (in longitudinal direction)N::Int64
: number of nodes for length discretizationL::Real
: turbulence length scaleσ::Real
: turbulence intensity (RMS) of gust velocity componentsc0::Vector{<:Real}
: position vector of the front of the gust, resolved in the inertial basisp::Vector{<:Real}
: Euler rotation parameters (3-2-1 sequence) from the inertial basis to the gust basisseed::Int64
: seed for random numbers generation (reproducibility)plotPSD::Bool
: flag to plot the PSD
AeroBeams.create_Continuous2DSpaceGust
— Functioncreate_Continuous2DSpaceGust(; kwargs...)
Creates a continuous 2D space gust
Keyword arguments
spectrum::String
: spectrum of the PSD: von Kármán ("vK") or Dryden ("Dryden")gustLength::Real
: length of the gust (in longitudinal direction)gustWidth::Real
: width of the gust (in lateral direction)Nx::Int64
: number of nodes for length discretizationNy::Int64
: number of nodes for width discretizationL::Real
: turbulence length scaleσ::Real
: turbulence intensity (RMS) of gust velocity componentc0::Vector{<:Real}
: position vector of the front of the gust, resolved in the inertial basisp::Vector{<:Real}
: Euler rotation parameters (3-2-1 sequence) from the inertial basis to the gust basisseed::Int64
: seed for random numbers generation (reproducibility)
Creating a link
AeroBeams.create_TrimLoadsLink
— Functioncreate_TrimLoadsLink(; masterBC::BC,slaveBCs::Vector{BC})
Trim loads link constructor (a link between trim loads so that they are equal)
Keyword arguments
masterBC::BC
: master BCslaveBCs::Vector{BC}
: slave BCs
AeroBeams.create_FlapLink
— Functioncreate_FlapLink(; kwargs...)
Flap link constructor (a link between flapped surfaces)
Keyword arguments
masterBeam::Beam
: beam of the master surfaceslaveBeams::Vector{Beam}
: beams of the slave surfacesδMultipliers::Vector{<:Real}
: multiplication factors of flap deflection in slave surfaces relative to the master surface
Creating a model
AeroBeams.create_Model
— Functioncreate_Model(; kwargs...)
Creates a model
Keyword arguments
name::String
: name of the modelunits::create_UnitsSystem
: units systembeams::Vector{Beam}
: beams in the assemblyinitialPosition::Vector{<:Real}
: initial position vector of the first node of the first beam, resolved in the inertial frame IgravityVector::Vector{<:Real}
: gravity vectorBCs::Vector{BC}
: boundary condtionsp_A0::Vector{Float64}
: initial rotation parameters that bring basis I to basis Au_A::Union{Vector{<:Real},<:Function,Nothing}
: displacement of basis A relative to basis Iv_A::Union{Vector{<:Real},<:Function,Nothing}
: velocity of basis A relative to basis Iω_A::Union{Vector{<:Real},<:Function,Nothing}
: angular velocity of basis A relative to basis Ivdot_A::Union{Vector{<:Real},<:Function,Nothing}
: acceleration of basis A relative to basis Iωdot_A::Union{Vector{<:Real},<:Function,Nothing}
: angular acceleration of basis A relative to basis Ialtitude::Union{Nothing,Real}
: altidudeatmosphere::Union{Nothing,Atmosphere}
: atmospheregust::Union{Nothing,Gust}
: gusttrimLoadsLinks::Vector{TrimLoadsLink}
: links between trim loadsflapLinks::Vector{FlapLink}
: links between flapped surfaceshingeAxisConstraints::Vector{HingeAxisConstraint}
: hinge axis constraints
AeroBeams.update_model!
— Functionupdate_model!(model::Model)
Updates the model with its current settings
Arguments
- model::Model
AeroBeams.set_motion_basis_A!
— Functionset_motion_basis_A!(; kwargs...)
Sets the motion of basis A into the model
Keyword arguments
model::Model
: modelu_A::Union{Vector{<:Real},<:Function,Nothing}
: displacement of basis A relative to basis Iv_A::Union{Vector{<:Real},<:Function,Nothing}
: velocity of basis A relative to basis Iω_A::Union{Vector{<:Real},<:Function,Nothing}
: angular velocity of basis A relative to basis Ivdot_A::Union{Vector{<:Real},<:Function,Nothing}
: acceleration of basis A relative to basis Iωdot_A::Union{Vector{<:Real},<:Function,Nothing}
: angular acceleration of basis A relative to basis I
Creating a point inertia
AeroBeams.PointInertia
— TypePointInertia composite type
Fields
elementID::Int64
: local element ID to which the point inertia is attachedmass::Real
: massη::Vector{Real}
: position relative to element's midpoint's reference lineIxx::Real
: mass moment of inertia about the x1-axisIyy::Real
: mass moment of inertia about the x2-axisIzz::Real
: mass moment of inertia about the x3-axisIxy::Real
: mass product of inertia with respect to the x1-axis and x2-axisIxz::Real
: mass product of inertia with respect to the x1-axis and x3-axisIyz::Real
: mass product of inertia with respect to the x2-axis and x3-axisinertiaMatrix::Union{Matrix{Real},Matrix{Nothing}}
: mass moment of inertia matrix (tensor)
Creating a hinge axis constraint
AeroBeams.create_HingeAxisConstraint
— FunctionHingeAxisConstraint(; kwargs...)
Hinge axis constraint constructor
Keyword arguments
beam::Beam
: beamlocalHingeAxis::Vector{<:Real}
: three-element vector defining the hinge axis, resolved in the undeformed (b) basis of the beampHValue::Union{Real,Nothing}
: constrained value for the rotation at the hingesolutionMethod::String
: solution method for the constraint ("addedResidual" or "appliedMoment")
Creating and solving a problem
AeroBeams.InitialVelocitiesUpdateOptions
— TypeInitialVelocitiesUpdateOptions composite type
Defines variables for the update of the initial velocities states
Fields
Δt::Real
: time stepmaxIter::Int64
: maximum number of iterationsrelaxFactor::Float64
: relaxation factortol::Float64
: convergence tolerancedisplayProgress::Bool
: flag to display progress
AeroBeams.create_SteadyProblem
— Functioncreate_SteadyProblem(; kwargs...)
Steady problem constructor
Keyword arguments
model::Model
: modelsystemSolver::systemSolver
: nonlinear system solvergetLinearSolution::Bool
: flag to solve for linear structural solutionx0::Vector{Float64}
: initial states
AeroBeams.create_TrimProblem
— Functioncreate_TrimProblem(; kwargs...)
Trim problem constructor
Keyword arguments
model::Model
: modelsystemSolver::systemSolver
: nonlinear system solvergetLinearSolution::Bool
: flag to solve for linear structural solutiongetInertiaMatrix::Bool
: flag to compute inertia matrixx0::Vector{Float64}
: initial states
AeroBeams.create_EigenProblem
— Functioncreate_EigenProblem(; kwargs...)
Eigen problem constructor
Keyword arguments
model::Model
: modelsystemSolver::systemSolver
: nonlinear system solvergetLinearSolution::Bool
: flag to solve for linear structural solutionnModes::Int64=Inf64
: number of modes to be computedfrequencyFilterLimits::Vector{Float64}
: limits of the frequency filternormalizeModeShapes::Bool
: flag to normalize mode shapesx0::Vector{Float64}
: initial statesrefTrimProblem::Union{Nothing,TrimProblem}
: reference trim problem containing steady solution
AeroBeams.create_DynamicProblem
— Functioncreate_DynamicProblem(; kwargs...)
Dynamic problem constructor
Keyword arguments
model::Model
: modelsystemSolver::systemSolver
: nonlinear system solvergetLinearSolution::Bool
: flag to solve for linear structural solutioninitialTime::Real
: initial timeΔt::Union{Nothing,Real}
: time stepfinalTime::Union{Nothing,Real}
: final timetimeVector::Union{Nothing,Vector{Float64}}
: time vectoradaptableΔt::Bool
: flag for adaptable time stepminΔt::Union{Nothing,Real}
: minimum time step (when adaptable)maxΔt::Union{Nothing,Real}
: maximum time step (when adaptable)δb::Float64
: discontinuities boundary convergence normskipInitialStatesUpdate::Bool
: flag to skip update of initial statesinitialVelocitiesUpdateOptions::InitialVelocitiesUpdateOptions
: options for the initial velocities updatetrackingTimeSteps::Bool
: flag to track time step solutionstrackingFrequency::Int64
: frequency of time steps in which to track solutiondisplayProgress::Bool
: flag to display progressdisplayFrequency::Int64
: frequency of time steps in which to display progressx0::Vector{Float64}
: initial states
AeroBeams.solve!
— Functionsolve!(problem::Problem)
Solves a problem
Arguments
- problem::Problem
AeroBeams.solve_eigen!
— Functionsolve_eigen!(problem::EigenProblem)
Solves an eigenproblem
Arguments
problem::EigenProblem
Creating a sample model
AeroBeams.geometrical_properties_Pazy
— Functiongeometrical_properties_Pazy()
Returns the fixed geometrical (and discretization) properties of the Pazy wing
AeroBeams.tip_loss_function_Pazy
— Functiontip_loss_function_Pazy(type::String,θ::Real,U::Real,Λ::Real)
Computes the tip loss function for the Pazy wing's tip correction function
Arguments
type::String
: tip loss function typeθ::Real
: root pitch angle [rad]U::Real
: airspeed [m/s]Λ::Real
: sweep angle [rad]
AeroBeams.typical_section_data
— Functiontypical_section_data(name::String)
Returns the data of the typical section of given name
Arguments
name::String
: name of the typical section
Outputs
a
: position of elastic axis (semichords aft of midchord)e
: position of mass axis (semichords aft of midchord)μ
: mass ratiorα²
: squared radius of gyration in pitchσ
: ratio of plunge to pitch frequency in vacuoωα
: pitch frequency in vacuo [rad/s]c
: chord [m]
AeroBeams.create_Pazy
— Functioncreate_Pazy(; kwargs...)
Creates the Pazy wing
Returns the wing model and geometrical properties
Arguments
aeroSolver::AeroSolver
: aerodynamic solvergustLoadsSolver::GustAeroSolver
: indicial gust loads solverderivationMethod::DerivationMethod
: method for aerodynamic derivativeswithSkin::Bool
: flag for skin onsweepStructuralCorrections::Bool
: flag to apply ad hoc structural corrections on sectional stiffness matrix with sweep angleupdateAirfoilParameters::Bool
: flag to update airfoil parameters with airspeedupright::Bool
: flag to set the wing in the upright positionairfoil::Airfoil
: airfoil sectionθ::Real
: pitch angle at the root [rad]Λ::Real
: sweep angle [rad]hasTipCorrection::Bool
: flag for aerodynamic tip correctionGAy::Real
: shear stiffness in the x2 directionGAz::Real
: shear stiffness in the x3 directionaltitude::Real
: altitudeg::Real
: acceleration of gravityairspeed::Real
: airspeedsmallAngles::Bool
: flag for small angles approximationtipLossType::String
: tip loss function typetipMass::Real
: mass of a point inertia added to the tip of the wingηtipMass::Vector{<:Real}
: position vector of the tip mass relative to the tip of the spar, resolved in the local basistipMassInertia::Matrix{<:Real}
: mass moment of inertia matrix of the tip massadditionalBCs::Vector{BC}
: additional BCs (beyond the clamp)gust::Union{Nothing,Gust}
: gust
AeroBeams.create_PazyFFWT
— Functioncreate_PazyFFWT(; kwargs...)
Creates a version of the Pazy wing with flared folding wingtip (FFWT)
Arguments
solutionMethod::String
: solution method for the constraint ("addedResidual" or "appliedMoment")airfoil::Airfoil
: airfoil sectionaeroSolver::AeroSolver
: aerodynamic solvergustLoadsSolver::GustAeroSolver
: indicial gust loads solverderivationMethod::DerivationMethod
: method for aerodynamic derivativeswithSkin::Bool
= flag for skin onsweepStructuralCorrections::Bool
: flag to apply ad hoc structural corrections on sectional stiffness matrix with sweep anglehasTipCorrection::Bool
: flag for aerodynamic tip correctionGAy::Real
: shear stiffness in the x2 directionGAz::Real
: shear stiffness in the x3 directionhingeNode::Int64
: hinge nodepitchAngle::Real
: pitch angle [rad]Λ::Real
: sweep angle [rad]foldAngle::Union{Real,Nothing}
: fold angle [rad]flareAngle::Real
: flare angle [rad]kSpring::Real
: stiffness of the spring around the hinge for folding (combination of OOP bending and twist)kIPBendingHinge::Real
: stiffness of the rotational spring around the hinge for in-plane bendingg::Real
: local acceleration of gravityaltitude::Real
: altitudeairspeed::Real
: local airspeedtipLossType::String
: tip loss function typeflightDirection::Vector{<:Real}
: flight direction vector, resolved in basis AtipMass::Real
: tip mass for passive flutter controlηtipMass::Vector{<:Real}
: position vector of the tip mass, relative to the spargust::Union{Nothing,Gust}=nothing
: gust
AeroBeams.create_SMW
— Functioncreate_SMW(; kwargs...)
Creates the 16 meters wing (SMW) of the conventional HALE aircraft described by Patil, Hodges and Cesnik in: Nonlinear Aeroelasticity and Flight Dynamics of HALE (2001)
Returns the wing model and its span
Arguments
aeroSolver::AeroSolver
: aerodynamic solverflapLoadsSolver::FlapAeroSolver
: aerodynamic solver for flap loadsgustLoadsSolver::GustAeroSolver
: indicial gust loads solverderivationMethod::DerivationMethod
: method for aerodynamic derivativesairfoil::Airfoil
: airfoil sectionθ::Real
: pitch angle [rad]k1::Real
: twisting curvaturek2::Real
: flapwise bending curvaturenElem::Int64
: number of elements for discretizationaltitude::Real
: altitudeairspeed::Real
: airspeedg::Real
: acceleration of gravitystiffnessFactor::Real
: stiffness factor for beam structural properties∞::Real
: value of rigid structural propertiesΨ::Real
: torsion-IP-bending stiffness coupling factortipF3::Union{Real,<:Function}
: tip dead transverse force applied at the tipcd0::Real
: parasite drag coefficient for the wingcnδ::Real
: cn vs δ slope for the wingcmδ::Real
: cm vs δ slope for the wingcdδ::Real
: cd vs δ slope for the winghasInducedDrag::Bool
: flag to include induced dragδAil::Union{Nothing,Real,<:Function}
: aileron deflectionadditionalBCs::Vector{BC}
: additional BCs (beyond the clamp and tip load)
AeroBeams.create_TDWing
— Functioncreate_TDWing(; kwargs...)
Creates the wing described by Tang and Dowell in: Experimental and Theoretical Study on Aeroelastic Response of High-Aspect-Ratio Wings (2001)
Returns the wing model
Arguments
aeroSolver::AeroSolver
: aerodynamic solvergustLoadsSolver::GustAeroSolver
: indicial gust loads solverderivationMethod::DerivationMethod
: method for aerodynamic derivativesupdateAirfoilParameters::Bool
: flag to update airfoil parameters with airspeedairfoil::Airfoil
: airfoil sectionθ::Real
: pitch anglenElem::Int64
: number of elements for discretizationaltitude::Real
: altitudeairspeed::Real
: airspeedg::Real
: acceleration of gravity∞::Real
: value of rigid structural properties
AeroBeams.create_Helios
— Functioncreate_Helios(; kwargs...)
Creates a model based on the flying-wing aircraft described by Patil and Hodges in: Flight Dynamics of Highly Flexible Flying Wings (2006)
Keyword arguments
altitude::Real
: altitudeaeroSolver::AeroSolver
: aerodynamic solvergustLoadsSolver::GustAeroSolver
: indicial gust loads solverderivationMethod::DerivationMethod
: method for aerodynamic derivativesg::Real
: local acceleration of gravitywingAirfoil::Airfoil
: airfoil section of the wingpodAirfoil::Airfoil
: airfoil section of the podsbeamPods::Bool
: flag to include podsstiffnessFactor::Real
: stiffness factor for the wing structure∞::Real
: value for rigid structural propertiesnElemStraightSemispan::Int64
: number of elements in the straight section of the semispannElemDihedralSemispan::Int64
: number of elements in the dihedral section of the semispannElemPod::Int64
: number of elements in the podspayloadPounds::Real
: payload, in poundsairspeed::Real
: local initial/trim airspeedδIsTrimVariable::Bool
: flag for flap deflection being a trim variablethrustIsTrimVariable::Bool
: flag for motors' thrust being a trim variableδ::Union{Nothing,Real,<:Function}
: flap deflectionthrust::Union{Real,<:Function}
: motors' thrustreducedChord::Bool
: flag to employ a reduced (7 ft) chordpayloadOnWing::Bool
: flag to set the payload on the wing's reference linewingRootAoA::Real
: root angle of attack for clamped wing model [rad]gust::Union{Nothing,Gust}
: gust
AeroBeams.create_conventional_HALE
— Functioncreate_conventional_HALE(; kwargs...)
Creates a model based on the conventional HALE aircraft described by Patil, Hodges and Cesnik in: Nonlinear Aeroelasticity and Flight Dynamics of HALE (2001)
Keyword arguments
altitude::Real
: altitudeaeroSolver::AeroSolver
: aerodynamic solverderivationMethod::DerivationMethod
: method for aerodynamic derivativesflapLoadsSolver::FlapAeroSolver
: aerodynamic solver for flap loadsgustLoadsSolver::GustAeroSolver
: indicial gust loads solverstabilizersAero::Bool
: flag for stabilizers with aerodynamic surfacesincludeVS::Bool
: flag to include a vertical stabilizer in the modelwAirfoil::Airfoil
: wing airfoil sectionsAirfoil::Airfoil
: stabilizers airfoil sectionnElemWing::Int64
: number of elements of the full wingnElemHorzStabilizer::Int64
: number of elements of the horizontal stabilizernElemTailBoom::Int64
: number of elements of the tail boomnElemVertStabilizer::Int64
: number of elements of the vertical stabilizer∞::Real=1e12
: value of rigid structural propertiesstiffnessFactor::Real
: stiffness factor for the wing structurek1::Real
: undeformed wing torsional curvaturek2::Real
: undeformed wing flapwise bending curvatureairspeed::Real
: local initial/trim airspeedδElevIsTrimVariable::Bool
: flag for elevator deflection being a trim variableδAilIsTrimVariable::Bool
: flag for aileron deflection being a trim variableδRuddIsTrimVariable::Bool
: flag for rudder deflection being a trim variablethrustIsTrimVariable::Bool
: flag for motors' thrust being a trim variableδElev::Union{Nothing,Real,<:Function}
: elevator deflectionδAil::Union{Nothing,Real,<:Function}
: aileron deflectionδRudd::Union{Nothing,Real,<:Function}
: rudder deflectionthrust::Union{Real,<:Function}
: motors' thrustg::Real
: local acceleration of gravitywingCd0::Real
: parasite drag coefficient for the wingwingcnδ::Real
: cn vs δ slope for the wingwingcmδ::Real
: cm vs δ slope for the wingwingcdδ::Real
: cd vs δ slope for the wingstabsCd0::Real
: parasite drag coefficient for the stabilizersstabscnδ::Real
: cn vs δ slope for the stabilizersstabscmδ::Real
: cm vs δ slope for the stabilizersstabscdδ::Real
: cd vs δ slope for the stabilizershasInducedDrag::Bool
: flag to include induced drag
AeroBeams.create_BWB
— Functioncreate_BWB(; kwargs...)
Creates a model based on the blended-wing-body described by Weihua Su's PhD thesis
Keyword arguments
altitude::Real
: altitudeaeroSolver::AeroSolver
: aerodynamic solvergustLoadsSolver::GustAeroSolver
: indicial gust loads solverderivationMethod::DerivationMethod
: method for aerodynamic derivatives∞::Real=1e12
: value of rigid structural propertiesstiffnessFactor::Real
: stiffness factor for the wing structure- airspeed::Real = local initial/trim airspeed
δElevIsTrimVariable::Bool
: flag for elevator deflection being a trim variablethrustIsTrimVariable::Bool
: flag for motors' thrust being a trim variableδElev::Union{Nothing,Real,<:Function}
: elevator deflectionthrust::Union{Real,<:Function}
: motors' thrustg::Real
: local acceleration of gravityupdateAirfoilParameters::Bool
: flag to update airfoil parameters with airspeedhasTipCorrection::Bool
: flag to employ aerodynamic tip correctiontipLossDecayFactor::Real
: tip loss decay factor
AeroBeams.create_HealyFFWT
— Functioncreate_HealyFFWT(; kwargs...)
Creates a version of Healy's wing with flared folding wingtip (FFWT). See Healy's PhD thesis, chapter 7.
Arguments
solutionMethod::String
: solution method for the constraint ("addedResidual" or "appliedMoment")airfoil::Airfoil
: airfoil sectionaeroSolver::AeroSolver
: aerodynamic solvergustLoadsSolver::GustAeroSolver
: indicial gust loads solverderivationMethod::DerivationMethod
: method for aerodynamic derivativeshasTipCorrection::Bool
: flag for aerodynamic tip correctiontipLossDecayFactor::Real
: tip loss decay factor, in case hasTipCorrection is truepitchAngle::Real
: root pitch angle [rad]wingtipTwist::Real
: wingtip twist angle [rad]foldAngle::Union{Real,Nothing}
: fold angle [rad]flareAngle::Real
: flare angle [rad]kSpring::Real
: stiffness of the spring around the hinge for folding (combination of OOP bending and twist)kIPBendingHinge::Real
: stiffness of the rotational spring around the hinge for in-plane bendingg::Real
: local acceleration of gravityaltitude::Real
: altitudeairspeed::Real
: local airspeedflightDirection::Vector{<:Real}
: flight direction vector, resolved on basis AnElementsInner::Int64
: number of elements for discretization of inner part of the wingnElementsFFWT::Int64
: number of elements for discretization of the wingtipgust::Union{Nothing,Gust}=nothing
: gust
AeroBeams.create_HealyBaselineFFWT
— Functioncreate_HealyBaselineFFWT(; kwargs...)
Creates a version of Healy's baseline wing with flared folding wingtip (FFWT). See Healy's PhD thesis, chapter 3.
Arguments
solutionMethod::String
: solution method for the constraint ("addedResidual" or "appliedMoment")airfoil::Airfoil
: airfoil sectionaeroSolver::AeroSolver
: aerodynamic solvergustLoadsSolver::GustAeroSolver
: indicial gust loads solverderivationMethod::DerivationMethod
: method for aerodynamic derivativeshasTipCorrection::Bool
: flag for aerodynamic tip correctiontipLossDecayFactor::Real
: tip loss decay factor, in case hasTipCorrection is truehingeConfiguration::String
: hinge hingeConfiguration ("free" or "locked")flareAngle::Real
: flare angle [rad]pitchAngle::Real
: root pitch angle [rad]foldAngle::Union{Real,Nothing}
: fold angle [rad]kSpringHinge::Real
: stiffness of the rotational spring around the hinge for folding (combination of OOP bending and twist)kIPBendingHinge::Real
: stiffness of the rotational spring around the hinge for in-plane bendingaltitude::Real
: altitudeairspeed::Real
: local airspeedg::Real
: local acceleration of gravitynElementsInner::Int64
: number of elements for discretization of inner part of the wingnElementsFFWT::Int64
: number of elements for discretization of the wingtipgust::Union{Nothing,Gust}=nothing
: gust
Creating a spring
AeroBeams.create_Spring
— Functioncreate_Spring(; kwargs...)
Creates a spring
Keyword arguments
basis::String
: basis on which stiffnesses are defined ("b" or "A")elementsIDs::Vector{Int64}
: local IDs of the element(s)' node(s) to which the spring is attachednodesSides::Vector{Int64}
: sides (1 or 2) of the node(s) to which the spring is attachedku::Vector{<:Real}
: translational stiffness vector, resolved in basis Akp::Vector{<:Real}
: rotational stiffness vector, resolved in basis A
Creating a system solver
AeroBeams.create_NewtonRaphson
— Functioncreate_NewtonRaphson(; kwargs...)
Newton-Raphson nonlinear system solver constructor
Keyword arguments
absoluteTolerance::Float64
: absolute convergence tolerancerelativeTolerance::Float64
: relative convergence tolerancemaximumIterations::Int64
: maximum number of iterationsdesiredIterations::Int64
: desired number of iterationsmaximumAbsoluteError::Real
: maximum absolute error for divergence detectionmaximumRelativeError::Real
: maximum relative error for divergence detectioninitialLoadFactor::Real
: initial load factorminimumLoadFactor::Float64
: minimum load factormaximumLoadFactorStep::Float64
: maximum load factor stepminimumLoadFactorStep::Float64
: minimum load factor stepρ::Real
: relaxation factor for trim variablestrackingLoadSteps::Bool
: flag to track partial load steps solutionsdisplayStatus::Bool
: flag to display statusminConvRateAeroJacUpdate::Real
: minimum convergence rate to skip computation of aerodynamic JacobiansminConvRateJacUpdate::Real
: minimum convergence rate to skip computation of structural JacobiansalwaysUpdateJacobian::Bool
: flag to update Jacobians on every iterationallowAdvanceThroughUnconvergedAeroStates::Bool
: flag to allow the advancement of the algorithm through unconverged aerodynamic statesaeroStatesResidualRatioThreshold::Float64
: threshold ratio of aerodynamic/total residuals in order to allow the above flagaeroStatesRelativeErrorThreshold::Float64
: threshold relative error in order to allow the above flag
Creating a units system
AeroBeams.create_UnitsSystem
— Functioncreate_UnitsSystem(; kwargs...)
Creates a system composed of length, force, angle, frequency and mass units (this is only for plotting purposes and does not influence calculations)
Keyword arguments
length::String
: length unitforce::String
: force unitangle::String
: angle unitfrequency::String
: frequency unitmass::String
: mass unit
Utilities
AeroBeams.round_off!
— Functionround_off!(x)
Rounds the array or number to input tolerance (defaults to machine epsilon)
Arguments
x
: array or numbertol
: tolerance
AeroBeams.rms
— Functionrms(x)
Computes the root mean square of an array
AeroBeams.tilde
— Functiontilde(v)
Computes the skew-symmetric matrix associated with a three-element vector
Arguments
v
: vector
AeroBeams.axial
— Functionaxial(R)
Computes the axial part of a 3x3 matrix
Arguments
R
: matrix
AeroBeams.gauss_legendre7
— Functiongauss_legendre7(f, a::Real, b::Real)
Computes the Gauss-Legendre quadrature (integral) for the vector-valued function f in the interval from a to b, using 7 points
Arguments
f
: functiona::Real
: lower limitb::Real
: upper limit
AeroBeams.isotropic_stiffness_matrix
— Functionisotropic_stiffness_matrix(; kwargs...)
Creates a 6x6 sectional stiffness matrix for a cross-section made of isotropic material
Arguments
∞
: value for rigid propertiesEA
: axial stiffnessGAy
: shear stiffness in the x2 directionGAz
: shear stiffness in the x3 directionGJ
: torsional stiffnessEIy
: bending stiffness in the x2 directionEIz
: bending stiffness in the x3 directiont2
: offset from reference line to tension center in the x2 directiont3
: offset from reference line to tension center in the x3 directions2
: offset from reference line to shear center in the x2 directions3
: offset from reference line to shear center in the x3 direction
AeroBeams.inertia_matrix
— Functioninertia_matrix(; kwargs...)
Creates a 6x6 sectional inertia matrix
Arguments
ρA
: mass per unit lengthρIy
: mass moment of inertia per unit length about the x2-axisρIz
: mass moment of inertia per unit length about the x3-axisρIs
: mass moment of inertia per unit length about the x1-axisρIyz
: mass product of inertia per unit lengthe2
: offset from reference line to center of gravity in the x2 directione3
: offset from reference line to center of gravity in the x3 direction
AeroBeams.rotation_tensor_E321
— Functionrotation_tensor_E321(p)
Computes the rotation tensor according to Euler parameters sequence 3-2-1
Arguments
p
: rotation parameters
AeroBeams.rotation_tensor_E213
— Functionrotation_tensor_E213(p)
Computes the rotation tensor according to Euler parameters sequence 2-1-3.
Arguments
p
: rotation parameters
AeroBeams.rotation_tensor_E231
— Functionrotation_tensor_E231(p)
Computes the rotation tensor according to Euler parameters sequence 2-3-1.
Arguments
p
: rotation parameters
AeroBeams.rotation_tensor_E313
— Functionrotation_tensor_E313(p)
Computes the rotation tensor according to Euler parameters sequence 3-1-3
Arguments
p
: rotation parameters
AeroBeams.rotation_tensor_WM
— Functionrotation_tensor_WM(p)
Computes the rotation tensor according to Wiener-Milenkovic parameters
Arguments
p
: rotation parameters
AeroBeams.scaled_rotation_parameters
— Functionscaled_rotation_parameters(p)
Returns the scaled (extended) Wiener-Milenkovic rotation parameters
Arguments
p
: rotation parameters
AeroBeams.rotation_angle
— Functionrotation_angle(p)
Computes the rotation angle given the Wiener-Milenkovic rotation parameters
Arguments
p
: rotation parameters
AeroBeams.rotation_angle_limited
— Functionrotation_angle_limited(p)
Computes the rotation angle (in the range -360 to 360 degrees) given the Wiener-Milenkovic rotation parameters
Arguments
p
: rotation parameters
AeroBeams.rotation_parameters_WM
— Functionrotation_parameters_WM(R)
Computes the Wiener-Milenkovic rotation parameters given a rotation tensor
Arguments
R
: rotation tensor
AeroBeams.rotation_parameters_Rodrigues
— Functionrotation_parameters_Rodrigues(R)
Computes the Rodrigues rotation parameters given a rotation tensor
Arguments
R
: rotation tensor
AeroBeams.yrp_from_rotation_tensor
— Functionyrp_from_rotation_tensor(R; ϵround=1e-10,ϵsingularity=1e-3,assumeNullYawInSingularity=true)
Computes the Euler angles from the sequence 3-2-1 (yaw, roll, pitch) given the rotation tensor
Arguments
R
: rotation tensor
Keyword arguments
ϵround
: tolerance for rounding off elements of R to zeroϵsingularity
: tolerance to consider singular caseassumeNullYawInSingularity
: flag to assume zero yaw angle in singularity
AeroBeams.quaternion_from_rotation_tensor
— Functionquaternion_from_rotation_tensor(R)
Computes the quaternion (Euler parameters) given a rotation tensor. Derived from Bauchau's book section 13.3.4.
Arguments
R
: rotation tensor
AeroBeams.WM_to_yrp
— FunctionWM_to_yrp(p)
Transforms Wiener-Milenkovic parameters to Euler parameters of sequence 3-2-1 (yaw, roll, pitch)
Arguments
p
: rotation parameters
AeroBeams.yrp_to_WM
— Functionyrp_to_WM(p)
Transforms Euler parameters of sequence 3-2-1 (yaw, roll, pitch) to Wiener-Milenkovic parameters
Arguments
p
: rotation parameters
AeroBeams.rotation_between_WM
— Functionrotation_between_WM(p1,p2)
Computes the Wiener-Milenkovic parameters describing the rotation from p1 to p2, i.e., p12 such that R2(p2) = R12(p12)*R1(p1)
Arguments
p1
: initial rotation parametersp2
: final rotation parameters
AeroBeams.mode_tracking
— Functionmode_tracking(controlParam::AbstractVector{<:Real},untrackedFreqs::Array{Vector{Float64}},untrackedDamps::Array{Vector{Float64}},untrackedEigenvectors::Array{Matrix{ComplexF64}})
Applies mode tracking based on eigenvectors match and a greedy search
Arguments
controlParam::AbstractVector{<:Real}
: vector of control parameteruntrackedFreqs::Array{Vector{Float64}}
: frequencies vectoruntrackedDamps::Array{Vector{Float64}}
: dampings vectoruntrackedEigenvectors::Array{Matrix{ComplexF64}}
: complex-valued eigenvectors
AeroBeams.mode_tracking_hungarian
— Functionmode_tracking_hungarian(controlParam::AbstractVector{<:Real},untrackedFreqs::Array{Vector{Float64}},untrackedDamps::Array{Vector{Float64}},untrackedEigenvectors::Array{Matrix{ComplexF64}}; showProgress::Bool=false,α::Real=1.0,β::Real=0.01,γ::Real=0.01)
Applies mode tracking based on eigenvectors match and frequency and damping continuity, with a Hungarian algorithm
Arguments
controlParam::AbstractVector{<:Real}
: vector of control parameteruntrackedFreqs::Array{Vector{Float64}}
: frequencies vectoruntrackedDamps::Array{Vector{Float64}}
: dampings vectoruntrackedEigenvectors::Array{Matrix{ComplexF64}}
: complex-valued eigenvectors
Keyword arguments:
showProgress::Bool
: flag to show progress over control parameterα::Real
: weight for eigenvector similarityβ::Real
: weight for frequency continuityγ::Real
: weight for damping continuity
AeroBeams.moving_average
— Functionmoving_average(v::AbstractVector{<:Real}, n::Int)
Computes the moving average of a series
Arguments
v::AbstractVector{<:Real}
: seriesn::Int
: moving average window size
AeroBeams.get_FFT_and_PSD
— Functionget_FFT_and_PSD(t::AbstractVector{<:Real},y::Vector{<:Real}; tol::Float=1e3*eps())
Computes the FFT and PSD of signal y(t)
Arguments
t::AbstractVector{<:Real}
: time signaly::Vector{<:Real}
: quantity signal
Keyword arguments
tol::AbstractFloat
: tolerance for time signal being equally spaced
AeroBeams.Newton_solver
— FunctionNewton_solver(f::Function, x0::AbstractArray; absTol::Real=1e-9, relTol::Real=1e-9, maxIter::Int=50)
Solves a nonlinear algebraic system of equations $( f(x) = 0 $) using the Newton-Raphson method.
Arguments
f::Function
: the nonlinear system of equations to solve. Must return a vector of residuals for a givenx
.x0::AbstractArray
: initial guess for the solution.
Keyword arguments
absTol::Real
: absolute tolerance for convergence (default:1e-9
).relTol::Real
: relative tolerance for convergence (default:1e-9
).maxIter::Int
: maximum number of iterations allowed (default:50
).
Returns
x::AbstractArray
: the solution vector, if convergence is achieved.converged::Bool
:true
if the solution converged within the given tolerances,false
otherwise.
AeroBeams.backward_extrapolation
— Functionbackward_extrapolation(v::AbstractVector{<:Real}; order::Int=5)
Estimates the values of an array from backward finite difference extrapolation
Arguments
v::AbstractVector{<:Real}
: vector
Keyword arguments
order::Int
: order of the approximation
AeroBeams.count_of_exceedance
— Functioncount_of_exceedance(time::AbstractVector{<:Real}, series::Vector{<:Real}, datum::Real, marker::Vector{<:Real})
Computes the count of exceedance of the quantities in the marker vector above the datum for the given time series
Keyword arguments
time::AbstractVector{<:Real}
: time vectorseries::Vector{<:Real}
: time seriesdatum::Real
: datum value for the time seriesmarker::Vector{<:Real}
: markers for the count of exceedance computation
AeroBeams.frequency_of_exceedance
— Functionfrequency_of_exceedance(timeLength::Real, count::Vector{<:Real})
Computes the frequency of exceedance
Keyword arguments
count::Vector{<:Real}
: count of exceedancetimeLength::Real
: length of time
AeroBeams.NASA_frames_loader
— FunctionNASA_frames_loader(frame::Union{Int,String})
Loads dynamic stall data from a frame of the NASA report (https://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/19830003778.pdf)
Arguments
frame::Union{Int,String}
: frame number
AeroBeams.GU_frames_loader
— FunctionGU_frames_loader(frame::Union{Int,String})
Loads dynamic stall data from a frame of the University of Glasgow (DOI:10.5525/gla.researchdata.464)
Arguments
frame::Union{Int,String}
: frame number
Visualizing the results
AeroBeams.plot_undeformed_assembly
— Functionplot_undeformed_assembly(model::Model; kwars...)
Plots the undeformed assembly of beams in the model
Arguments
model::Model
Keyword arguments
view::Tuple{Real,Real}
: view anglesequalAspectRatio::Bool
: flag to set equal aspect ratio plotplotNodes::Bool
: flag to plot nodesnodesColor=:black
: color of nodeslinesColor=:black
: color of lines (beams)
AeroBeams.plot_steady_deformation
— Functionplot_steady_deformation(problem::Problem; kwargs...)
Plots the initial and final deformed states for the model in the given problem
Arguments
problem::Problem
: problem
Keyword arguments
interactive::Bool
: flag for interactive plotplotBCs::Bool
: flag to plot BCsplotDistLoads::Bool
: flag to plot distributed loads (includes gravitational and aerodynamic loads)view::Union{Nothing,Tuple{Real,Real}}
: view anglesscale::Real
: displacements and rotations scalelw::Real
: linewidthcolorUndef
: color for undeformed assemblycolorDef
: color for deformed assemblyplotGrid::Bool
: flag to plot gridlegendPos
: legend positiontolPlane::Real
: displacement tolerance to plot as planeplotAeroSurf::Bool
: flag to plot aerodynamic surfacessurfα::Float64
: transparency factor of aerodynamic surfacesΔuDef::Vector{<:Real}
: displacement vector for first node of deformed assembly relative to the undeformed oneσ2plot::Vector{<:Real}
: (tentative) load factors to plotpartialLoadStepsLineStyle::Symbol
: linestyle for partial load stepsplotLimits::Union{Nothing,Tuple{Vector{<:Real},Vector{<:Real},Vector{<:Real}}}
: plot axis limitsshowScale::Bool
: flag to show scale on plotscalePos::Vector{<:Real}
: position of scale on plotsave::Bool
: flag to save the figuresavePath::String
: relative path on which to save the figure
AeroBeams.plot_steady_outputs
— Functionplot_steady_outputs(problem::Problem; kwargs...)
Plots outputs of a steady problem
Arguments
problem::Problem
: problem
Keyword arguments
outputs::Vector{String}
: list of outputsbeamGroups
: list of beams in each group for which arclengths are concatenatedlw::Real
: linewidthcolorScheme
: color schemelegendPos
: legend positionsave::Bool
: flag to save figuressaveFolder::String
: relative path of folder where to save figuresfigureExtension::String
: figure extension
AeroBeams.plot_mode_shapes
— Functionplot_mode_shapes(problem::EigenProblem; kwargs...)
Plots the mode shapes of the model in the given eigenproblem
Arguments
problem::EigenProblem
: problem
Keyword arguments
interactive::Bool
: flag for interactive plotplotBCs::Bool
: flag to plot BCsview::Union{Nothing,Tuple{Real,Real}}
: view anglesnModes::Union{Nothing,Int64}
: number of modes to plotscale::Real
: displacements and rotations scaleΔuDef::Vector{<:Real}
: displacement vector for first node of deformed assembly relative to the undeformed onefrequencyLabel::String
: option for frequency labellw::Real
: linewidthcolorSteady
: color for steadily deformed assemblymodalColorScheme
: color scheme for mode shapesplotAxes::Bool
: flag to plot axesplotGrid::Bool
: flag to plot gridplotLimits::Union{Nothing,Tuple{Vector{Int64},Vector{Int64}}}
= plot limitslegendPos
: legend positionmodeLabels::Union{Nothing,Vector{String}}
= labels for each modetolPlane::Real
: displacement tolerance to plot as planeplotAeroSurf
: flag to plot aerodynamic surfacessurfα::Float64
: transparency factor of aerodynamic surfacessave::Bool
: flag to save the figuresavePath::String
: relative path on which to save the figure
AeroBeams.plot_dynamic_deformation
— Functionplot_dynamic_deformation(problem::DynamicProblem; kwargs...)
Plots the animated deformation of the model in the given problem
Arguments
problem::DynamicProblem
: problem
Keyword arguments
refBasis::String
: reference observer basis for plotplotFrequency::Int64
: frequency of time steps to plotplotUndeformed::Bool
: flag to plot undeformed assemblyplotBCs::Bool
: flag to plot BCsplotDistLoads::Bool
: flag to plot distributed loads (includes gravitational and aerodynamic loads)view::Union{Nothing,Tuple{Real,Real}}
: view anglesfps::Real
: frame rate for gifscale::Real
: displacements and rotations scalefrequencyLabel::String
: option for frequency label (only frequency or frequency and damping)lw::Real
: linewidthcolorUndef
: color for undeformed assemblycolorDef
: color for deformed assemblyplotGrid::Bool
: flag to plot gridlegendPos
: legend positiontolPlane::Real
: displacement tolerance to plot as planeplotAeroSurf
: flag to plot aerodynamic surfacessurfα::Float64
: transparency factor of aerodynamic surfacesplotLimits::Union{Nothing,Tuple{Vector{<:Real},Vector{<:Real},Vector{<:Real}}}
: plot axis limitsfollowAssembly::Bool
: flag to adjust the plot limits in order to "follow" the assembly of beams with the movement of basis Asave::Bool
: flag to save the figuresavePath::String
: relative path on which to save the figureshowScale::Bool
: flag to show scale on plotshowTimeStamp::Bool
: flag to show time stamp on plotscalePos::Vector{<:Real}
: position of scale on plottimeStampPos::Vector{<:Real}
: position of time stamp on plotdisplayProgress::Bool
: flag to display progress of gif creation
AeroBeams.plot_time_outputs
— Functionplot_time_outputs(problem::Problem; kwargs...)
Plots outputs of a dynamic problem
Arguments
problem::Problem
: problem
Keyword arguments
- nodes::Vector{Tuple{Int64,Int64}} = global IDs of nodes for which to plot
- elements::Vector{Int64} = global IDs of elements for which to plot
- nodalOutputs::Vector{String} = nodal outputs to plot
elementalOutputs::Vector{String}
: elemental outputs to plotlw::Real
: linewidthcolorScheme
: color schemeshowLegend::Bool
: flag to show legendlegendPos
: legend positionsave::Bool
: flag to save figuressaveFolder::String
: relative path of folder where to save figuresfigureExtension::String
: figure extension
AeroBeams.plot_snapshots
— Functionplot_snapshots(problem::DynamicProblem; kwargs...)
Plots the deformed states for the model in the given dynamic problem at specified time instances (snapshots)
Arguments
problem::DynamicProblem
: problem
Keyword arguments
refBasis::String
: reference observer basis for plotplotBCs::Bool
: flag to plot BCsplotDistLoads::Bool
: flag to plot distributed loads (includes gravitational and aerodynamic loads)view::Union{Nothing,Tuple{Real,Real}}
: view anglesscale::Real
: displacements and rotations scalelw::Real
: linewidthls::Symbol
= line stylecolor
: colorplotAxes::Bool
: flag to plot axesplotGrid::Bool
: flag to plot gridtolPlane::Real
: displacement tolerance to plot as planeplotAeroSurf::Bool
: flag to plot aerodynamic surfacessurfα::Float64
: transparency factor of aerodynamic surfacessnapshots::Vector{<:Real}
: (tentative) time instances to plotplotLimits::Union{Nothing,Tuple{Vector{<:Real},Vector{<:Real},Vector{<:Real}}}
: plot axis limitsshowScale::Bool
: flag to show scale on plotscalePos::Vector{<:Real}
: position of scale on plotsave::Bool
: flag to save the figuresavePath::String
: relative path on which to save the figure