Giter Site home page Giter Site logo

bugleilei / airfoil-opt-gan Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ideallab/airfoil-opt-gan

0.0 1.0 0.0 5.01 MB

Experiment code associated with our paper: "Aerodynamic Design Optimization and Shape Exploration using Generative Adversarial Networks"

License: MIT License

Python 100.00%

airfoil-opt-gan's Introduction

airfoil-opt-gan

Latent space exploration for the airfoil shape design.

License

This code is licensed under the MIT license. Feel free to use all or portions for your research or related projects so long as you provide the following citation information:

Wei Chen, Kevin Chiu, and Mark Fuge. "Aerodynamic Design Optimization and Shape Exploration using Generative Adversarial Networks", AIAA Scitech 2019 Forum, AIAA SciTech Forum, (AIAA 2019-2351) https://doi.org/10.2514/6.2019-2351

@inproceedings{chen2019aerodynamic,
    author={Chen, Wei and Chiu, Kevin and Fuge, Mark},
    title={Aerodynamic Design Optimization and Shape Exploration using Generative Adversarial Networks},
    booktitle={AIAA SciTech Forum},
    year={2019},
    month={Jan},
    publisher={AIAA},
    address={San Diego, USA}
}

Required packages

  • tensorflow 1.6.0
  • sklearn
  • numpy
  • matplotlib

Usage

Train/evaluate BezierGAN

python train.py

positional arguments:

mode	startover, continue, or evaluate

optional arguments:

-h, --help            	show this help message and exit
--save_interval 	number of intervals for saving the trained model and plotting results

Run optimization

Note:

  • When optimizing using BezierGAN + EGO or BezierGAN + EGO + GA refining, BezierGAN has to be trained first. It takes about one hour on a Nvidia Titan X GPU. If you don't want to train it yourself, send an email to [email protected], and I'll send you a copy of my trained model.
  • You can modify the airfoil operating conditions (i.e., Reynolds number, Mach number, angle of attack, and number of iterations) in the file op_conditions.ini.

BezierGAN + EGO

python optimize_gan_bo.py

optional arguments:

--n_runs		number of runs
--n_eval		number of evaluations per run
-h, --help            	show this help message and exit

BezierGAN + EGO + GA refining

python optimize_gan_2_ga.py

optional arguments:

--n_runs		number of runs
--n_eval		number of evaluations per run
-h, --help            	show this help message and exit

PCA + EGO

python optimize_pca_bo.py

optional arguments:

--n_runs		number of runs
--n_eval		number of evaluations per run
-h, --help            	show this help message and exit

NURBS + EGO

python optimize_nurbs_bo.py

optional arguments:

--n_runs		number of runs
--n_eval		number of evaluations per run
-h, --help            	show this help message and exit

NURBS + GA

python optimize_nurbs_ga.py

optional arguments:

--n_runs		number of runs
--n_eval		number of evaluations per run
-h, --help            	show this help message and exit

PARSEC + EGO

python optimize_parsec_bo.py

optional arguments:

--n_runs		number of runs
--n_eval		number of evaluations per run
-h, --help            	show this help message and exit

PARSEC + GA

python optimize_parsec_ga.py

optional arguments:

--n_runs		number of runs
--n_eval		number of evaluations per run
-h, --help            	show this help message and exit

Dataset

Our airfoil designs come from UIUC airfoil coordinates database.

The raw data contains variable number of points along airfoil curves. We created the training data by applying B-spline interpolation on these designs.

Alt text

Results

Latent space learned by BezierGAN

c3 = 0.00 c3 = 0.50 c3 = 1.00
Alt text Alt text Alt text

Optimization

Optimization history:

Alt text

Optimal arifoils:

Alt text

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.