AerodynamicBody Class Reference

Kynema API: kynema::interfaces::components::AerodynamicBody Class Reference
Kynema API
A flexible multibody structural dynamics code for wind turbines
Loading...
Searching...
No Matches
kynema::interfaces::components::AerodynamicBody Class Reference

#include <aerodynamics.hpp>

Public Member Functions

 AerodynamicBody (const AerodynamicBodyInput &input, std::span< const Node > nodes)
 
template<typename DeviceType >
void CalculateMotion (const HostState< DeviceType > &state)
 
void SetInflowFromVector (std::span< const std::array< double, 3 > > inflow_velocity)
 
template<typename T >
void SetInflowFromFunction (const T &inflow_velocity_function)
 
void SetAerodynamicLoads (std::span< const std::array< double, 6 > > aerodynamic_loads)
 
void CalculateAerodynamicLoads (double fluid_density)
 
void CalculateNodalLoads ()
 
template<typename DeviceType >
void AddNodalLoadsToState (HostState< DeviceType > &state)
 

Public Attributes

size_t id
 
std::vector< size_t > node_ids
 IDs of the beam nodes in this aerodynamic body.
 
std::vector< std::array< double, 7 > > node_u
 Displacements of the beam nodes (copied from state based on node_ids)
 
std::vector< std::array< double, 6 > > node_v
 Velocities of the beam nodes (copied from state based on node_ids)
 
std::vector< std::array< double, 6 > > node_f
 Aerodynamic forces at the beam nodes with moment arm applied from aerodynamic center to reference axis (output)
 
std::vector< std::array< double, 7 > > xr_motion_map
 Initial position and orientation of beam reference axis at aerodynamic sections.
 
std::vector< std::array< double, 7 > > u_motion_map
 Displacements of beam reference axis at aerodynamic sections.
 
std::vector< std::array< double, 6 > > v_motion_map
 Velocities of beam reference axis at aerodynamic sections.
 
std::vector< std::array< double, 4 > > qqr_motion_map
 Total rotation quaternion of beam reference axis at aerodynamic sections (reference + displacement)
 
std::vector< std::array< double, 3 > > con_motion
 Vectors from reference axis to aerodynamic center at aerodynamic sections in reference configuration (includes twist)
 
std::vector< std::array< double, 3 > > x_motion
 Positions of aerodynamic centers at aerodynamic sections in global coordinates.
 
std::vector< std::array< double, 3 > > v_motion
 Velocities of aerodynamic centers at aerodynamic sections in global coordinates.
 
std::vector< std::array< double, 3 > > con_force
 Vectors from aerodynamic center to reference axis at aerodynamic sections in reference configuration (negative of con_motion)
 
std::vector< std::array< double, 3 > > v_inflow
 Inflow velocity at aerodynamic sections.
 
std::vector< std::array< double, 3 > > v_rel
 Relative velocity at aerodynamic sections (v_inflow - v_motion) (output)
 
std::vector< double > alpha
 Angle of attack at aerodynamic sections (output)
 
std::vector< double > cn
 Normal force coefficient at aerodynamic sections (perpendicular to airfoil chord) (output)
 
std::vector< double > ct
 Tangent force coefficient at aerodynamic sections (parallel to airfoil chord) (output)
 
std::vector< double > cm
 Moment coefficient at aerodynamic sections (output)
 
std::vector< std::array< double, 6 > > loads
 Aerodynamic loads (forces and moments) at aerodynamic centers (output)
 
std::vector< std::array< double, 3 > > ref_axis_moments
 Total moment about beam reference axis at aerodynamic sections (accounting for AC moment arm and aerodynamic moment) (output)
 
std::vector< double > twist
 Aerodynamic section twist.
 
std::vector< double > chord
 Aerodynamic section chord length.
 
std::vector< double > delta_s
 Aerodynamic section width for force/moment calculation.
 
std::vector< size_t > polar_size
 Number of points in each aerodynamic polar.
 
std::vector< std::vector< double > > aoa
 Angle of attack polar at each aerodynamic section.
 
