OpenFoam gegen FiPy

8

Ich muss ein automatisiertes Lösungspaket mit endlichem Volumen für ein Projekt, an dem ich arbeite, lernen und verwenden und habe es auf diese beiden Pakete eingegrenzt. Ich habe mich gefragt, ob jemand Erfahrung mit beiden Paketen hat und vielleicht einen Vergleich kommentieren könnte. Angesichts des ähnlichen Ziels beider Pakete bin ich ein wenig überrascht, dass ich beim Online-Vergleich nicht viel finden kann.

Meiner Meinung nach wäre FiPy einfacher zu erlernen / zu implementieren, da es Python-basiert ist, aber dass OpenFoam aufgrund seiner breiten Akzeptanz möglicherweise robuster und funktionsreicher ist? Beide Pakete haben sehr glaubwürdige Organisationen hinter sich.

dmon
quelle

Antworten:

3

Ich habe FiPy nicht verwendet, sondern nur OpenFOAM , aber ich denke, einige Punkte auf beiden Homepages legen nahe, dass es stark davon abhängt, was Sie simulieren möchten.

OpenFOAM hat bereits einige Löser implementiert (meistens CFD, da Ihr Profil die rechnergestützte Plasmaphysik angibt, der mhdFoamLöser kann das sein, was Sie wollen oder zumindest als Basis dienen, hier ist seine Benutzergruppe), kann aber erweitert werden, um andere FVM-mögliche PDEs zu lösen In FiPy müssen Sie die Gleichungen wahrscheinlich sowieso von Grund auf neu implementieren - und im letzteren Fall ist Python zumindest für mich viel komfortabler als C ++.

Es gibt einige Python-Codes, die das Leben mit OpenFOAM erleichtern: PyFoam zum Einrichten von Fällen und Pythonflu , ein Wrapper zum Schreiben von Lösern in Python (ungetestet, ich weiß nicht, wie das funktioniert).

Meiner Erfahrung nach ist das Einrichten eines Falls in OpenFOAM ziemlich mühsam und Sie werden höchstwahrscheinlich ohnehin Skripte schreiben, um das Mesh-Setup usw. zu automatisieren. Daher weiß ich nicht, ob FiPy tatsächlich so viel mehr Aufwand erfordern würde, selbst wenn Sie eines verwenden würden von OpenFOAMs bereits implementierten Solvern. Und sollten Sie sich für Python für dieses Scripting entscheiden, können Sie vermutlich den größten Teil des Codes so schreiben, dass die Entscheidung zwischen FiPy und OpenFOAM auf einen Unterschied von weniger als 100 Codezeilen hinausläuft, dh es sollte nicht so sein Es ist schwierig, Ihre Meinung später zu ändern, besonders wenn dies vorher geplant wurde.

Die wichtigeren Punkte sind natürlich, wie viel Zeit das erste Setup benötigt und wie gut es funktioniert. Ich konnte auch keine Vergleiche finden, also müsstest du sie selbst vergleichen ...

Hätte ich OpenFOAM noch nicht verwendet und müsste ein System simulieren, für das OpenFOAM noch keinen Solver bereitstellt, würde ich FiPy höchstwahrscheinlich zuerst ausprobieren, da ich Python gegenüber C ++ bevorzuge. Aber wie bereits erwähnt, könnte man zusammen mit PyFoam wahrscheinlich ein ziemlich allgemeines Framework entwickeln, um die beiden zu vergleichen ... Wenn jedoch ein OpenFOAM-Löser verwendet werden könnte, würde ich wahrscheinlich dieses verwenden.

Tobias Kienzler
quelle
Randnotiz: Neben dem "offiziellen" OpenFOAM 2 gibt es auch das OpenFOAM 1.6-ext-Projekt , ein Community-gesteuerter Zweig mit vielen vom Benutzer eingereichten Funktionen, während der erstere "nur" von OpenCFD Ltd
Tobias Kienzler am
Dies ist genau die Art von informierter Meinung, nach der ich gesucht habe, danke. Es hört sich so an, als wäre FiPy besser für meine Bedürfnisse geeignet. Die Plasmasimulation erfordert oft viel mehr maßgeschneiderte Gleichungssätze, und so ist selbst so etwas wie mhdFoam für mich nicht besonders attraktiv. Prost auf Ihre Antwort
dmon
@dmon Ich bin froh, dass ich helfen konnte. Wie bereits erwähnt, ist Pythonflu dann vielleicht einen Blick wert - vielleicht können Sie einen Doktoranden bitten, die Leistung zu vergleichen :-P
Tobias Kienzler
@dmon Also, wie hat es geklappt?
Tobias Kienzler