about summary refs log tree commit diff
path: root/docs/simulieren.tex
diff options
context:
space:
mode:
Diffstat (limited to 'docs/simulieren.tex')
-rw-r--r--docs/simulieren.tex88
1 files changed, 45 insertions, 43 deletions
diff --git a/docs/simulieren.tex b/docs/simulieren.tex
index d3c128b..245c78f 100644
--- a/docs/simulieren.tex
+++ b/docs/simulieren.tex
@@ -36,29 +36,8 @@ Massen Mittelpunkt zieht aus. Rotiert man die Galaxie jedoch zu schnell,
 explodiert sie förmlich, da die Sterne nicht mehr zusammengehalten werden und
 die Fliehkraft sie einfach auseinanderzieht.
 
-\subsubsection{Die Kraft als Vektor}
-Um die Kraft als Vektor zu berechnen, welcher ein Stern B auf einen Stern A
-ausübt, wird die folgende Formel verwendet:
-
-\begin{equation}
-    \vec{F}_{AB} = \underbrace{-G \frac{m_A m_B}{|r_{AB}|^2}}_{Scalar}
-    \cdot \underbrace{\frac{r_B - r_A}{|r_B - r_A|}}_{Vector}
-\end{equation}
-
-Die Summe der Kräfte die auf einen Stern wirken ist somit die Summe aller
-Kräfte die zwischen dem jeweiligen Stern \( a \) und allen anderen Sternen
-wirken:
-
-\begin{equation}
-    F_{a} = \sum_{\substack{i=0 \\ i\neq a}}^{n-1} F_{ai}
-\end{equation}
-
 \subsection{Konzepte}
-%Die Software ist komplett in Golang geschrieben was die Nutzung von mehreren
-%Threads mithilfe von Go-Methoden stark vereinfacht. Um den Barnes-Hut
-%Algorithmus anzuwenden muss die Galaxie in einen Octree unterteilt werden.
-%Dabei wird eine Zelle definiert die alle Sterne beinhaltet welche anschließen
-%solange unterteilt, bis eine der drei end- Bedingungen eintrifft.
+
 
 \subsubsection{Zu lösende Probleme}
 Wie bereits beschrieben ist eines der Probleme das Auftritt die Anzahl der
@@ -78,7 +57,7 @@ kleine Cluster an Sternen welche weit genug vom Stern auf den die Kräfte
 berechnet werden sollen weg sind und klein genug sind zu einem Pseudo- Stern
 zusammengefasst werden welcher durch den Masse Mittelpunkt der Sterne die er
 repräsentiert definiert ist. Das Konzept wurde 1986 von Josch Barnes und Piet Hut
-veröffentlicht und erlaubt es die Anzahl an Kräften die berechnet werden müssen
+veröffentlicht \cite{barneshut86} und erlaubt es die Anzahl an Kräften die berechnet werden müssen
 von \( O(n^2) \) auf \( O(n log(n)) \) zu reduzieren.
 
 \subsubsection{Generierung von Quadtrees und entsprechende Bäume}
@@ -196,6 +175,24 @@ Pseudostern zusammengefasst werden.
 
 \subsection{Kraft-Berechnungen}
 
+
+\subsubsection{Die Kraft als Vektor}
+Um die Kraft als Vektor zu berechnen, welcher ein Stern B auf einen Stern A
+ausübt, wird die folgende Formel verwendet:
+
+\begin{equation}
+    \vec{F}_{AB} = \underbrace{-G \frac{m_A m_B}{|r_{AB}|^2}}_{Scalar}
+    \cdot \underbrace{\frac{r_B - r_A}{|r_B - r_A|}}_{Vector}
+\end{equation}
+
+Die Summe der Kräfte die auf einen Stern wirken ist somit die Summe aller
+Kräfte die zwischen dem jeweiligen Stern \( a \) und allen anderen Sternen
+wirken:
+
+\begin{equation}
+    F_{a} = \sum_{\substack{i=0 \\ i\neq a}}^{n-1} F_{ai}
+\end{equation}
+
 \subsubsection{Berechnung der auf einen Stern wirkenden Kraft}
 
 \par Um die Kraft, welche auf einen bestimmten Stern wirkt, zu berechnen, wird der
@@ -310,7 +307,7 @@ dargestellt}
         ]
     \end{forest}
 }
-\;
+\,
 \subfloat[Stern B kann nicht eingefügt werden, da der Slot durch A belegt ist, also wird A weiter in den Baum versickert.]{
     \begin{forest}
         for tree={circle,draw, s sep+=0.25em}
@@ -325,7 +322,7 @@ dargestellt}
         ]
     \end{forest}
 }
