Procedures

ProcedureLocationProcedure TypeDescription
append_row_2d libHDF5 Subroutine

Append a 1D array as a new row in an extendable 2D dataset (nt x ns)

append_scalar_1d libHDF5 Subroutine

Append a single scalar to an extendable 1D dataset

blade_burst_wake classdef Subroutine
blade_calc_force classdef Subroutine

Compute force using blade circulation

blade_calc_force_alpha classdef Subroutine

Compute force using sectional alpha

blade_calc_force_alphaGamma classdef Subroutine

Compute force using alpha approximated from sec circulation

blade_calc_secAlpha classdef Subroutine

Compute sec alpha using sec resultant velocity

blade_calc_secChordwiseResVel classdef Subroutine

Compute sectional resultant vel by interpolating local panel vel

blade_calc_secLocations classdef Subroutine

Compute important locations at each section coordinates of collocation point located at chord fraction flap moment arm

blade_calc_skew classdef Subroutine
blade_calc_stlStats classdef Subroutine
blade_computeBladeDynamics classdef Subroutine
blade_convectwake classdef Subroutine

Convect wake collocation points using velNwake matrix

blade_dirLiftDrag classdef Subroutine

Compute lift and drag direction vectors

blade_getSecDynamicPressure classdef Function
blade_limitWakeVel classdef Subroutine

Limits wake velocity to a set value to prevent blow up. Near wake only for predicted wake; near and far for current wake.

blade_lookup_secCoeffs classdef Subroutine
blade_move classdef Subroutine

Move blade by dshift

blade_read classdef Subroutine
blade_rot_flap classdef Subroutine

Rotate blade by flap angle

blade_rot_pitch classdef Subroutine

Rotate blade by pitch angle about pivotLE

blade_rot_pts classdef Subroutine

Rotate blade using pts. pts refers to (phi, theta, psi)

blade_rot_wake_axis classdef Subroutine

Rotate wake about axis at specified origin

blade_rotate classdef Subroutine

Rotate blade geometry about axis at specified origin Rotation angle in radians

blade_secCoeffsToSecForces classdef Subroutine

Convert force coefficients to dimensional forces

blade_sumSecToNetForces classdef Subroutine

Sum up sectional forces to net forces

blade_vind_boundVortex classdef Function

Compute induced velocity by bound vortices alone

blade_vind_bywake classdef Function

Compute induced velocity by wake vortex rings

blade_vind_bywing classdef Function

Compute induced velocity by blade bound vorticity

blade_vind_bywing_boundVortices classdef Function

Compute induced velocity by bound vortices alone

blade_vind_bywing_chordwiseVortices classdef Function

Compute induced velocity by bound vortices alone

blade_vindSource_bywing classdef Function

Compute induced velocity by blade bound vorticity

blade_wake_continuity classdef Subroutine

Maintain continuity between vortex ring elements after convection of wake collocation points

blade_write classdef Subroutine
calc_secArea classdef Subroutine
calc_secChord classdef Subroutine
calc_skew classdef Subroutine

Compute skew

close_hdf5 libHDF5 Subroutine

Flush and close HDF5 file. Call after results2hdf5.

cosspace libMath Function

Return cossine-spaced array over a specified interval

cosspace libMath Function

Return cossine-spaced array over a specified interval

create_extendable_1d libHDF5 Subroutine

Create an extendable 1D dataset of shape (0,) with unlimited max dim

create_extendable_2d libHDF5 Subroutine

Create an extendable 2D dataset of shape (0, ns) -- time x span

cross_product libMath Function

Compute cross product between two 3d vectors

cross_product libMath Function

Compute cross product between two 3d vectors

deinit_hdf5 libHDF5 Subroutine

Deinitialize HDF5 library (h5close_f). file_id unused (kept for API).

dynamics2file libPostprocess Subroutine

Rotor dynamics to file

error_message libErrorHandling Function
filaments2file libPostprocess Subroutine

Write filaments to file for using with grid-based plots

force2file libPostprocess Subroutine
Fwake_assignP classdef Subroutine

Assign point to nth endpoint of filament

Fwake_decay classdef Subroutine
Fwake_mirror classdef Subroutine

Mirror gamma and coordinates about a specified plane

Fwake_rot classdef Subroutine

Rotate using TMat about originVec

Fwake_shiftdP classdef Subroutine

