AeroPython / aeropy

aeropy - Python tools for Aeronautical calculations
BSD 2-Clause "Simplified" License
10 stars 5 forks source link

Diseño de perfiles - Interfaz con XFOIL #13

Open astrojuanlu opened 9 years ago

astrojuanlu commented 9 years ago

http://web.mit.edu/drela/Public/web/xfoil/

AlexS12 commented 9 years ago

Yo he jugado un poquito con XFOIL y me llama la atención esto. Investigaré un poco qué tipo de cosas serían interesantes para hacer. Desde Python he utilizado subprocess para intentar comunicarme con XFOIL inspirado por estas referencias:

https://www.youtube.com/watch?v=od94WUiZVTY https://hakantiftikci.wordpress.com/2010/12/21/using-xfoil-and-automating-via-python-subprocess-module/

Me apunto, para echarle un vistazo y mantenerme al tanto :yum:

astrojuanlu commented 9 years ago

También he visto que un tipo pensó en hacer una interfaz con f2py:

http://svn.gna.org/svn/huribatash/trunk/xfoil_module/README.txt

He echado un vistazo al código fuente de XFOIL y es FORTRAN 77 lleno de sentencias GO TO, bien organizado eso sí. Podría ser un ejercicio divertido, aunque "challenging".

AunSiro commented 9 years ago

Yo tengo que utilizar el Xfoil para el proyecto, y quería intentar rehacer lo del algoritmo genético porque también me interesa mucho, así que me gustaría meterme en este subproyecto y trabajar con Álex.

Nota. ¿Se puede asignar a dos personas a la vez?

astrojuanlu commented 9 years ago

Eh... ha quedado claro xD

astrojuanlu commented 9 years ago

Para llamar a programas del sistema y recibir las salidas lo mejor, como dice @AlexS12, es el módulo subprocess:

https://docs.python.org/3/library/subprocess.html

Por otro lado, he visto en un vídeo que XFOIL tiene una especie de interfaz por línea de comandos en la que vas introduciendo las operaciones. En este sentido, tal vez algo como pexpect os vendría bien:

http://pexpect.readthedocs.org/en/latest/overview.html

Usé una interfaz parecida para recabar datos del programa HORIZONS de la NASA, que funciona de manera similar:

https://gist.github.com/Juanlu001/5944478

AunSiro commented 9 years ago

He estado buscando cosas para hacer esto, voy a probar a ver si lo hago funcionar con pexpect, que parece lo más sencillo, y si no, probaré este otro que también parece sencillo: http://pywinauto.googlecode.com/hg/pywinauto/docs/index.html

https://code.google.com/p/swapy/

Actualizo: Pexpect es para linux (Creo... el caso es que da algún tipo de error relacionado con windows). Pywinauto es para Python 2.

Voy a probar a ver si me aclaro con lo de subprocess, o buscaré los que ha usado Juanlu en su último enlace.

AunSiro commented 9 years ago

Gracias a Juanlu y a Alberto, finalmente hemos podido establecer comunicación entre Python y Xfoil!!!

Prototipo en:

https://github.com/AeroPython/aeropy/tree/Xfoil_interaction/aeropy/Xfoil_Interaction

AunSiro commented 9 years ago

La primera versión del algoritmo ya funciona! ESTÁAAAAAAAAA VIIIIIIIIIIIIIIIIIIIIIIIVVVVVVVVVVVVVOOOOOOOOOOOOOOOOO

:sunglasses:

OUHHH YEAAAHHHH