Benutzer-Werkzeuge

Webseiten-Werkzeuge


ss2021:project2:partikelsimulation

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
ss2021:project2:partikelsimulation [2021/10/14 23:06]
Moritz02
ss2021:project2:partikelsimulation [2021/10/14 23:37] (aktuell)
Moritz02 [Partikelsimulation]
Zeile 1: Zeile 1:
 +//​Gruppenmitglieder:​\\ 
 +Paulina Marie Fritze, Berhan Rêzan Isik, Moritz Merkel und Amelie Schäfer//​\\
  
 ======Partikelsimulation======= ======Partikelsimulation=======
-Im Rahmen des Projektlabor Mathesis, welches im MINTgrün Orientierungsstudium angesiedelt ist, wurde dieses Projekt umgesetzt. Wie bereits der Name andeutet, ist das Ziel des Projekts eine Simulation von Partikeln im dreidimensionalen Raum. Besonders auf die drei Kerneigenschaften Gravitation,​ Reibung und Kollision wird hierbei wertgelegt. +Im Rahmen des Projektlabor Mathesis, welches im MINTgrün Orientierungsstudium angesiedelt ist, wurde dieses Projekt umgesetzt. Wie bereits der Name andeutet, ist das Ziel des Projekts eine Simulation von Partikeln im dreidimensionalen Raum. Besonders auf die drei Kerneigenschaften Gravitation,​ Reibung und Kollision wird hierbei wertgelegt.\\ 
-Während der Arbeit an unserem Projekt hielten wir unsere Fortschritte in diesem [[ss2021:​project2:​protokoll|Protokoll]] fest.+Während der Arbeit an unserem Projekt hielten wir unsere Fortschritte in diesem [[ss2021:​project2:​protokoll|Protokoll]] fest. Der überwiegende Teil des Projekts entstand beim gemeinsamen Arbeiten in der Gruppe.
  
 =====Struktur des Programms===== =====Struktur des Programms=====
Zeile 61: Zeile 62:
 =====Herausforderungen und Pläne für die Zukunft===== =====Herausforderungen und Pläne für die Zukunft=====
 Die erste Herausforderung dieses Projektes war eine passende Bibliothek zu finden, um die graphische Umsetzung zu ermöglichen. Anfangs wollten wir matplotlib nutzen, aber schnell war klar, dass diese Bibliothek nicht unseren Vorstellungen entsprach. Alles funktionierte nur sehr langsam und war zuzüglich sehr umständlich. Wir entschieden uns für die Bibliothek vpyhthon, welche uns auf eine einfache Weise ermöglichte,​ Körper in einer dreidimensionalen Welt zu platzieren. In dieser Welt kann man sich sogar bewegen, die Simulation konnten wir uns so von allen Seiten anschauen und waren nicht auf einen Blickwinkel beschränkt. Als nächstes mussten wir eine sinnvolle Struktur finden, um die Partikel im Code zu repräsentieren. Wir entschieden uns für die Dictionaries,​ da mit diesem Datentyp verständlich auf Eigenschaften der Partikel zugegriffen werden kann. Wir begannen die Simulation, indem wir zunächst die Hauptschleife sehr einfach aufbauten, der einzige Vorgang war hierbei die Aktualisierung der Position durch das Hinzurechnen der Geschwindigkeitsvektoren bei allen Partikeln. Anschließend setzten wir die Gravitation und die Reibung um. Bei beiden Eigenschaften fingen wir mit physikalischen Vorüberlegungen an und erstellten hinterher die entsprechenden Funktionen mit der passenden Implementierung innerhalb der Hauptschleife. Schwierigkeiten bereitete uns auch die Kollision. Zunächst suchten wir eine Möglichkeit Objekte aus unserer Simulation verschwinden zu lassen, vpython bot entsprechende Möglichkeiten an.\\ Die erste Herausforderung dieses Projektes war eine passende Bibliothek zu finden, um die graphische Umsetzung zu ermöglichen. Anfangs wollten wir matplotlib nutzen, aber schnell war klar, dass diese Bibliothek nicht unseren Vorstellungen entsprach. Alles funktionierte nur sehr langsam und war zuzüglich sehr umständlich. Wir entschieden uns für die Bibliothek vpyhthon, welche uns auf eine einfache Weise ermöglichte,​ Körper in einer dreidimensionalen Welt zu platzieren. In dieser Welt kann man sich sogar bewegen, die Simulation konnten wir uns so von allen Seiten anschauen und waren nicht auf einen Blickwinkel beschränkt. Als nächstes mussten wir eine sinnvolle Struktur finden, um die Partikel im Code zu repräsentieren. Wir entschieden uns für die Dictionaries,​ da mit diesem Datentyp verständlich auf Eigenschaften der Partikel zugegriffen werden kann. Wir begannen die Simulation, indem wir zunächst die Hauptschleife sehr einfach aufbauten, der einzige Vorgang war hierbei die Aktualisierung der Position durch das Hinzurechnen der Geschwindigkeitsvektoren bei allen Partikeln. Anschließend setzten wir die Gravitation und die Reibung um. Bei beiden Eigenschaften fingen wir mit physikalischen Vorüberlegungen an und erstellten hinterher die entsprechenden Funktionen mit der passenden Implementierung innerhalb der Hauptschleife. Schwierigkeiten bereitete uns auch die Kollision. Zunächst suchten wir eine Möglichkeit Objekte aus unserer Simulation verschwinden zu lassen, vpython bot entsprechende Möglichkeiten an.\\
