m_alm_airfoil Module

Static airfoil polars for the actuator line model (ALM).

Ported from Incompact3d's airfoils.f90 (itself taken from CACTUS). An airfoil holds one table of lift, drag and quarter-chord moment against angle of attack for each tabulated Reynolds number. The coefficients at a given (Re, alpha) are found by linear interpolation in alpha within the two bracketing Reynolds-number tables, then linearly in Re. Outside the tabulated Re range the nearest table is used.

File format (.air): a title line containing ':', then the lines Thickness to Chord Ratio: <t/c>, Zero Lift AOA (deg): <alpha_0> and Reverse Camber Direction: <0|1>, followed by one block per Reynolds number: Reynolds Number: <Re>, a column-header line, and rows of AOA[deg] CL CD CM25 terminated by a blank line or the end of file. Every table must span -180 to 180 degrees.


Uses

  • module~~m_alm_airfoil~~UsesGraph module~m_alm_airfoil m_alm_airfoil module~m_common m_common module~m_alm_airfoil->module~m_common module~m_logger m_logger module~m_alm_airfoil->module~m_logger module~m_common->module~m_logger m_mpi m_mpi module~m_common->m_mpi iso_fortran_env iso_fortran_env module~m_logger->iso_fortran_env module~m_logger->m_mpi

Used by

  • module~~m_alm_airfoil~~UsedByGraph module~m_alm_airfoil m_alm_airfoil module~m_alm_element m_alm_element module~m_alm_element->module~m_alm_airfoil module~m_alm_turbine m_alm_turbine module~m_alm_turbine->module~m_alm_airfoil module~m_alm_turbine->module~m_alm_element module~m_alm m_alm module~m_alm->module~m_alm_element module~m_alm->module~m_alm_turbine module~m_alm_output m_alm_output module~m_alm->module~m_alm_output module~m_alm_output->module~m_alm_element module~m_turbine_setup m_turbine_setup module~m_turbine_setup->module~m_alm module~m_case_abl m_case_abl module~m_case_abl->module~m_turbine_setup module~m_case_wind_turbine m_case_wind_turbine module~m_case_wind_turbine->module~m_turbine_setup module~m_case_factory m_case_factory module~m_case_factory->module~m_case_abl module~m_case_factory->module~m_case_wind_turbine module~m_memcheck_build m_memcheck_build module~m_memcheck_build->module~m_case_abl module~m_memcheck_build->module~m_case_factory program~x3d2_memcheck x3d2_memcheck program~x3d2_memcheck->module~m_memcheck_build program~xcompact xcompact program~xcompact->module~m_case_factory

Derived Types

type, public ::  airfoil_t

Components

Type Visibility Attributes Name Initial
character(len=256), public :: filename = ''
character(len=256), public :: title = ''
integer, public :: camb = 0

reverse camber direction flag

real(kind=dp), public :: tc = 0._dp

thickness to chord ratio

real(kind=dp), public :: alzer = 0._dp

zero-lift angle of attack [deg]

integer, public :: n_re = 0

number of Reynolds-number tables

real(kind=dp), public, allocatable :: re(:)

table Reynolds numbers

integer, public, allocatable :: n_aoa(:)

AOA rows in each table

real(kind=dp), public, allocatable :: aoa(:,:)

table AOA values [deg]

real(kind=dp), public, allocatable :: cl(:,:)
real(kind=dp), public, allocatable :: cd(:,:)
real(kind=dp), public, allocatable :: cm(:,:)

Subroutines

public subroutine read_airfoil(airfoil, filename)

Read an .air polar file into airfoil.

Arguments

Type IntentOptional Attributes Name
type(airfoil_t), intent(out) :: airfoil
character(len=*), intent(in) :: filename

public pure subroutine eval_static_coeffs(airfoil, re, alpha, cl, cd, cm25)

Interpolate the static polars at Reynolds number re and angle of attack alpha [deg]. Port of CACTUS' EvalStaticCoeff.

Arguments

Type IntentOptional Attributes Name
type(airfoil_t), intent(in) :: airfoil
real(kind=dp), intent(in) :: re
real(kind=dp), intent(in) :: alpha
real(kind=dp), intent(out) :: cl
real(kind=dp), intent(out) :: cd
real(kind=dp), intent(out) :: cm25