Shift coordinates of nth corner by dshift distance (usually for Udt convection)

gamma2file libPostprocess Subroutine

Calculate inflow velocity along directionVector on the blades of rotor(rotorNumber) at rotor(rotorNumber)%secCP

geom2file libPostprocess Subroutine

Plot rotor geometry and wake to file

geomSurface2file libPostprocess Subroutine

Plot surface geometry to file

getAngleCos libMath Function

Angle between two 3d vectors using cos formula Assumes no angle > 180 deg exists

getAngleCos libMath Function

Angle between two 3d vectors using cos formula Assumes no angle > 180 deg exists

getAngleTan libMath Function

Angle between two 3d vectors using tan formula Result will be from -pi to pi

getAngleTan libMath Function

Angle between two 3d vectors using tan formula Result will be from -pi to pi

getCD libC81 Function

Returns value of 2-d linearly interpolated CD for given alphaQuery and machQuery values

getCL libC81 Function

Returns value of 2-d linear interpolated CL for a given alphaQuery and machQuery values

getCM libC81 Function

Returns value of 2-d linearly interpolated CM for given alphaQuery and machQuery values

getddflap classdef Function

Returns ddflap from blade flap equation

getdw classdef Function
getTransformAxis libMath Function

Transformation matrix for theta angular rotation about a 3d axis

getTransformAxis libMath Function

Transformation matrix for theta angular rotation about a 3d axis

halfsinspace libMath Function

Return half sine-spaced array over a specified interval

halfsinspace libMath Function

Return half sine-spaced array over a specified interval

inflow2file libPostprocess Subroutine

Calculate inflow velocity along directionVector on the blades of rotor(rotorNumber) at rotor(rotorNumber)%secCP

init_hdf5 libHDF5 Subroutine

Create HDF5 file with extendable structure. Call before results2hdf5, then close_hdf5.

init_plots libPostprocess Subroutine

Initialise headers for plot files

interp1d libMath Function

1-d Interpolation using 1st and 2nd order Lagrange polynomials

interp1d libMath Function

1-d Interpolation using 1st and 2nd order Lagrange polynomials

inv libMath Function

Native implementation of matrix inverse based on Doolittle method

inv libMath Function

Native implementation of matrix inverse based on Doolittle method

inv2 libMath Function

Inverse of a matrix calculated by finding the LU decomposition using LAPACK

inv2 libMath Function

Inverse of a matrix calculated by finding the LU

isFloatEqual libMath Function

Checks if a == b within a tolerance

isFloatEqual libMath Function

Checks if a == b within a tolerance

isInverse libMath Function

Check if Ainv is inverse of matrix A by multiplication

isInverse libMath Function

Check if Ainv is inverse of matrix A by multiplication

length3d libMath Function

Compute length of linesegment between points P1 and P2

length3d libMath Function

Compute length of linesegment between points P1 and P2

linspace libMath Function

Return linearly-spaced array over a specified interval

linspace libMath Function

Return linearly-spaced array over a specified interval

lsq2 libMath Interface
lsq2 libMath Interface
lsq2_array libMath Function
lsq2_array libMath Function
lsq2_scalar libMath Function

Linear Least Squares fitting (2nd order)

lsq2_scalar libMath Function

Linear Least Squares fitting (2nd order)

matmul2 libMath Function

Matrix multiplication implemented using BLAS

matmul2 libMath Function

Matrix multiplication

matmulAX libMath Function

Matrix multiplication with vector implemented using BLAS

matmulAX libMath Function

Matrix multiplication with vector

noProjVec libMath Function

Removes component along dirVec from a vector aVec

noProjVec libMath Function

Removes component along dirVec from a vector aVec

outer_product libMath Function

Compute outer product between two 3d vectors

outer_product libMath Function

Compute outer product between two 3d vectors

params2file libPostprocess Subroutine

Write rotor parameters to json file

pFwake_rot_wake_axis classdef Subroutine
pFwake_update classdef Subroutine
print_mat libMath Subroutine

Display in matrix format

print_mat libMath Subroutine

Display in matrix format

print_status libCommon Subroutine

Prints status message (or SUCCESS if left blank)

probes2file libPostprocess Subroutine

Write velocities at probe locations

projVec libMath Function

Returns 3d vector aVec projected along dirVec

projVec libMath Function