- +
 {{ :​ss2021:​project2:​entfernen_von_partikeln.png?​400 |}} {{ :​ss2021:​project2:​entfernen_von_partikeln.png?​400 |}}
 >​Abbildung 2: Hier wurden die Partikel noch nicht entfernt >​Abbildung 2: Hier wurden die Partikel noch nicht entfernt
Zeile 70: Zeile 71:
 Schlussendlich konnten wir diese Punkte aber umsetzen. Man könnte das Projekt noch gut fortführen,​ indem bespielsweise noch interaktive Funktionen hinzugefügt werden, um Konstanten der Simulation, wie zum Beispiel bei der Gravitation,​ zu verändern. Auch die Codestruktur kann noch verbessert werden, indem zum Bespiel Vektoren zu einem Objekt zusammengefasst werden. Unser Projekt bot eine Menge Potential für kreative Ideen und wir konnten auch einige darin verwirklichen. Schlussendlich konnten wir diese Punkte aber umsetzen. Man könnte das Projekt noch gut fortführen,​ indem bespielsweise noch interaktive Funktionen hinzugefügt werden, um Konstanten der Simulation, wie zum Beispiel bei der Gravitation,​ zu verändern. Auch die Codestruktur kann noch verbessert werden, indem zum Bespiel Vektoren zu einem Objekt zusammengefasst werden. Unser Projekt bot eine Menge Potential für kreative Ideen und wir konnten auch einige darin verwirklichen.
 =====Der Code des Projektes===== =====Der Code des Projektes=====
-Damit das Programm funktioniert muss vpython installiert sein. Es sollte sich beim Ausführen ein Browserfenster mit einem Bild öffnen. Dieses Bild kann vergrößert werden, indem man die Ränder des Bildes nach außen zieht. Daher startet die Simulation erst nach fünf Sekunden. In der Simulation bewegen kann man sich mit (Shift/​Strg/​Alt)+Linksklick für Bewegung, Rotation und Zoom.+Damit das Programm funktioniertmuss die Bibliothek ​vpython installiert sein. Es sollte sich beim Ausführen ein Browserfenster mit einem Bild öffnen. Dieses Bild kann vergrößert werden, indem man die Ränder des Bildes nach außen zieht. Daher startet die Simulation erst nach fünf Sekunden. In der Simulation bewegen kann man sich mit (Shift/​Strg/​Alt)+Linksklick für Bewegung, Rotation und Zoom.
 <code python> <code python>
 '''​ '''​
Zeile 190: Zeile 191:
         kugeln[i].pos=vp.vector(partikel[i]['​x'​],​partikel[i]['​y'​],​partikel[i]['​z'​])         kugeln[i].pos=vp.vector(partikel[i]['​x'​],​partikel[i]['​y'​],​partikel[i]['​z'​])
 </​code>​ </​code>​
 +Zu guter letzt ist hier der Code und die erforderlichen Anforderungen für die Bibliotheken zusammengefasst. 
 +{{:​ss2021:​project2:​partikelsimulation.zip|}}
ss2021/project2/partikelsimulation.1634245569.txt.gz · Zuletzt geändert: 2021/10/14 23:06 von Moritz02