Mi tesis es sobre el desarrollo de métodos numéricos para la reducción del modelo en la combustión. Ejecuto mis métodos únicamente en la parte química de las simulaciones de combustión, y tengo muchos estudios de casos para simulaciones 0-D (sin flujo). Lo que me gustaría es ejecutar simulaciones que tengan flujo, preferiblemente simulaciones 2D o 3D.
Estas simulaciones tendrían que estar en paralelo, debido a los altos requisitos computacionales. También necesitaría algo que pueda interactuar con solucionadores de química como Chemkin o Cantera, para lo cual tengo el código fuente. (Chemkin está en Fortran 77 y Cantera está en C ++).
En el caso ideal, podría especificar un patrón de flujo utilizando los conocimientos básicos de mecánica de fluidos que tengo de mi programa de posgrado y algún paquete de CFD, agregar la química y ejecutarla. Si tengo que hacerlo, puedo configurar las ecuaciones que rigen el movimiento del fluido y la química para un estudio de caso simple basado en una configuración experimental utilizada por un antiguo colaborador, pero preferiría no rodar mi propio código CFD a menos que hubiera un paquete o paquetes que lo hicieron extremadamente fácil de hacer. Estaría dispuesto a pasar 2-3 semanas en ello; No sé si este requisito descarta PETSc o Trilinos. Si tengo que gastar más tiempo en ello, preferiría posponerlo hasta más tarde, porque tengo un colaborador que también proporciona un código CFD para estudios de casos.
¿Alguien tiene alguna experiencia usando un paquete CFD o escribiendo código CFD, y si es así, puede recomendarme uno? Una cosa que sé que me gustaría usar es la división de Strang, pero no soy un experto en CFD o PDE; Estudio la química y los métodos numéricos para la reducción del modelo. Además, comente cuánto tiempo le llevó ponerse al día utilizando el software que recomienda.
@FrenchKheldar señala que debo mencionar las características de los problemas que me gustaría resolver:
- Gas ideal (perfecto), monofásico
- Compresible
- El flujo laminar es esencial; El flujo turbulento es una ventaja. (Sé un poco sobre las turbulencias del trabajo previo en métodos numéricos en CFD, pero no he trabajado en solucionadores de CFD; solo sé un poco sobre física).
- La formulación del número cero de Mach está bien (no me importan los choques o el flujo supersónico)
- Química de la combustión, ignorando los flujos de Soret y Dufour, y tratando la difusión como Fickian
- La geometría puede ser algo simple
Puedo escribir código de interfaz, aunque cuanto menos tenga que escribir, mejor; @FrenchKheldar también señala que Cantera tiene enlaces Fortran y Python. Utilizo los enlaces Cantera Python en este momento para la creación rápida de prototipos, así que también me siento cómodo con ellos.
fuente
Respuestas:
Soy un gran usuario de OpenFOAM , así que, naturalmente, lo recomendaría. Tiene una gran cantidad de características, incluidos los modelos de combustión (aunque no necesariamente es exactamente lo que necesita) y se ha utilizado junto con Canterra otras personas lo . Si necesita un solucionador para una ecuación específica que aún no se ha implementado, puede escribir literalmente sus ecuaciones . No sé qué es la división de estrangulamientos (yo tampoco trabajo en la combustión), pero otras personas lo han usado en OpenFOAM .
Hay una cantidad limitada de tutoriales. Los documentados en la guía del usuario no incluyen la química. Hay algunos casos de muestra para los solucionadores de reacción que puede ver. Su mejor opción es revisar el OS-CFD sitio web del curso de posgrado en Chalmers (el enlace es para 2011, pero contiene un enlace a las páginas de años anteriores). Los estudiantes allí a menudo documentan los solucionadores en los que están trabajando, por ejemplo, aquí .
Acerca del esfuerzo por aprenderlo: si usa uno de los modelos predefinidos, es bastante sencillo de usar y debería poder obtener resultados en cuestión de semanas. Si tiene que descender por debajo del nivel superior (por ejemplo, para agregar un nuevo solucionador de ODE), las cosas pueden ponerse más difíciles con bastante rapidez y apreciará saber C ++.
fuente
Podrías usar PyClaw , una extensión paralela de Clawpack (nota: soy uno de los principales desarrolladores de PyClaw). Incluye solucionadores 2D y 3D para las ecuaciones invisibles de Euler (flujo compresible) de un gas ideal. También tiene una división de Strang incorporada, pero debe agregar la evaluación de términos viscosos y química usted mismo. Debe ser sencillo interactuar con Chemkin y Cantera, ya que PyClaw está escrito en Python y ya incluye el código Fortran 77 y el código C.
PyClaw es relativamente nuevo (aunque el código Clawpack subyacente es bastante antiguo) y, por lo tanto, no está tan establecido como algo como OpenFOAM.
fuente
Simulador de dinámica de fuego de NIST (FDS) de suena como lo que quieres. FDS es un solucionador de flujo de bajo número de Mach. La densidad puede cambiar, pero los efectos acústicos y los choques se descuidan.
FDS está bastante bien documentado, sin embargo, admito que no he buscado en las rutinas principales de solucionador de flujo. Tampoco sé mucho acerca de cómo FDS maneja la química de la combustión.
Sugiero descargar el último código del sitio Google Code de FDS .
fuente
¡Hay muchos por allá!
OpenFOAM es el mejor, en mi humilde opinión, pero otros están en este enlace ,
fuente
Puede usar la Biblioteca de simulación avanzada de código abierto , que es acelerada por hardware (en el caso, el cálculo de alto rendimiento es importante). Tiene tanto flujos laminares y turbulentos como reacciones químicas. También es fácil de usar, consulte el código fuente de la aerodinámica de una locomotora en un túnel de referencia.
fuente