El uso de Python en la
ingeniería química
Computer-aided Chemical Engineering
www.cacheme.org
24/11/2013
PyConES
24/11/2013
2
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
Presentación
PyConES
24/11/2013
3
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).
¿Quiénes somos?
PyConES
24/11/2013
4
cacheme.org
PyConES
24/11/2013
5
cacheme.org
Actividades
• Formación
• Webinars
• Desarrollo
• ¡Podcast!
¿Por qué Python?
PyConES
24/11/2013
6
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
“As a simulation engineer in 2013, you really are standing on the
shoulders of giants”
Abhishek Chintagunta
CFD and Coffee (blog)
cacheme.org
PyConES
24/11/2013
7
Ingeniero Químico
• Franz Navarro
•
• Universidad de Alicante
•
[email protected]
1. Resolución de EDPs con Python
1. Resolución de EDP
PyConES
24/11/2013
8
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
CFD with Python:
12 steps to Navier Stokes
• 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
PyConES
24/11/2013
9
cacheme.org
Lorena A. Barba
lorenabarba.com
CFD with Python:
12 steps to Navier Stokes
Lorena A. Barba
• Pasos 1-4 son en una dimensión:
PyConES
24/11/2013
10
cacheme.org
(a)
(b)
• Convección lineal
• Convección no lineal
• 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 (a)
• Flujo en un canal (b)
+Introducción a Python, Numpy, SimPy, matplotlib y Numba
PyConES
24/11/2013
11
cacheme.org
CFD with Python:
12 steps to Navier Stokes
Lorena A. Barba
• Paso 7: Difusión en 2D
Reorganizando la ecuación discretizada:
PyConES
24/11/2013
12
cacheme.org
CFD with Python:
12 steps to Navier Stokes
Lorena A. Barba
• Paso 7: Difusión en 2D
Reorganizando la ecuación discretizada:
PyConES
24/11/2013
13
cacheme.org
CFD with Python:
12 steps to Navier Stokes
Lorena A. Barba
• Paso 7: Difusión en 2D
Condición CFL para asegurar la convergencia,
se trabaja con ella en el Paso 3.
PyConES
24/11/2013
14
cacheme.org
CFD with Python:
12 steps to Navier Stokes
Lorena A. Barba
• Paso 7: Difusión en 2D
CFD with Python:
12 steps to Navier Stokes
Lorena A. Barba
PyConES
24/11/2013
15
cacheme.org
FiPy
PyConES
24/11/2013
16
cacheme.org
• 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/
FiPy
• Resolución de ecuaciones con la siguiente forma:
PyConES
24/11/2013
17
cacheme.org
transitorio
difusión
convección
fuente (source)
Siendo
Comentarios de: pycones CAChemE - El uso de Python en la ingenería química (0)
No hay comentarios