Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

ss16:physiksimulation

HINWEISE ZUR VERBESSERUNG

1. Die Dokumentation des Codes und der Programmkomponenten ist vorbildlich, zur Dokumentation des Projekts würde aber auch noch eine (kurze) physikalisch-mathematische Einführung gehören, die erklärt:

  • Wie das physikalische System beschrieben wird (Newton'sche Gesetze)
  • Was ein Euler-Verfahren, bzw. rk4 ist (das ist teilweise im Vorsemester von Philipp schon erklärt worden, aber die damalige Dokumentation ist nur ein Fragment, man könnte einen Teil durch Cut-and-Paste übernehmen); dabei wäre es gut, zu erklären, was die Ordnung eines Lösungsverfahrens für gewöhnliche Differentialgleichungen ist.

Sonst geht es für einen Leser, der nicht eh schon ungefähr weiß, wie so etwas geht, zu schnell.

2. Für den Verlauf habt ihr auf die Protokolle verwiesen. Darüber hinaus würde ich einen kurze „Erzählung“ des Verlaufs gut finden. Auch hier habe ich wieder jemanden vor Augen, der eure Dokumentation liest, um sich ein Bild zu machen. In so einer Erzählung kann man eben auch erwähnen, an welchen Sachen ihr länger hängen geblieben sei o.ä..

Physiksimulation

Hauptseite

Herzlich willkommen auf der Seite der Gruppe Physiksimulation!

Der aktuelle Stand des Projektes ist hier zu finden.
Die vollständige Dokumentation befindet sich hier.

Gruppenmitglieder

  • Dustin
  • Philipp
  • Mark

Projektidee

Die grundlegende Idee dieses Projektes ist es, ein Programm zu schreiben, das einen physikalischen Sachverhalt realitätsnah simulieren kann. Dafür sollen Objekte auf dem Bildschirm erzeugt und ihre Parameter wie Größe, Masse und Bewegung verändert werden können.

Das Besondere an unserem Projekt ist es, dass wir in zwei Programmiersprachen entwickeln: Wir nutzen Python für die Grafik und die Benutzerinteraktion, während wir die Berechnungen in C++ durchführen. Philipps Erfahrungen aus dem letzten Semester haben gezeigt, dass Python dafür zu langsam ist und C++ hier mit seiner höheren Geschwindigkeit besser geeignet ist. Das GUI schreiben wir in Python, da wir dieses als komfortabler zum Programmieren erachten.

Als Sachverhalt wollen wir in erster Linie die Gravitation zwischen Objekten simulieren. Genaueres steht im nächsten Abschnitt:

Simulation von Gravitation

Hierbei nutzen wir Philipps Arbeit aus dem letzten Jahr, die Simulation von Himmelskörpern, sodass wir nicht bei Null beginnen müssen. Der Benutzer wird 3D-Objekte erzeugen, ihnen Massen und Größen, sowie Abstände zwischeneinander verleihen. Anschließend kann er beobachten, wie sich die Objekte verhalten. Idealerweise kann man damit am Ende z.B. einen Teil des Sonnensystems simulieren oder gravitational choreographies laufen lassen.

Umsetzungsplan

Zunächst ist es natürlich notwendig, sich mit den physikalischen Grundlagen zu beschäftigen. Parallel dazu sollte im Labor eine Oberfläche entstehen, auf der die Objekte erzeugt, verschoben und modifiziert werden können.
Im nächsten Schritt wird dann der Teil geschrieben, der für die Berechnungen zuständig ist. Dafür gibt es mehrere Möglichkeiten; wir verwenden das Verfahren von Runge-Kutta. Gleichzeitig wird an der Ausgabe der Daten gearbeitet. Unsere Wahl fiel auf VPython.
Als letztes schreiben wir das Interface zwischen Python und C++ in Cython, um die Vorteile beider Sprachen optimal zu nutzen.

ss16/physiksimulation.txt · Zuletzt geändert: 2016/09/22 21:59 von stefanborn