-\;
+\,
 \subfloat[B wird nun eingefügt, da sich B jedoch nicht in einem Blatt befinden, muss B weiter versickert werden.]{
     \begin{forest}
         for tree={circle,draw, s sep+=0.25em}
@@ -339,7 +336,7 @@ dargestellt}
         ]
     \end{forest}\quad\\[2ex]
 }
-\;
+\,
 \subfloat[Damit B versickert werden kann, wird der Platz der durch A besetzt wird freigemacht, indem A weiter versickert wird.]{
     \begin{forest}
         for tree={circle,draw, s sep+=0.25em}
@@ -356,7 +353,7 @@ dargestellt}
          ]
     \end{forest}\quad
 }
-\;
+\,
 \subfloat[B kann jetzt in den Baum versickert werden und ist nun ein Blatt.]{
     \begin{forest}
         for tree={circle,draw, s sep+=0.25em}
@@ -383,7 +380,7 @@ dargestellt}
 \subsubsection{Speichern der Sterne}
 
 Die Sterne werden in einer Tabelle in Datenbank \mbox{PostgreSQL} gespeichert.
-Die Tabelle ist folgendermaßen aufgebaut:
+Die Tabelle ist wie in Abbildung \ref{fig:stars_table} zu sehen aufgebaut.
 
 \begin{figure}[h!]
 \centering
@@ -397,6 +394,7 @@ n       & \(x_n\) & \(y_n\) & \(vx_n\)& \(vy_n\) & \(m_n\) \\ \hline
 \caption{Darstellung der Tabelle in der die Sterne gespeichert werden. Die
 star\_id spalte beinhaltet eine global einmalige ID wodurch jeder Stern
 identifiziert werden kann.}
+\label{fig:stars_table}
 \end{figure}
 
 Dadurch das jeder Stern eine einmalige ID besitzt kann diese verwendet werden
@@ -404,22 +402,26 @@ um einfach auf Sterne zu verweisen. Dies ist im Kontext des Einfügens sehr
 hilfreich da die Verschiebung eines Sternes durch ändern der Stern-ID vollzogen
 werden kann.
 
-\subsubsection{Speichern von Bäumen}
-
-Um die Bäume in einer Datenbank zu speichern muss eine einheitliche Struktur
-definiert werden um Probleme in der Zukunft zu verhindern. Die Nutzung von
-speziellen Graphen Datenbanken bietet sich natürlich an, jedoch wird diese
-starke Spezialisierung schnell zu einem Hindernis. Um nach dem KISS
-Prinzip\footnote{"Das KISS-Prinzip (englisch Keep it simple, stupid) fordert,
-zu einem Problem eine möglichst einfache Lösung anzustreben."
-\url{https://de.wikipedia.org/wiki/KISS-Prinzip}} eine möglichst einfache
-Lösung zu nutzen werden die Bäume in einer Relationalen Datenbank gespeichert.
-Jeder Knoten wird dabei in einer Zeile der Datenbank gespeichert und erhält
-eine global einzigartige ID. Die Kinder in andrem Knoten hängen werden anhand
-ihrer ID in der Zeile gespeichert sodass es einfach möglich ist einfach auf
-diese zuzugreifen und beim rekursiven durchsuchen des Baumes auf diese
-zuzugreifen.
+\par Jeder Stern besitzt eine Position, einer Geschwindingkeit und eine Masse.
+Dadurch kann man einen Stern definieren, jedoch auch berechnen was für eine
+Kraft der Stern auf andere Sterne auswirkt. 
 
+\subsubsection{Speichern von Bäumen}
+Um die Bäume in denen die galaxien giepeichert werden in einer Datenbank zu
+speichern, muss eine einheitliche Struktur definiert werden um Probleme in der
+Zukunft zu verhindern. Die Nutzung von speziellen Graphen Datenbanken bietet
+sich natürlich an, jedoch wird diese starke Spezialisierung schnell zu einem
+Hindernis. Um nach dem KISS Prinzip\footnote{"Das KISS-Prinzip (englisch Keep
+it simple, stupid) fordert, zu einem Problem eine möglichst einfache Lösung
+anzustreben." \url{https://de.wikipedia.org/wiki/KISS-Prinzip}} eine möglichst
+einfache Lösung zu nutzen werden die Bäume in einer Relationalen Datenbank
+gespeichert. Jeder Knoten wird dabei in einer Zeile der Datenbank gespeichert
+und erhält eine global einzigartige ID. Die Kinder in andrem Knoten hängen
+werden anhand ihrer ID in der Zeile gespeichert sodass es einfach möglich ist
+einfach auf diese zuzugreifen und beim rekursiven durchsuchen des Baumes auf
+diese zuzugreifen. Möchte man einen Teilbaum unterteilen können einfach vier
+neue Knoten erzuegt werden welche vom Knoten an dem sie hängen referneziert
+werden.
 
 \begin{figure*}[ht]
 \begin{tabular} {l | l | l | l | l | l | l | l | l | l}