ryujin 2.1.1 revision 0348cbb53a3e4b1da2a4c037e81f88f2d21ce219
Public Member Functions | List of all members
ryujin::Geometries::Airfoil< dim > Class Template Reference

#include <source/geometry_airfoil.h>

Inheritance diagram for ryujin::Geometries::Airfoil< dim >:
Inheritance graph
[legend]
Collaboration diagram for ryujin::Geometries::Airfoil< dim >:
Collaboration graph
[legend]

Public Member Functions

 Airfoil (const std::string subsection)
 
void create_triangulation (typename Geometry< dim >::Triangulation &triangulation) final
 
- Public Member Functions inherited from ryujin::Geometry< dim >
 Geometry (const std::string &name, const std::string &subsection)
 
virtual void create_triangulation (Triangulation &triangulation)=0
 
auto & name () const
 

Additional Inherited Members

- Public Types inherited from ryujin::Geometry< dim >
using Triangulation = typename Discretization< dim >::Triangulation
 

Detailed Description

template<int dim>
class ryujin::Geometries::Airfoil< dim >

A generic 2D Airfoil

This class implements a generic 2D airfoil. Various runtime parameters select the airfoil type (such as NACA 4 digit, some ONERA airfoils, etc) and meshing behavior. The mesh construction is divided into various steps:

1/ Parametrization:

Depending on various runtime parameters a parameterization \( y = \psi_{\text{up./lo.}}(x)\) on the upper and lower trailing edge as well as a parameterization in polar coordinates \( r = \psi_{\text{fr.}}(\phi) \) for the nose part is constructed. This is done by taking a sample of points on the upper and lower part of the airfoil and computing intermediate points with a cubic spline interpolation. Relevant runtime parameters are airfoil type to specify the type and serial number, psi samples to control the number of samples taken (if admissible), and psi center to control the center point for constructing the parametrizations \(\psi_{\text{x}}\). The samples are assumed to be normalized so that the front is located at \((0,0)\) and the trailing (or blunt edge) at \((1,0)\), or \((1,\ast)\), respectively. The coordinate system is then shifted by the psi center point so that the parameterizations \(y = \hat\psi_{\text{up./lo.}}(x)\) expect input in the range \(\hat x\in[0,1-x_{\text{psi center}}]\). In the same spirit \(\hat\psi_{\text{fr.}}(\phi)\) expects input in the range \(\pi/2\le\phi\le3\pi/2\) and will return \(\psi_{\text{fr.}}(\pi) = -x_{\text{psi center}}\). Also a final step the normalized parametrizations \(\hat\psi\) are rescaled with the runtime parameter airfoil length so that the resulting airfoil has overall length airfoil length instead of 1.

2/ Meshing:

TODO

Definition at line 823 of file geometry_airfoil.h.

Constructor & Destructor Documentation

◆ Airfoil()

template<int dim>
ryujin::Geometries::Airfoil< dim >::Airfoil ( const std::string  subsection)
inline

Definition at line 826 of file geometry_airfoil.h.

Member Function Documentation

◆ create_triangulation()

template<int dim>
void ryujin::Geometries::Airfoil< dim >::create_triangulation ( typename Geometry< dim >::Triangulation triangulation)
inlinefinal

Definition at line 906 of file geometry_airfoil.h.

References ryujin::dynamic, ryujin::no_slip, ryujin::periodic, and ryujin::pow().


The documentation for this class was generated from the following file: