Giter Club home page Giter Club logo

ezaero's People

Contributors

astrojuanlu avatar partmor 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

Watchers

 avatar  avatar  avatar  avatar

ezaero's Issues

Implement general wing geometry

Let me propose an interesting upgrade: imagine we want to carry out a simulation on a general wing geometry like the one shown below:

At the moment, ezaero is able to properly mesh and solve for trapezoidal lifting surfaces. This new feature would require a software refactoring, but any geometry could be generated!

I propose the following steps to achieve this new feature:

  • Generate a vlm/lifting_surface.py module which holds the definition of a LiftingSurface class. This class holds all geometrical definitions for a small trapezoidal section. It contains a plot() method for showing the current geometry without having to run a simulation. Also, it includes a new r_offset when building the object, which is the position vector of the leading edge of the root. This will enable to move the part along the global model geometry.

newplot (14)

  • Instead of a single wing, a list of LiftingSurfaces modeling the global geometry is passed to the Simulation instance. Influence coefficient matrices are stacked and a global solution is finally achieved. Testing cases can be implemented from this online solver.

Let me now what you think about this new feature when possible, @partmor ๐Ÿ‘

Consider using plotly for 3D visualizations

Thank you for this awesome package! I was coding my own VLM (due to academical reasons) when just discovered ezaero and would like to extend some of its capabilities.

At the moment, three dimensional visualizations are based on matplotlib. From my point of view, we should keep matplotlib for 2D visualization and use plotly as an interactive display. I've already implemented this feature, see the final result in the figure below this lines. The final figure is completely customizable and be rendered directly in the documentation of the project.

newplot (7)

Would you like me to open associated pull request, @partmor?

Switch tox checkers to general python3

At the moment, tox.ini file holds several non critical environments: check,coverage,clean,docs and format. Those are configure to run on a Python 3.7 version, see:

ezaero/tox.ini

Lines 5 to 9 in a7c1f31

[testenv]
basepython =
py37: {env:PYTHON:python3.7}
py38: {env:PYTHON:python3.8}
{check,coverage,clean,docs,format}: {env:PYTHON:python3.7}

We might consider switching those to a general python3 environment, since package tests can be run in both python3.7 and python3.8.

Consider switching CI/CD to GitHub Actions

Consider switching CI/CD pipelines to GH Actions.

Currently the project has:

  • travis-ci: for Linux and MacOS (does not integrate out-of-the-box with the checks of PRs anymore)
  • appveyor: for Windows

In theory both CI providers could be switched to GH Actions (AFAIK, GH Actions supports all the mentioned platforms).

Discuss about sweep angle when defining a wing

While working in #3, I just noticed that panels are not being generated properly since a local chord shift is being introduced:

x_A = (r - c_AC / 4) + i * dx_AC
x_B = (s - c_BD / 4) + i * dx_BD
x_C = x_A + dx_AC
x_D = x_B + dx_BD
x_pc = (q - c_pc / 4) + (i + 3 / 4) * dx_pc

This shift should be introduced only within vortex rings, not on wing panels. The bug has not been identified early since for drawing actual geometry of the wing, panel matrix was used. I implemented a geometry visualizer which does not require from a simulation to be used, only needs wing parameters:

newplot (16)

Notice how panels are not placed in proper place, they are shifted in the local chord direction. I was finally able to fix this issue, see:

newplot (17)

Now panels adapt perfectly to geometry and collocation points are 3/4 of the local chord

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.