std::vector< std::vector< double > > cl_polar
 Lift coefficient polar at each aerodynamic section.
 
std::vector< std::vector< double > > cd_polar
 Drag coefficient polar at each aerodynamic section.
 
std::vector< std::vector< double > > cm_polar
 Moment coefficient polar at each aerodynamic section.
 
std::vector< double > jacobian_xi
 Locations of aerodynamic section width boundaries along the beam (used for section width calculation)
 
std::vector< double > motion_interp
 Flattened matrix to interpolate motion from beam nodes to aerodynamic sections.
 
std::vector< double > shape_deriv_jac
 Flattened matrix to interpolate motion derivatives from beam nodes to aerodynamic sections (used for section width calculation)
 

Constructor & Destructor Documentation

◆ AerodynamicBody()

kynema::interfaces::components::AerodynamicBody::AerodynamicBody ( const AerodynamicBodyInput input,
std::span< const Node nodes 
)

Member Function Documentation

◆ AddNodalLoadsToState()

template<typename DeviceType >
void kynema::interfaces::components::AerodynamicBody::AddNodalLoadsToState ( HostState< DeviceType > &  state)
inline

◆ CalculateAerodynamicLoads()

void kynema::interfaces::components::AerodynamicBody::CalculateAerodynamicLoads ( double  fluid_density)

◆ CalculateMotion()

template<typename DeviceType >
void kynema::interfaces::components::AerodynamicBody::CalculateMotion ( const HostState< DeviceType > &  state)
inline

◆ CalculateNodalLoads()

void kynema::interfaces::components::AerodynamicBody::CalculateNodalLoads ( )

◆ SetAerodynamicLoads()

void kynema::interfaces::components::AerodynamicBody::SetAerodynamicLoads ( std::span< const std::array< double, 6 > >  aerodynamic_loads)

◆ SetInflowFromFunction()

template<typename T >
void kynema::interfaces::components::AerodynamicBody::SetInflowFromFunction ( const T &  inflow_velocity_function)
inline

◆ SetInflowFromVector()

void kynema::interfaces::components::AerodynamicBody::SetInflowFromVector ( std::span< const std::array< double, 3 > >  inflow_velocity)

Member Data Documentation

◆ alpha

std::vector<double> kynema::interfaces::components::AerodynamicBody::alpha

Angle of attack at aerodynamic sections (output)

◆ aoa

std::vector<std::vector<double> > kynema::interfaces::components::AerodynamicBody::aoa

Angle of attack polar at each aerodynamic section.

◆ cd_polar

std::vector<std::vector<double> > kynema::interfaces::components::AerodynamicBody::cd_polar

Drag coefficient polar at each aerodynamic section.

◆ chord

std::vector<double> kynema::interfaces::components::AerodynamicBody::chord

Aerodynamic section chord length.

◆ cl_polar

std::vector<std::vector<double> > kynema::interfaces::components::AerodynamicBody::cl_polar

Lift coefficient polar at each aerodynamic section.

◆ cm

std::vector<double> kynema::interfaces::components::AerodynamicBody::cm

Moment coefficient at aerodynamic sections (output)

◆ cm_polar

std::vector<std::vector<double> > kynema::interfaces::components::AerodynamicBody::cm_polar

Moment coefficient polar at each aerodynamic section.

◆ cn

std::vector<double> kynema::interfaces::components::AerodynamicBody::cn

Normal force coefficient at aerodynamic sections (perpendicular to airfoil chord) (output)

◆ con_force

std::vector<std::array<double, 3> > kynema::interfaces::components::AerodynamicBody::con_force

Vectors from aerodynamic center to reference axis at aerodynamic sections in reference configuration (negative of con_motion)

◆ con_motion

std::vector<std::array<double, 3> > kynema::interfaces::components::AerodynamicBody::con_motion

Vectors from reference axis to aerodynamic center at aerodynamic sections in reference configuration (includes twist)

◆ ct

std::vector<double> kynema::interfaces::components::AerodynamicBody::ct

Tangent force coefficient at aerodynamic sections (parallel to airfoil chord) (output)

◆ delta_s

