Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

ss16:physiksimulation_doc_main

Dies ist eine alte Version des Dokuments!


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.

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

Unsere Erfahrungen

ausstehend:

  • Speedup Pure Python ⇔ unser Programm

Ausblick/To-Do

In Zukunft soll Folgendes noch getan werden:

  • verbesserte Namensgebung (vor allem bei sämtlichen „Interface“-Dateien)
  • real time-Berechnung und -Anzeige (aktuell wird erst berechnet, in eine Datei geschrieben und dann angezeigt)
  • Verweise, die die Ordersturktur unterstützen (aktuell müssen sich alle Dateien im selben Ordner befinden)
  • Speicherung der Gravitationskonstante im Universe (aktuell in der Simulation)
  • Kollision von Objekten (aktuell fliegen sie durcheinander hindurch)
ss16/physiksimulation_doc_main.1471205684.txt.gz · Zuletzt geändert: 2016/08/14 22:14 von markumnus