¿Existe un buen solucionador de CFD de código abierto de alta calidad y fácil de usar?


17

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.


Cantera tiene envoltorios para python y Fortran, por lo que amplía un poco la búsqueda.
FrenchKheldar

¿Desea modelar flujos laminares o flujos turbulentos? Compresible o incompresible? Gas perfecto? ¿Fase única? Cuantos más detalles nos pueda dar, más precisa será la respuesta.
FrenchKheldar

@FrenchKheldar: Gracias por señalar eso. He agregado algunos detalles.
Geoff Oxberry

2
Un comentario más: si no te importa la acústica o las ondas, ¿no deberías poder usar un solucionador incompresible? Eso
ampliará

Permítanme reformular: no me importan los choques. Dado que la fase es un gas ideal, y los gases ideales cambian de densidad cuando cambia la presión, el flujo debe ser compresible.
Geoff Oxberry

Respuestas:


11

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 ++.


¡Gracias por la recomendación! He escuchado cosas buenas sobre OpenFOAM, y me gustaría usarlo en el futuro. En su experiencia, ¿fue fácil aprender la API? ¿Hay buenos tutoriales o ejemplos que usen OpenFOAM, preferiblemente con química?
Geoff Oxberry


1
Comience a aprender C ++ pronto. :) Buena velocidad.
tmaric

2

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.


¡Gracias! Tendré que echarle un vistazo, aunque puede llevarme un tiempo llegar a él. Cuando llegue el momento de usarlo, te haré saber cómo va.
Geoff Oxberry

2

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 .


0

¡Hay muchos por allá!

OpenFOAM es el mejor, en mi humilde opinión, pero otros están en este enlace ,


No brinde respuestas de 'solo enlace', ya que los enlaces pueden romperse.
Jan

No quería presentar todas las opciones mencionadas allí como "mías". Técnicamente, podría copiar y pegar todo el contenido, pero no soy esa persona. Entonces, puse el enlace directamente para dar créditos a los autores originales
T3rmInAt0r

1
Bien. Pero, podría decir, por ejemplo, que la cátedra de dinámica de fluidos computacional y mecánica de turbulencias de la universidad de Manchester ha compilado una lista de software de código abierto para ingenieros. Si lo hace, los demás visitantes aún pueden buscar en Internet en caso de que el enlace esté roto.
Jan

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.