std::vector<double> kynema::interfaces::components::AerodynamicBody::delta_s

Aerodynamic section width for force/moment calculation.

◆ id

size_t kynema::interfaces::components::AerodynamicBody::id

◆ jacobian_xi

std::vector<double> kynema::interfaces::components::AerodynamicBody::jacobian_xi

Locations of aerodynamic section width boundaries along the beam (used for section width calculation)

◆ loads

std::vector<std::array<double, 6> > kynema::interfaces::components::AerodynamicBody::loads

Aerodynamic loads (forces and moments) at aerodynamic centers (output)

◆ motion_interp

std::vector<double> kynema::interfaces::components::AerodynamicBody::motion_interp

Flattened matrix to interpolate motion from beam nodes to aerodynamic sections.

◆ node_f

std::vector<std::array<double, 6> > kynema::interfaces::components::AerodynamicBody::node_f

Aerodynamic forces at the beam nodes with moment arm applied from aerodynamic center to reference axis (output)

◆ node_ids

std::vector<size_t> kynema::interfaces::components::AerodynamicBody::node_ids

IDs of the beam nodes in this aerodynamic body.

◆ node_u

std::vector<std::array<double, 7> > kynema::interfaces::components::AerodynamicBody::node_u

Displacements of the beam nodes (copied from state based on node_ids)

◆ node_v

std::vector<std::array<double, 6> > kynema::interfaces::components::AerodynamicBody::node_v

Velocities of the beam nodes (copied from state based on node_ids)

◆ polar_size

std::vector<size_t> kynema::interfaces::components::AerodynamicBody::polar_size

Number of points in each aerodynamic polar.

◆ qqr_motion_map

std::vector<std::array<double, 4> > kynema::interfaces::components::AerodynamicBody::qqr_motion_map

Total rotation quaternion of beam reference axis at aerodynamic sections (reference + displacement)

◆ ref_axis_moments

std::vector<std::array<double, 3> > kynema::interfaces::components::AerodynamicBody::ref_axis_moments

Total moment about beam reference axis at aerodynamic sections (accounting for AC moment arm and aerodynamic moment) (output)

◆ shape_deriv_jac

std::vector<double> kynema::interfaces::components::AerodynamicBody::shape_deriv_jac

Flattened matrix to interpolate motion derivatives from beam nodes to aerodynamic sections (used for section width calculation)

◆ twist

std::vector<double> kynema::interfaces::components::AerodynamicBody::twist

Aerodynamic section twist.

◆ u_motion_map

std::vector<std::array<double, 7> > kynema::interfaces::components::AerodynamicBody::u_motion_map

Displacements of beam reference axis at aerodynamic sections.

◆ v_inflow

std::vector<std::array<double, 3> > kynema::interfaces::components::AerodynamicBody::v_inflow

Inflow velocity at aerodynamic sections.

◆ v_motion

std::vector<std::array<double, 3> > kynema::interfaces::components::AerodynamicBody::v_motion

Velocities of aerodynamic centers at aerodynamic sections in global coordinates.

◆ v_motion_map

std::vector<std::array<double, 6> > kynema::interfaces::components::AerodynamicBody::v_motion_map

Velocities of beam reference axis at aerodynamic sections.

◆ v_rel

std::vector<std::array<double, 3> > kynema::interfaces::components::AerodynamicBody::v_rel

Relative velocity at aerodynamic sections (v_inflow - v_motion) (output)

◆ x_motion

std::vector<std::array<double, 3> > kynema::interfaces::components::AerodynamicBody::x_motion

Positions of aerodynamic centers at aerodynamic sections in global coordinates.

◆ xr_motion_map

std::vector<std::array<double, 7> > kynema::interfaces::components::AerodynamicBody::xr_motion_map

Initial position and orientation of beam reference axis at aerodynamic sections.


The documentation for this class was generated from the following files:
  • /home/runner/work/kynema/kynema/kynema/src/interfaces/components/aerodynamics.hpp
  • /home/runner/work/kynema/kynema/kynema/src/interfaces/components/aerodynamics.cpp