ryujin 2.1.1 revision 0348cbb53a3e4b1da2a4c037e81f88f2d21ce219
|
#include <source/geometry_airfoil.h>
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 |
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.
|
inline |
Definition at line 826 of file geometry_airfoil.h.
|
inlinefinal |
Definition at line 906 of file geometry_airfoil.h.
References ryujin::dynamic, ryujin::no_slip, ryujin::periodic, and ryujin::pow().