OpenFoam vs FiPy

8

Necesito aprender y utilizar un paquete de solución automatizada de volumen finito para un proyecto en el que estoy trabajando y lo he reducido a estos dos paquetes. Me preguntaba si alguien tiene experiencia con ambos paquetes y quizás podría comentar una comparación. Considerando el objetivo similar de ambos paquetes, estoy un poco sorprendido de que no pueda encontrar mucho en el camino de una comparación en línea.

Mi sensación es que FiPy sería más fácil de aprender / implementar ya que está basado en Python, pero que OpenFoam puede ser más robusto y rico en funciones debido a su amplia adopción. Ambos paquetes tienen organizaciones muy creíbles detrás de ellos.

dmon
fuente

Respuestas:

3

No he usado FiPy pero solo OpenFOAM , pero creo que algunos puntos en ambas páginas de inicio sugieren que depende en gran medida de lo que quieras simular.

OpenFOAM ya tiene algunos solucionadores implementados (principalmente CFD, ya que su perfil indica física de plasma computacional, el mhdFoamsolucionador puede ser lo que desea o al menos sirve de base, aquí está su grupo de usuarios), pero se puede ampliar para resolver otros PDE factibles con FVM , mientras que en FiPy probablemente tendrá que implementar las ecuaciones desde cero de todos modos, y en el último caso, sí, Python es mucho más cómodo que C ++, al menos para mí.

Hay algunos códigos de Python que facilitan la vida con OpenFOAM: PyFoam para ayudar a configurar casos, y pythonflu , un contenedor para escribir solucionadores en Python (no probado, no sé cómo funciona).

Desde mi experiencia, la creación de un caso en el OpenFOAM es bastante tedioso y lo más probable es llegar a escribir guiones para automatizar la configuración de malla, etc de todos modos, así que no sé si en realidad FiPy requerir que un esfuerzo mucho mayor, incluso si usted utilizó una de los solucionadores ya implementados de OpenFOAM. Y si elige usar Python para esa secuencia de comandos, sospecho que puede escribir la mayor parte del código de una manera que la decisión sobre FiPy vs OpenFOAM se reduzca a una diferencia de menos de 100 líneas de código, es decir, no debería ser demasiado Es difícil cambiar de opinión más adelante, especialmente si se planificó de antemano.

Los puntos más importantes son, por supuesto, cuánto tiempo lleva la primera vez que se configura y qué tan bien funciona. Sin embargo, tampoco pude encontrar ninguna comparación, así que tendrías que compararlas tú mismo ...

Personalmente, si no hubiera usado OpenFOAM antes y necesitaría simular un sistema para el que OpenFOAM no proporciona un solucionador, lo más probable es que primero pruebe FiPy debido a mi preferencia de Python sobre C ++. Pero como se mencionó, junto con PyFoam, uno podría crear un marco bastante genérico para comparar los dos ... Sin embargo, si se pudiera usar un solucionador de OpenFOAM, probablemente usaría ese.

Tobias Kienzler
fuente
Nota al margen: Además del OpenFOAM 2 "oficial", también está el proyecto OpenFOAM 1.6-ext , que es una rama impulsada por la comunidad con muchas características enviadas por los usuarios, mientras que el primero es "solo" desarrollado por OpenCFD Ltd
Tobias Kienzler
Este es exactamente el tipo de opinión informada que estaba buscando, gracias. Parece que FiPy sería más adecuado para mis necesidades. La simulación de plasma a menudo requiere conjuntos de ecuaciones mucho más a medida, por lo que incluso algo como mhdFoam no es terriblemente atractivo para mí. Saludos por su respuesta
dmon
@dmon Me alegro de poder ayudar. Como se mencionó, puede valer la pena echarle un vistazo a pythonflu, tal vez pueda tener un PhD s comparel̶a̶v̶e̶student para comparar el rendimiento
:-P
@dmon Entonces, ¿cómo funcionaron las cosas?
Tobias Kienzler