ryujin 2.1.1 revision ee5cbcbf2346c1299c942d0e1f13b46449973c18
Loading...
Searching...
No Matches
Public Member Functions | List of all members
ryujin::Geometries::Airfoil< dim > Class Template Reference

#include <source/geometries/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_coarse_triangulation (dealii::Triangulation< dim > &triangulation) const final
 
- Public Member Functions inherited from ryujin::Geometry< dim >
 Geometry (const std::string &name, const std::string &subsection)
 
virtual void update_dof_handler (dealii::DoFHandler< dim > &) const
 
virtual HP_Collection populate_hp_collections (const unsigned int, typename ryujin::Discretization< dim >::Collection &) const
 

Additional Inherited Members

- Public Types inherited from ryujin::Geometry< dim >
enum class  HP_Collection { standard_quadrilaterals , standard_simplices , populated_by_geometry }
 

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 831 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 834 of file geometry_airfoil.h.

Member Function Documentation

◆ create_coarse_triangulation()

template<int dim>
void ryujin::Geometries::Airfoil< dim >::create_coarse_triangulation ( dealii::Triangulation< dim > &  triangulation) const
inlinefinalvirtual

Create a coarse triangulation representing the current Geometry. This virtual method needs to be implemented in a derived classes.

Implements ryujin::Geometry< dim >.

Definition at line 914 of file geometry_airfoil.h.

References ryujin::dynamic, ryujin::no_slip, and ryujin::periodic.


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