Returns 3d vector aVec projected along dirVec

pwl_interp1d libMath Function

Piecewise linear 1d interpolation

pwl_interp1d libMath Function

Piecewise linear 1d interpolation

raise_error libErrorHandling Subroutine
readConfig libCommon Subroutine

Read config.nml input file (in namelist format)

readfile libC81 Subroutine

Reads from C81 file to C81 class

results2hdf5 libHDF5 Subroutine

Append one timestep of data to open HDF5 file.

rotor_age_wake classdef Subroutine

Update age of wake filaments

rotor_assignshed classdef Subroutine

Assign coordinates to first rowNear of wake from last row of blade

rotor_burst_wake classdef Subroutine
rotor_calc_force classdef Subroutine

Compute force from circulation

rotor_calc_force_alpha classdef Subroutine

Compute force from sec alpha

rotor_calc_force_alphaGamma classdef Subroutine

Compute force from sec alpha

rotor_calc_secAlpha classdef Subroutine
rotor_calc_skew classdef Subroutine
rotor_calcAIC classdef Subroutine

Compute AIC matrix for rotor

rotor_computeBladeDynamics classdef Subroutine
rotor_computeBodyDynamics classdef Subroutine
rotor_convectwake classdef Subroutine
rotor_deinit classdef Subroutine

Deinitialise rotor variables

rotor_dirLiftDrag classdef Subroutine
rotor_dissipate_wake classdef Subroutine

Dissipation model based on the paper: Generalized Viscous Vortex Model for Application to Free-Vortex Wake Calculations,Bhagwat and Leishman (2002) The apparent viscosity coefficient is 'delta' and kept a constant value. delta has to be 100 for small-scale rotors and around 1000 for large-scale rotors

rotor_dissipate_wake2 classdef Subroutine

Dissipation model based on the paper: Generalized Viscous Vortex Model for Application to Free-Vortex Wake Calculations,Bhagwat and Leishman (2002) The apparent viscosity coefficient is 'a1' known as Squire's app. viscosity parameter and this allows the dissipation to be dependent on the vortex strength The apparent viscosity is kinematic viscosity plus the turbulent viscosity (a1*|gamma|)) a1 has to be O(1e-4) for rotary wings (usually set to 2e-4) and O(1e-5) for fixed wings

rotor_eraseFwake classdef Subroutine

Erase a far wake row by setting gamma to zero

rotor_eraseNwake classdef Subroutine

Erase a near wake row by setting gamma to zero

rotor_getCamber classdef Function

Get z coordinate on wing from x, y values

rotor_getflap classdef Function

Prescribed flap [rad]: flap0 + flapCcos(psi) + flapSsin(psi)

rotor_getflapdot classdef Function

Prescribed flap rate: d(flap)/dt = Omega * d(flap)/d(psi) [rad/s]

rotor_gettheta classdef Function

Get pitch angle corresponding to blade azimuthal location

rotor_getthetadot classdef Function
rotor_init classdef Subroutine

Initialize variables of rotor geometry and wake

rotor_map_gam classdef Subroutine

Map gam from vector to matrix format

rotor_mirrorGamma classdef Subroutine

Mirrors gamma from another rotor

rotor_mirrorVelCP classdef Subroutine

Mirrors velCP, velCPm from another rotor (flip velocity component in mirror plane)

rotor_mirrorWake classdef Subroutine

Mirrors wake positions from another rotor

rotor_move classdef Subroutine
rotor_plot3dtoblade classdef Subroutine

Read blade geometry from PLOT3D formatted file

rotor_read classdef Subroutine
rotor_readGeom classdef Subroutine

Read rotor geometry from geomXX.nml in namelist format

rotor_rollup classdef Subroutine
rotor_rot_advance classdef Subroutine

Rotate rotor by dpsi angle about axis

rotor_rot_flap classdef Subroutine

Rotate blades by flap angle

rotor_rot_pts classdef Subroutine

Rotate using pts => phi theta psi Warning: This rotation is about the global reference frame

rotor_shiftFwake classdef Subroutine

Shift wake locations of Fwake for truncation

rotor_shiftwake classdef Subroutine

Shift wake locations on rollup

rotor_stltoblade classdef Subroutine

Read ASCII stl file for non-lifting surface geometry

rotor_strain_wake classdef Subroutine
rotor_sumBladeToNetForces classdef Subroutine
rotor_toChordsRevs classdef Subroutine

