Giter Site home page Giter Site logo

cmplxfoil's Introduction

Build Status Documentation Status

CMPLXFOIL is a version of Mark Drela's XFOIL code with the GUI features removed. Gradient computation is implemented with the complex-step method.

Documentation

Please see the documentation for installation and usage details.

To locally build the documentation, enter the doc folder and run make html in the command line prompt. You can then view the built documentation in the doc/_build/html/ by opening index.html.

Citing CMPLXFOIL

If you use CMPLXFOIL, please see this page for citation information.

cmplxfoil's People

Contributors

a-cgray avatar bernardopacini avatar eirikurj avatar ewu63 avatar eytanadler avatar gkenway avatar sseraj avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cmplxfoil's Issues

Add cp, cf, x, y arrays in the available functions for optimization

Description of feature

Add the following slice data in the available function for optimization :
# "cp_visc_upper": viscous CP on the airfoil's upper surface
# "cp_invisc_upper": inviscid CP on the airfoil's upper surface
# "x_upper": x coordinates of the upper surface CP data
# "y_upper": y coordinates of the upper surface CP data
# "cp_visc_lower": viscous CP on the airfoil's lower surface
# "cp_invisc_lower": inviscid CP on the airfoil's lower surface
# "x_lower": x coordinates of the lower surface CP data
# "y_lower": y coordinates of the lower surface CP data
# "cf_upper": skin friction coefficient on the upper surface
# "x_cf_upper": x coordinates of upper surface skin friction coefficient
# "y_cf_upper": y coordinates of upper surface skin friction coefficient
# "cf_lower": skin friction coefficient on the lower surface
# "x_cf_lower": x coordinates of lower surface skin friction coefficient
# "y_cf_lower": y coordinates of lower surface skin friction coefficient
Thus we could optimize and constraint parameters available in this list (max pressure gradients for example)

Potential solution

Update into Python package

Description

This repo is poorly organized. We should add a setup.py, rename some folders, and move some files around to make it pip-installable.

Add Azure Devops for building and testing

Description of feature

This repo currently does not have any automated build and test. We should add Azure to build the code and run the functionality test. We can add tests later on as well.

Potential solution

This can be implemented using the standard MDO Lab Azure template.

no convergence behaviour

Description

When trying to calculate airfoil and xfoil is failing to converge, i receive error that airfoil is failing to converge and program terminates execution
I guess there is no much use of it because after receiving such information i wish to continue execution of my program

Current behavior

As an output i am receiving:
`
Sharp trailing edge

Sharp trailing edge
Paneling convergence failed. Continuing anyway...

Sharp trailing edge
+----------------------------------------------------------------------+
| Switching to Aero Problem: fc |
+----------------------------------------------------------------------+

CPCALC: Local speed too large. Compressibility corrections invalid.

CPCALC: Local speed too large. Compressibility corrections invalid.

Process finished with exit code 0
`

Code versions

  • Operating System: Ubuntu 22.04.3 LTS
  • Python: Python 3.11.5 in anaconda

Add Formatting and Linting

Description of feature

This repository does not currently have formatting and linting set up. This should be done following the lab standard with Flake8 and Black.

Potential solution

Implement Flake8 and Black following lab guides.

conda packaging?

Description of feature

Package for conda-forge. Thoughts @nwu63 ?

We (my company) also has some bugfixes and features we'd be happy to port back onto this project if we can get a conda-forge package.

We also have a working recipe - very minimal for this project, but just letting you know that we've done the legwork and there is no issue in building/packaging.

Potential solution

Standardizing and modernizing CMPLXFOIL

Description of feature

@A-CGray, @eytanadler, and I met with with @whophil and Co to discuss how to recombine two divergent forks of CMPLXFOIL (this one and their internal one). The main points from the meeting are:

  • Both teams are using CMPLXFOIL for quick airfoil analysis
  • The MDO Lab application is mostly for gradient-based optimization, standardized within the MACH framework (and potentially MPHYS in the long run)
  • @whophil and Co are not using the gradient-based side of CMPLXFOIL and do not want the overhead dependencies of the MACH framework
  • There is interest from both teams to have a centralized XFOIL library that can be imported into Python, for other projects to build off of.

The main issue in merging the two branches is the different applications, however this can be handled as Python-only differences using the same underlying Fortran code. With this in mind, we propose the following solution and areas to work on (@whophil and others please edit these as needed).

Potential solution

  • Remove prefoil as a dependency so that CMPLXFOIL as a repository only depends on
  • Package CMPLXFOIL into a Conda package
  • Establish that both teams' Python wrappers still work with the same underlying source code.
  • (Stretch goal) Add tests for the Fortran layer of the code.

@eytanadler, @A-CGray, @whophil, let me know if this sounds reasonable, we can keep the discussion going on this issue page.

Update repo to use baseclasses

Description

The repo does not currently use baseclasses

  • class does not inherit from AeroSolver
  • does not take in AeroProblem to solve

This would be a major refactor in the Python layer, so maybe only do this if people in the lab are actually going to use this

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.