Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

ss16:physiksimulation_doc_main

Hauptseite des Projekts

Physiksimulation/

Dokumentation

Einführung

Dieses Projekt hat das Ziel, die Bewegungen von Körpern unter Berücksichtigung von Gravitationskräften zwischen ihnen möglichst realitätsnah zu simulieren.
Wir haben uns entschieden, das User Interface in Python zu schreiben, welches mehr Programmierkomfort bietet. Da die Berechnungen sehr rechenaufwändig sind, führen wir diese mithilfe des schnelleren C++ durch. Um den Austausch von Daten zwischen beiden Teilen zu ermöglichen, verwenden wir Cython.

Verwendete Software und Formeln

  • PyQt für das GUI
  • Cython für das Interface zwischen Python und C++
  • VPython für die Animation und Ausgabe

Struktur des Programms

Der Startpunkt für das gesamte Programm ist Main.py. Einen ersten Überblick über den weiteren Programmverlauf kann man dem folgenden UML-Diagramm entnehmen:


durchgezogene Pfeile: [Pfeilende] importiert bzw. inkludiert [Pfeilspitze]
gestrichelte Pfeile: [Pfeilende] greift auf [Pfeilspitze] zu


Zuerst wird das GUI erzeugt. In diesem kann der Benutzer Objekte erstellen und Parameter für die Berechnung eingeben. Die Ergebnisse der Berechnung werden aktuell in eine Textdatei geschrieben. Nachdem diese abgeschlossen ist, ruft die Main.py den Visualizer auf. Dieser initialisiert ein VPython-Fenster, in dem die Ergebnisse angezeigt werden.
Der C++-Teil enthält keine main-Funktion. Er wird vor dem Programmstart von Cython zu einer .so-Datei kompiliert und gelinkt, die wie jedes andere Modul in Python importiert werden kann. Welche Funktionen Python nutzen kann, wird im PyCInterface.pyx festgelegt.

Details zu den Programmkomponenten

Eine gegliederte Auflistung aller Komponenten zusammen mit einer Beschreibung ihrer Funktionen und Quellcodes befindet sich hier.

Verlauf des Projekts

Einblicke in den Verlauf unserer Projektarbeit kann man hier erhalten.

Unsere Erfahrungen

ausstehend:

  • Speedup Pure Python ⇔ unser Programm

Zum Selbernutzen

Wer dieses Programm selbst nutzen möchte, sollte folgenden Schritten nachgehen:

  1. alle o.g. Software-Komponenten installieren
  2. die Projektdateien aus unserem Git-Repository herunterladen
  3. alle Dateien in einen gemeinsamen Ordner verschieben
  4. ggf. setup.py erneut ausführen (Details sind auf der entsprechenden Dokumentationsseite zu finden)
  5. Main.py ausführen, um das Programm zu starten

Wer sich nur mal ein Ergebnisbeispiel ansehen möchte, der:

  1. braucht lediglich VPython zu installieren
  2. muss nur folgende Komponenten aus dem Python-Ordner herunterladen:
    • Visualizer_lite.py
    • Reader.py
    • Parser.py
    • results.txt
  3. startet dann den Visualizer_lite

Ausblick/To-Do

In Zukunft soll Folgendes noch getan werden:

  • verbesserte Namensgebung (vor allem bei sämtlichen „Interface“-Dateien)
  • Verweise, die die Ordersturktur unterstützen (aktuell müssen sich alle Dateien im selben Ordner befinden)
  • Kollision von Objekten (aktuell fliegen sie durcheinander hindurch)
ss16/physiksimulation_doc_main.txt · Zuletzt geändert: 2016/09/01 10:42 von markumnus