OpenFoam

Aus OpenTec
Version vom 11. Juli 2011, 13:55 Uhr von Michael Klotsche (Diskussion | Beiträge) (Schützte „OpenFoam“: Weblink-Spam ([edit=autoconfirmed] (unbeschränkt) [move=autoconfirmed] (unbeschränkt)))

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Allgemeines

OpenFoam ist ein Open Source CFD (Computational Fluid Dynamics) Programm. Es ist ein sehr umfangreiches Werkzeug. Im Gegensatz zu manch anderem komerzeillem CFD-Programm benötigt es sehr wenig Speicherplatz und wenig Rechenkapazität und ist einfach zu bedienen.
Auf dieser Seite des Wikis möchte ich über meine Erfahrungen bei der Einarbeitung in OpenFoam berichten. Der Grund dafür ist, dass OpenFoam, obwohl es ein sehr gutes Programm ist, nur in Fragmenten Dokumentiert ist. Das heißt, es existieren gute, aber unvollständige und bruchstückhafte Dokumentationen, die im gesamten Netz verstreut sind. Diesem Zustand soll Abhilfe geschaffen werden, damit OpenFoam eins Stückchen mehr zu einer freien Technologie wird.
Als Betriebssystem verwende ich Ubuntu 10.04 "Lucid Lynx".


OpenFoam Tagebuch der Einarbeitung

06.07.11

  • OpenFoam wird im Terminal ausgeführt. Lediglich das Anschauen der Ergebnisse funktioniert mit "ParaView" grafisch.
  • Ein OpenFoam Projekt besteht immer aus einem Ordner, in dem sich Unterordner befinden. Das ist das erste, was man als Nutzer wissen sollte.
  • Die Randbedingungen befinden sich im Ordner "0"
  • Das Gitter ohne die Randbedingungen wird in der Textdatei "~/Beispielprojekt/constant/polyMesh/blockMeshDict" definiert.
  • Die Definition eines Gitters ist in im Tutorial im Kaptiel 5.1 beschrieben.
  • OpenFoam erstellt bei seiner Installation den Ordner "Open Foam", in dem sich einige Beispielprogramme befinden. Um ein Beispielprogramm zu starten geht man wie folgt vor:

1. Wechsel in das Projektverzeichnis mit dem Befehl cd

cd $FOAM_RUN/tutorials/incompressible/icoFoam/cavity


2. Generierung des Gitters mit BlockMesh

blockMesh


3. Lösung des Gleichungssystems mit icoFoam

icoFoam


4. Anschauen der Ergebnisse mit paraFoam

paraFoam


  • Wenn man ein Mesh von Hand erstellen möchte, nimmt man am besten eine blockMeshDict Datei aus einem Beispielprogramm und ändert diese von Hand. Dabei ist es holfreich, das Mesh in einem 2D CAD System zu zeichnen, damit man die Koordinaten herauslesen kann. Um die Topologie des Mesh anzuschauen, ohne das alle anderen Dateien vorhanden sein müssen, kann man den Befehl blockMesh mit der Option -blockTopology verwenden
blockMesh -blockTopology


  • Bei der Definition eines Mesh wird innerhalb der Textdatei blockMeshDict wie folgt vorgegangen:

1. Kopfzeilen definieren
2. Eckpunkte benennen
3. Körper benennen
4. Flächen benennen



10.07.11

  • Der Discretizer scheint mir ein interessantes Werkzeug zur Erstellung eines Gitters mit Randbedingungen zu sein.
  • Zur Installation wird das zip-File des Discretizers heruntergeladen und einfach entpackt. Gestartet wird der Discretizer, indem man in dem Ordner "discretizer" das bash-Script "discretizer_setup.sh" startet.
  • Der Discretizer erstellt eine Dateistruktur, die OpenFoam direkt verwenden kann. Im Discretizer ist der Zugang zu OpenFoam bereits integriert.
  • Die Randbedingungen, die man im Discretizer eingestellt hat, muss man in einer getrennten csv-Datei von Hand abspeichern!
  • Das Schreiben der OpenFoam Dateistruktur erfolgt im Menue mit "Run -> Sync Files"
  • Der Discretizer wird im Teminal ausgeführt. Im Terminal tauchen dann auch Fehlermeldungen auf.


11.07.11

  • Es können auch Zeitlich variierende Randbedingungen angegeben werden. Dies ist im Tutorial "TJunction" "OpenFOAM/Nutzer-2.0.0/run/tutorials/incompressible/pimpleFoam/TJunction/0/p" beschrieben. Das Schlüsselwort hier ist in folgenden Codezeilen enthalten
type            timeVaryingTotalPressure;
p0              100040; // only used for restarts
outOfBounds     clamp;
fileName        "$FOAM_CASE/constant/p0vsTime";



Weblinks