El uso de Python en la
ingeniería química
Computer-aided Chemical Engineering

www.cacheme.org

24/11/2013
PyConES

24/11/2013

cacheme.org

Esquema
• Presentación
• ¿Por qué Python?

• Resolución de ecuaciones en derivadas

parc...
PyConES

Presentación

24/11/2013

cacheme.org

• Asociación formada por ingenieros químicos

(profesionales, docentes y e...
PyConES

¿Quiénes somos?

24/11/2013

cacheme.org

4
PyConES

Actividades
• Formación
• Webinars
• Desarrollo
• ¡Podcast!

24/11/2013

cacheme.org

5
PyConES

¿Por qué Python?

24/11/2013

cacheme.org

• Python es lenguaje de alto nivel conveniente para un
•
•

•

•
•
•

...
PyConES

“As a simulation engineer in 2013, you really are standing on the
shoulders of giants”
Abhishek Chintagunta

24/1...
PyConES

1. Resolución de EDP

24/11/2013

cacheme.org

• Las ecuaciones en derivadas parciales (EDP) permiten modelar fen...
PyConES

CFD with Python:
12 steps to Navier Stokes

24/11/2013

cacheme.org

Lorena A. Barba

• Modulo interactivo online...
PyConES

CFD with Python: Lorena A. Barba
12 steps to Navier Stokes
• Convección lineal

(a)

• Difusión
• Ecuación de Bur...
PyConES

CFD with Python: Lorena A. Barba
12 steps to Navier Stokes
• Paso 7: Difusión en 2D

Reorganizando la ecuación di...
PyConES

CFD with Python: Lorena A. Barba
12 steps to Navier Stokes
• Paso 7: Difusión en 2D

Reorganizando la ecuación di...
PyConES

CFD with Python: Lorena A. Barba
12 steps to Navier Stokes

24/11/2013

13

cacheme.org

• Paso 7: Difusión en 2D...
PyConES

CFD with Python: Lorena A. Barba
12 steps to Navier Stokes
• Paso 7: Difusión en 2D

24/11/2013

14

cacheme.org
PyConES

CFD with Python: Lorena A. Barba
12 steps to Navier Stokes

24/11/2013

15

cacheme.org
PyConES

24/11/2013

16

cacheme.org

FiPy

• FiPy resuelve EDPs mediante el método de los volúmenes finitos (FVM)

con pr...
PyConES

24/11/2013

17

cacheme.org

FiPy
• Resolución de ecuaciones con la siguiente forma:

transitorio

difusión

conv...
PyConES

18

24/11/2013

cacheme.org

FiPy: Ejemplo

• Ejemplo de resolución de un problema de difusión en estado estacion...
PyConES

24/11/2013

19

cacheme.org

FiPy: Ejemplo

Usando la malla construimos
las variables de las celdas
Representar l...
PyConES

Conclusiones

24/11/2013

cacheme.org

• Python junto a sus librerías permite la resolución de problemas

típicos...
24/11/2013

PyConES

www.cacheme.org

@CAChemEorg
CAChemEorg

CAChemE
mail

info@cacheme.org

21
Upcoming SlideShare
Loading in …5
×

Python para resolver EDPs - Ingeniería Química - PyConES 2013

2,690 views

Published on

La resolución de ecuaciones diferenciales parciales (EDPs) mediante métodos numéricos permite obtener soluciones a problemas típicos presentes tanto en el ámbito ingenieril como científico. Tales problemas incluyen diferentes fenómenos físicos como propagación del sonido o del calor, la electrostática, la electrodinámica, la dinámica de fluidos, la elasticidad etc.

Existen numerosos paquetes de software para resolver EDPs, usando una variedad de idiomas y métodos numéricos. Muchos de ellos son propietarios y suponen un alto coste para las empresas y/o universidades. Además, la madurez de los mismos y su sencillez de uso pueden ocasionar efectos adversos convirtiendo estás herramientas en auténticas cajas negras.

En este marco, Python, en conjunto con sus librerías (NumPy, SciPy, FiPy), proporciona una herramienta perfecta que facilita el aprendizaje y desarrollo de la intuición necesarias para la resolución de estos problemas de forma libre y gratuita.

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,690
On SlideShare
0
From Embeds
0
Number of Embeds
217
Actions
Shares
0
Downloads
42
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Python para resolver EDPs - Ingeniería Química - PyConES 2013

  1. 1. El uso de Python en la ingeniería química Computer-aided Chemical Engineering www.cacheme.org 24/11/2013
  2. 2. PyConES 24/11/2013 cacheme.org Esquema • Presentación • ¿Por qué Python? • Resolución de ecuaciones en derivadas parciales • Resolución de problemas de optimización • Diseño de reactores en la industria de procesos químicos 2
  3. 3. PyConES Presentación 24/11/2013 cacheme.org • Asociación formada por ingenieros químicos (profesionales, docentes y estudiantes) que pretende estimular las posibilidades de software en la ingeniería de procesos. • Promueve las ventajas de las nuevas herramientas de software libre disponibles y fomenta su uso en la universidad e industria. • Especialización en simulación y programación matemática (optimización). 3
  4. 4. PyConES ¿Quiénes somos? 24/11/2013 cacheme.org 4
  5. 5. PyConES Actividades • Formación • Webinars • Desarrollo • ¡Podcast! 24/11/2013 cacheme.org 5
  6. 6. PyConES ¿Por qué Python? 24/11/2013 cacheme.org • Python es lenguaje de alto nivel conveniente para un • • • • • • desarrollo rápido de código Su filosofía de diseño enfatiza la simplicidad y legibilidad de código Posee núcleo de lenguaje relativamente pequeño con el apoyo de magníficas librerías (NumPy, SciPy, scikit-learn pandas, matplotlib etc.) Es lenguaje multiparadigma, en el que varios estilos de programación son compatibles (imperativo, orientado a objetos, funcional) Lenguaje de programación interpretado en lugar de compilado. Es multiplataforma (Windows, MacOS y Linux) Software libre 6
  7. 7. PyConES “As a simulation engineer in 2013, you really are standing on the shoulders of giants” Abhishek Chintagunta 24/11/2013 cacheme.org CFD and Coffee (blog) • • • • Franz Navarro Ingeniero Químico Universidad de Alicante francisco.navarro@cacheme.org 1. Resolución de EDPs con Python 7
  8. 8. PyConES 1. Resolución de EDP 24/11/2013 cacheme.org • Las ecuaciones en derivadas parciales (EDP) permiten modelar fenómenos físicos como la propagación del sonido o del calor, la electrostática, la electrodinámica, la dinámica de fluidos, etc. • Existen numerosos paquetes de software para resolver EDP, usando una variedad de lenguajes y métodos numéricos. • Comerciales: COMSOL Multiphysics, ANSYS, Abaqus... • Free/Open source: OpenFOAM, FreeFem++, Elmer, FiPy… Problema simple de difusión resuelto en Python (FiPy) con menos de 40 líneas de código 8
  9. 9. PyConES CFD with Python: 12 steps to Navier Stokes 24/11/2013 cacheme.org Lorena A. Barba • Modulo interactivo online de CFD con Python impartido por la profesora Lorena A. Barba (Boston University) • Diseñado para principiantes en programación y en CFD • Resolución numérica mediante el método de las diferencias finitas • Videos explicativos de sus clases también online • Material y código libre y gratuito lorenabarba.com 9
  10. 10. PyConES CFD with Python: Lorena A. Barba 12 steps to Navier Stokes • Convección lineal (a) • Difusión • Ecuación de Burgers • Pasos 5-10 pasan a 2D: • Convección lineal • Convección no lineal • Difusión • Ecuación de Burgers • Ecuación de Laplace • Ecuación de Poisson • Pasos 11-12 resuelve la ecuación de Navier-Stokes en 2D: • Flujo en una cavidad • Flujo en un canal (a) (b) +Introducción a Python, Numpy, SimPy, matplotlib y Numba 10 cacheme.org • Pasos 1-4 son en una dimensión: • Convección no lineal 24/11/2013 (b)
  11. 11. PyConES CFD with Python: Lorena A. Barba 12 steps to Navier Stokes • Paso 7: Difusión en 2D Reorganizando la ecuación discretizada: 24/11/2013 11 cacheme.org
  12. 12. PyConES CFD with Python: Lorena A. Barba 12 steps to Navier Stokes • Paso 7: Difusión en 2D Reorganizando la ecuación discretizada: 24/11/2013 12 cacheme.org
  13. 13. PyConES CFD with Python: Lorena A. Barba 12 steps to Navier Stokes 24/11/2013 13 cacheme.org • Paso 7: Difusión en 2D Condición CFL para asegurar la convergencia, se trabaja con ella en el Paso 3.
  14. 14. PyConES CFD with Python: Lorena A. Barba 12 steps to Navier Stokes • Paso 7: Difusión en 2D 24/11/2013 14 cacheme.org
  15. 15. PyConES CFD with Python: Lorena A. Barba 12 steps to Navier Stokes 24/11/2013 15 cacheme.org
  16. 16. PyConES 24/11/2013 16 cacheme.org FiPy • FiPy resuelve EDPs mediante el método de los volúmenes finitos (FVM) con programación orientada a objetos y estando escrito en Python. • Mayor grado de abstracción (integradas funciones de mallado de Gmesh) • Framework maduro y bien documentado (permite Python 3.x) • 100% gratuita y de dominio de público (open source) • Utilizado en investigación y academia (especializado en ciencia de los materiales) • Desarrollado en centros de investigación norteamiercanos (CTCMS y NIST). ctcms.nist.gov/fipy/
  17. 17. PyConES 24/11/2013 17 cacheme.org FiPy • Resolución de ecuaciones con la siguiente forma: transitorio difusión convección fuente (source) Siendo 𝜌, 𝑢, Γ𝑖 los coeficientes de sus respectivos términos • Permite acoplar fenómenos multifísicos de forma sencilla. ctcms.nist.gov/fipy/
  18. 18. PyConES 18 24/11/2013 cacheme.org FiPy: Ejemplo • Ejemplo de resolución de un problema de difusión en estado estacionario pero con una geometría circular y FiPy. • Mallado P3 C1 C2 P1 P2 P4 C3 C4 P5 cacheme.org
  19. 19. PyConES 24/11/2013 19 cacheme.org FiPy: Ejemplo Usando la malla construimos las variables de las celdas Representar la malla Coeficiente de difusión Condiciones de contorno Resolución Representación (ejecutado en un script)
  20. 20. PyConES Conclusiones 24/11/2013 cacheme.org • Python junto a sus librerías permite la resolución de problemas típicos de ingeniería y todo ello en un mismo lenguaje-entorno. • Python permite centrarse en el algoritmo y no en la sintaxis del lenguaje. Es la navaja suiza de los lenguajes permitiendo pasar a C en cualquier momento que se necesite. • Es multiplataforma, libre y gratuito por lo que su adopción en universidades y empresa es sencilla • Si se quiere una herramienta lo más compatible con MATLAB, Octave UPM es otra opción interesante pero mantendrá sus mismas capacidades (y limitaciones) técnicas. • Python es posiblemente la mejor opción como primer lenguaje de programación en el ámbito de programación científica. 20
  21. 21. 24/11/2013 PyConES www.cacheme.org @CAChemEorg CAChemEorg CAChemE mail info@cacheme.org 21

×