Meine Dissertation beschäftigt sich mit der Entwicklung numerischer Methoden zur Modellreduktion in der Verbrennung. Ich verwende meine Methoden ausschließlich für den chemischen Teil von Verbrennungssimulationen und habe viele Fallstudien für 0-D-Simulationen (keine Strömung). Was ich möchte, ist, Simulationen auszuführen, in denen ein Fluss vorliegt, vorzugsweise 2-D- oder 3-D-Simulationen.
Diese Simulationen müssten aufgrund des hohen Rechenaufwands parallel ablaufen. Ich brauche auch etwas, das mit Chemielösern wie Chemkin oder Cantera zusammenarbeitet, für die ich den Quellcode habe. (Chemkin ist in Fortran 77 und Cantera ist in C ++.)
Im Idealfall könnte ich anhand der Grundkenntnisse der Strömungsmechanik, die ich aus meinem Abschlussprogramm und einem CFD-Paket habe, ein Strömungsmuster festlegen, die Chemie hinzufügen und ausführen. Wenn ich muss, kann ich die Gleichungen für die Flüssigkeitsbewegung und die Chemie für eine einfache Fallstudie auf der Grundlage eines Versuchsaufbaus eines ehemaligen Mitarbeiters aufstellen, aber ich würde es sehr vorziehen, meinen eigenen CFD-Code nicht zu rollen, wenn es keinen gibt Ein Paket oder Pakete, die es extrem einfach gemacht haben. Ich würde gerne 2-3 Wochen damit verbringen. Ich weiß nicht, ob diese Anforderung PETSc oder Trilinos ausschließt. Wenn ich länger dafür ausgeben muss, würde ich es lieber auf später verschieben, weil ich einen Mitarbeiter habe, der auch einen CFD-Code für Fallstudien liefert.
Hat jemand Erfahrung mit einem CFD-Paket oder mit dem Schreiben von CFD-Code, und wenn ja, können Sie einen empfehlen? Eine Sache, von der ich weiß, dass ich sie gerne verwenden würde, ist die Strang-Aufteilung, aber ich bin kein CFD- oder PDE-Experte. Ich studiere die Chemie und die numerischen Methoden zur Modellreduktion. Bitte geben Sie auch an, wie lange Sie mit der von Ihnen empfohlenen Software gebraucht haben, um auf den neuesten Stand zu kommen.
@FrenchKheldar macht einen guten Punkt, dass ich die Eigenschaften von Problemen erwähnen sollte, die ich lösen möchte:
- Ideales (perfektes) Gas, einphasig
- Komprimierbar
- Eine laminare Strömung ist wesentlich; turbulente Strömung ist ein Plus. (Ich kenne mich ein wenig mit Turbulenzen aus früheren Arbeiten mit numerischen Methoden in der CFD aus, habe aber noch nicht mit CFD-Solvern gearbeitet. Ich kenne mich nur ein wenig mit Physik aus.)
- Null-Mach-Zahl-Formulierung ist in Ordnung (Schocks oder Überschallfluss sind mir egal)
- Die Verbrennungschemie ignoriert die Soret- und Dufour-Flüsse und behandelt die Diffusion als Fickian
- Geometrie kann etwas Einfaches sein
Ich kann Schnittstellencode schreiben, aber je weniger ich schreiben muss, desto besser. @FrenchKheldar weist auch darauf hin, dass Cantera über Fortran- und Python-Bindungen verfügt. Ich verwende momentan die Cantera Python-Bindungen für das Rapid Prototyping, daher bin ich auch damit vertraut.
quelle
Antworten:
Ich bin ein starker Benutzer von OpenFOAM , daher würde ich es natürlich empfehlen. Es verfügt über eine Vielzahl von Funktionen, einschließlich Verbrennungsmodellen (obwohl nicht unbedingt genau das, was Sie benötigen) und wurde von anderen Benutzern zusammen mit Canterra verwendet . Wenn Sie einen Löser für eine bestimmte Gleichung benötigen, die noch nicht implementiert wurde, können Sie Ihre Gleichungen buchstäblich schreiben . Ich weiß nicht, was Strang-Splitting ist (ich arbeite nicht selbst an der Verbrennung), aber andere Leute haben es in OpenFOAM verwendet .
Es gibt nur eine begrenzte Anzahl von Tutorials. Die in der Bedienungsanleitung dokumentierten enthalten keine Chemie. Es gibt einige Beispielfälle für die Reaktionslöser, die Sie sich ansehen können. Am besten besuchen Sie die OS-CFD- Kurswebsite von Chalmers (Link für 2011, enthält jedoch einen Link zu den Seiten der Vorjahre). Die Studenten dort dokumentieren oft die Löser, an denen sie arbeiten, zB hier .
Informationen zum Lernaufwand: Wenn Sie eines der vordefinierten Modelle verwenden, ist die Verwendung recht einfach und Sie sollten in der Lage sein, innerhalb weniger Wochen Ergebnisse zu erzielen. Wenn Sie unter die oberste Ebene absteigen müssen (z. B. um einen neuen ODE-Solver hinzuzufügen), kann es sehr schnell schwieriger werden, und Sie werden es zu schätzen wissen, C ++ zu kennen.
quelle
Sie könnten PyClaw verwenden , eine parallele Erweiterung von Clawpack (Anmerkung: Ich bin einer der Hauptentwickler von PyClaw). Es enthält 2D- und 3D-Löser für die nichtviskosen Euler-Gleichungen (kompressible Strömung) eines idealen Gases. Es ist auch eine Strang-Aufspaltung eingebaut, aber Sie müssen die Bewertung der viskosen Terme und der Chemie selbst vornehmen. Die Schnittstelle zu Chemkin und Cantera sollte unkompliziert sein, da PyClaw in Python geschrieben ist und bereits Fortran 77- und C-Code enthält.
PyClaw ist relativ neu (obwohl der zugrunde liegende Clawpack-Code ziemlich alt ist) und daher nicht so etabliert wie OpenFOAM.
quelle
Der Fire Dynamics Simulator (FDS) von NIST hört sich nach Ihren Wünschen an. FDS ist ein Durchflusslöser mit niedriger Machzahl. Die Dichte kann sich ändern, aber akustische Effekte und Stöße werden vernachlässigt.
FDS ist ziemlich gut dokumentiert, aber ich gebe zu, ich habe nicht in den Routinen des Hauptflusslösers nachgesehen. Ich weiß auch nicht viel darüber, wie FDS mit der Verbrennungschemie umgeht.
Ich empfehle, den neuesten Code von der Google Code-Site von FDS herunterzuladen .
quelle
Da drüben gibt es genug!
OpenFOAM ist das Beste, IMHO, aber andere sind unter diesem Link ,
quelle
Sie können die Open Source Advanced Simulation Library verwenden, die hardwarebeschleunigt ist (für den Fall, dass Hochleistungsberechnungen wichtig sind). Es hat sowohl laminare als auch turbulente Strömungen und chemische Reaktionen. Es ist auch einfach zu bedienen, siehe den Quellcode der Aerodynamik einer Lokomotive in einem Tunnel- Benchmark.
quelle