Converts -ve nsteps to nsteps for corresponding no. of chords or revs

rotor_updatePrescribedWake classdef Subroutine

Attaches prescribed far wake

rotor_vind_bywake classdef Function
rotor_vind_bywing classdef Function

Compute induced velocity by all wing vortices at P

rotor_vind_bywing_boundVortices classdef Function

Compute induced velocity by bound vortices at P

rotor_write classdef Subroutine
skew2file libPostprocess Subroutine

Skew parameter to file

tanspace libMath Function

Return tan-spaced array over a specified interval

tanspace libMath Function

Return tan-spaced array over a specified interval

Tbg libMath Function

Transformation matrix (body to global frame)

Tbg libMath Function

Transformation matrix (body to global frame)

Tgb libMath Function

Transformation matrix (global to body frame)

Tgb libMath Function

Transformation matrix (global to body frame)

tip2file libPostprocess Subroutine

Wake tip to file

trapz libMath Function

Trapezoid integration with unequal intervals

trapz libMath Function

Trapezoid integration with unequal intervals

unitVec libMath Function

Normalizes a non-zero 3d vector

unitVec libMath Function

Normalizes a non-zero 3d vector

vel_order2_Fwake libCommon Function

Calculate 2nd order accurate induced velocity on far wake

vel_order2_Nwake libCommon Function

Calculate 2nd order accurate induced velocity on near wake

vf_calclength classdef Subroutine

Compute length of vortex filament

vf_strain classdef Subroutine
vf_vind classdef Function

Compute induced velocity by unit strength vortex filament

vind_onFwake_byRotor libCommon Function

Compute induced velocity by rotor (wing + wake) on Fwake corner points

vind_onNwake_byRotor libCommon Function

Compute induced velocity by rotor (wing + wake) on Nwake corner points

vr_assignP classdef Subroutine

Assign coordinates to nth corner

vr_burst classdef Subroutine

Burst vortex filaments if skewLimit is exceeded

vr_calclength classdef Subroutine

Calculate length of filaments in vortex ring

vr_decay classdef Subroutine
vr_getBimedianCos classdef Function

Obtain angle between bimedians

vr_getInteriorAngles classdef Function

Obtain interior angles of vortex ring

vr_getMedianAngle classdef Function

Obtain median angle of vortex ring

vr_mirror classdef Subroutine

Mirror gamma and coordinates about a specified plane

vr_rot classdef Subroutine

Rotate vortex ring using Tmat about origin

vr_shiftdP classdef Subroutine

Shift coordinates of nth corner by dshift distance (usually for U*dt convection)

vr_strain classdef Subroutine
vr_vind classdef Function

Compute induced velocity by unit strength 4-element vortex ring

vr_vindSource classdef Function

Compute induced velocity by unit strength 3-element source ring

wingpanel_assignP classdef Subroutine

Assign coordinates to nth corner

wingpanel_calc_area classdef Subroutine
wingpanel_calc_chordwiseResVel classdef Subroutine

Compute panel resultant velocities using local velocities

wingpanel_calc_mean_dimensions classdef Subroutine

Calculate mean chord and mean span

wingpanel_calcCP classdef Subroutine

Compute collocation point location

wingpanel_calcN classdef Subroutine

Compute normal vector

wingpanel_calcTau classdef Subroutine

Compute chordwise and spanwise tangential vectors

wingpanel_invertNcap classdef Subroutine
wingpanel_isCPinsidecore classdef Function

Check whether collocation point lies inside viscous core region of vortex ring

wingpanel_rot classdef Subroutine

Rotate panel using transformation matrix

wingpanel_shiftdP classdef Subroutine

Shift corners of vortex ring by dshift

write_fixed_1d libHDF5 Subroutine

Write a fixed-size 1D dataset (not extendable) -- used for r_R

write_fixed_2d libHDF5 Subroutine

Write a fixed-size 2D dataset (1 x ncols) for snapshot files

write_geom_params libHDF5 Subroutine

Write geom.nml parameters to geom sub-group under the rotor

write_params libHDF5 Subroutine
write_scalar_double libHDF5 Subroutine
write_scalar_int libHDF5 Subroutine
write_vector_3d libHDF5 Subroutine
writefile libC81 Subroutine

Writes C81 class data to C81 file