Physiksimulation/Dokumentation/Projektverlauf/
Datum: 02. Juni 2016
In dieser Woche haben sich Philipp und Mark die Zeit genommen, den C++-Code umzuschreiben. Dabei wurden hauptsächlich Umbenennungen vorgenommen und der Code kommentiert. Die Tests auf Funktionalität und die Verbindung zwischen Python und C++ gehen wir dann später an. Auf der Python-Seite ist ein erstes, benutzbares Benutzerinterface entstanden.
Unser C++-Teil ist nun vollständig erneuert worden. Dazu haben wir die Klassen Vector3D, Object, Universe und Simulation übersichtlicher gemacht, neu strukturiert und die Main-Klasse PyCInterface hinzugefügt. Diese enthält aktuell nur die Erzeugung eines Standard-Universums, für das einzelne Zeitschritte simuliert werden können. Damit ist die Basisversion fertig und wir können und auf kleinere Anpassungen konzentrieren.
Im Hinterkopf haben wir uns schon Gedanken darüber gemacht, wie wir die Simulation von Sonne, Erde und Mond bewerkstelligen können. Das Problem hierbei ist das Aufeinandertreffen von extrem großen Werten (Sonnenmasse: ~2*1030) und extrem kleinen Werten (Gravitationskonstante: ~6,7*10-11), wodurch uns starke Rundungsfehler das Leben schwer machen würden. Hier werden wir dann wohl für die Masse Sonnenmassen und für die Entfernung Astronomische Einheiten verwenden.
In dieser Woche hat sich Dustin hauptsächlich durch Dokumentationen gekämpft und es so am Ende geschafft, einen Prototypen fertigzustellen. Das Ergebnis kann sich sehen lassen:
Viele der Knöpfe und Schaltflächen tun noch gar nichts, sondern dienen nur der Vorstellung. Was allerdings schon funktioniert, ist, Planeten und Sonnen hinzuzufügen. Diese können dann mit den im Hintergrund abgelegten Werten zu Objekten gemacht werden, mit denen der C++-Teil später arbeiten kann. Das Hauptziel dieses Interfaces wird es aber später sein, beliebige Objekte zu erschaffen und sie beliebig zu modifizieren, bevor ihr gemeinsames verhalten simuliert wird.
In der nächsten Woche wird es dann wirklich ans Testen mit verschiedensten Werten gehen. Für die Auswertung werden wir am besten die Winkel zwischen den Objekten bestimmen und schauen, ob diese sich periodisch ändern. Sollte das der Fall sein, hätten wir den schwierigsten Teil schon so gut wie erledigt.