Skip to content

Python tool to genreate 2D meshes around airfoils

License

Notifications You must be signed in to change notification settings

cassyr/GMSH-Airfoil-2D

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pytest PyPi version License Black code style

GMSH-Airfoil-2D

Python tool to genreate 2D unstructured mesh around an airfoil with GMSH in one command line.

Installation

You can install this package from PyPi:

pip install gmshairfoil2d

Or you can clone and install this repository with the following commands:

git clone https://github.com/cfsengineering/GMSH-Airfoil-2D.git
cd GMSH-Airfoil-2D
pip install -e .

Usage

gmshairfoil2d -h                                    

optional arguments:
  -h, --help                  show this help message and exit
  --list                      Display all airfoil available in the database :
                              https://m-selig.ae.illinois.edu/ads/coord_database.html
  --naca [4DIGITS]            NACA airfoil 4 digit
  --airfoil [NAME]            Name of an airfoil profile in the database (database available with
                              the --list argument)
  --aoa [AOA]                 Angle of attack [deg] (default: 0 [deg])
  --farfield [RADIUS]         Create a circular farfield mesh of given radius [m] (default 10m)
  --box [LENGTHxWIDTH]        Create a box mesh of dimensions [length]x[height] [m]
  --airfoil_mesh_size [SIZE]  Mesh size of the airfoil countour [m] (default 0.01m)
  --ext_mesh_size [SIZE]      Mesh size of the external domain [m] (default 0.2m)
  --no_bl                     Do the meshing without a boundary layer (made with quads)
  --first_layer [HEIGHT]      Height of the first layer [m] (default 3e-5m)
  --ratio_bl [RATIO]          Growth ratio for the boundary layer (default 1.2)
  --nb_layers [NB]            Total number of layers in the boundary layer (default 35)
  --format [FORMAT]           format of the mesh file, e.g: msh, vtk, wrl, stl, mesh, cgns, su2,
                              dat (default su2)
  --cut_te                    Change the trailing edge by cutting the last point (when pointy) to help with
                              boundary layer
  --structural                Generate a structural mesh
  --arg_struc                 Parameters for the structural mesh [leading (axis x)]x[wake
      [LENGTHxLENGTHxLENGTH]  (axis x)]x[total height (axis y)] [m] (default 1x10x10)
  --output [PATH]             output path for the mesh file (default : current dir)
  --ui                        Open GMSH user interface to see the mesh

Examples of use

To check all airfoil available in the database:

gmshairfoil2d --list

For all the following examples, the defauld chord lenght is 1 meter.

To create a circular farfield mesh around a NACA0012 of 10m of radius and see the result with GMSH user interface:

gmshairfoil2d --naca 0012 --farfield 10 --ui --no_bl

GMSH user interface with the 2D mesh

To create a circular farfield mesh around a Drela DAE11 airfoil (the name in the database is "dae11") of 20m or radius with a mesh size of 0.005m on the airfoil:

gmshairfoil2d --airfoil dae11 --farfield 20 --airfoil_mesh_size 0.005 --no_bl

To create mesh around a Eppler E220 airfoil (the name in the database is "e211") with an angle of attack of 8 degree in a box of 12x4m (lenght x height) and save it as a vtk mesh and see the result with GMSH user interface:

gmshairfoil2d --airfoil e211 --aoa 8 --box 12x4 --format vtk --ui --no_bl

GMSH user interface with the 2D mesh, rectangular box

To create a boxed mesh around a NACA 11-H-09 airfoil (the name in the database is "n11h9"), using the boundary layer with default parameters (first layer of height 3e-5, 35 layers and growth ratio of 1.2)

gmshairfoil2d --airfoil n11h9 --ui --box 2x1.4

GMSH result with 2D mesh with boundary layer, rectangular box

About

Python tool to genreate 2D meshes around airfoils

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%