Python tool to generate 2D mesh around an airfoil
Project description
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
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
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
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
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3eb9640d94c8a1903c2cfe18725f06f6b5651ea2e838659bbad1c9848ac5c0a4
|
|
| MD5 |
a0899e8f9ab33d5fd0f3d809ce3ca160
|
|
| BLAKE2b-256 |
0e17f7ce47e09ff5e9c1def12cf1f5499e9920dac31545ceaaaa6e42dbb0820e
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3a64b20a0ed238335b1090f78a366be90942d02f9479ab74c4b3da8538df7a50
|
|
| MD5 |
7162e451ba5c0e223a35e2f552378268
|
|
| BLAKE2b-256 |
5a0b2f120053cec5bd85a716858ea16ebd40b059e596d6da500eb212b20b4064
|