Skip to main content

Python tool to generate 2D mesh around an airfoil

Project description

Pytest PyPi version License Black code style

GMSH-Airfoil-2D

Python tool to genreate 2D unstructured, hybrid and structured 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
  --config [PATH]             Path to configuration file (key=value format)
  --save_config [PATH]        Save current configuration to file
  --example_config            Create an example configuration file
  --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)
  --airfoil_path [PATH]       Path to custom airfoil .dat file
  --flap_path [PATH]          Path to custom flap .dat file
  --aoa [AOA]                 Angle of attack [deg] (default: 0 [deg])
  --deflection [DEFLECTION]   Flap deflection angle [deg] (default: 0 [deg])
  --farfield [RADIUS]         Create a circular farfield mesh of given radius [m] (default 10m)
  --farfield_ctype            Generate a C-type structured farfield for hybrid meshes
  --box [LENGTHxWIDTH]        Create a box mesh of dimensions [length]x[height] [m]
  --airfoil_mesh_size [SIZE]  Mesh size of the airfoil contour [m] (default 0.01m)
  --ext_mesh_size [SIZE]      Mesh size of the external domain [m] (default 0.2m)
  --no_bl                     Do the unstructured meshing (with triangles), without a boundary
                              layer
  --first_layer [HEIGHT]      Height of the first layer [m] (default 3e-5m) (for bl and structured)
  --ratio [RATIO]             Growth ratio of layers (default 1.2) (for bl and structured)
  --nb_layers [INT]           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)
  --structured                Generate a structured mesh
  --arg_struc [LxL]           Parameters for the structured mesh [wake length (axis x)]x[total 
                              height (axis y)] [m] (default 10x10)
  --output [PATH]             Output path for the mesh file (default : current dir)
  --ui                        Open GMSH user interface to see the mesh

Configuration Files

Instead of using command-line arguments, you can use configuration files for batch processing. Configuration files use a simple key=value format with support for comments.

Create an example configuration file:

gmshairfoil2d --example_config

Use a configuration file:

gmshairfoil2d --config my_config.cfg

Override config values with CLI arguments:

gmshairfoil2d --config my_config.cfg --aoa 5.0

Save current configuration to file:

gmshairfoil2d --naca 0012 --aoa 5.0 --save_config my_config.cfg

For more details, see example/CONFIG_README.md and ready-to-use examples in example/EXAMPLES_README.md.

Examples of use

To check all airfoil available in the database:

gmshairfoil2d --list

For all the following examples, the default chord length is 1 meter.

Example 1: NACA0012 with circular farfield

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

Or using config file:

gmshairfoil2d --config example/example1_naca0012.cfg

GMSH user interface with the 2D mesh

Example 2: DAE11 with boundary layer

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

gmshairfoil2d --airfoil dae11 --farfield 4 --airfoil_mesh_size 0.005

Or using config file:

gmshairfoil2d --config example/example2_dae11.cfg

Example 3: E211 in box with angle of attack

To create mesh around an Eppler E211 airfoil (the name in the database is "e211") with an angle of attack of 8 degree in a box of 12x4m (length x height) and save it as a VTK mesh:

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

Or using config file:

gmshairfoil2d --config example/example3_e211_box.cfg

GMSH user interface with the 2D mesh, rectangular box

Example 4: CH10SM with box and boundary layer

To create a boxed mesh around a Chuck Hollinger CH10SM airfoil (the name in the database is "ch10sm"), using the boundary layer with default parameters (first layer of height 3e-5, 35 layers and growth ratio of 1.2):

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

Or using config file:

gmshairfoil2d --config example/example4_ch10sm_bl.cfg

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

Example 5: NACA4220 structured mesh

To create a structured mesh around a NACA4220 airfoil with first layer height of 0.01, mesh size of 0.08, wake length of 6, height of 7, and angle of attack of 6 degrees:

gmshairfoil2d --naca 4220 --airfoil_mesh_size 0.08 --ui --structured --first_layer 0.01 --arg_struc 6x7 --aoa 6

Or using config file:

gmshairfoil2d --config example/example5_naca4220_structured.cfg

GMSH result with 2D structured mesh

Example 6: Custom airfoil from file

To create a mesh around a custom airfoil profile with a deflected flap:

gmshairfoil2d --airfoil_path tests/test_data/NLR_7301.dat --flap_path tests/test_data/Flap_NLR_7301.dat --deflection 10 --box 4x3 --ui --no_bl

Or using config file:

gmshairfoil2d --config example/example6_custom_airfoil_flap.cfg

This example shows how to load custom airfoil and flap profiles from external .dat files and generate a mesh with flap deflection, useful for using proprietary or custom-designed airfoil geometries. GMSH result with 2D mesh around a custom flapped airfoil

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gmshairfoil2d-0.2.33.tar.gz (32.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gmshairfoil2d-0.2.33-py3-none-any.whl (32.8 kB view details)

Uploaded Python 3

File details

Details for the file gmshairfoil2d-0.2.33.tar.gz.

File metadata

  • Download URL: gmshairfoil2d-0.2.33.tar.gz
  • Upload date:
  • Size: 32.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for gmshairfoil2d-0.2.33.tar.gz
Algorithm Hash digest
SHA256 3eb9640d94c8a1903c2cfe18725f06f6b5651ea2e838659bbad1c9848ac5c0a4
MD5 a0899e8f9ab33d5fd0f3d809ce3ca160
BLAKE2b-256 0e17f7ce47e09ff5e9c1def12cf1f5499e9920dac31545ceaaaa6e42dbb0820e

See more details on using hashes here.

File details

Details for the file gmshairfoil2d-0.2.33-py3-none-any.whl.

File metadata

  • Download URL: gmshairfoil2d-0.2.33-py3-none-any.whl
  • Upload date:
  • Size: 32.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for gmshairfoil2d-0.2.33-py3-none-any.whl
Algorithm Hash digest
SHA256 3a64b20a0ed238335b1090f78a366be90942d02f9479ab74c4b3da8538df7a50
MD5 7162e451ba5c0e223a35e2f552378268
BLAKE2b-256 5a0b2f120053cec5bd85a716858ea16ebd40b059e596d6da500eb212b20b4064

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page