mirror of
https://github.com/Findus23/BachelorsThesis.git
synced 20240827 19:52:12 +02:00
minor text improvements
This commit is contained in:
parent
18bd7ed172
commit
18cf8f228d
7 changed files with 35 additions and 32 deletions

@ 5,27 +5,29 @@




For a realistic model of two gravitationally colliding bodies the SPH (\textit{smooth particle hydrodynamics}) code \texttt{miluphCUDA} as explained in \cite{Schaefer2016} is used. It is able to simulate brittle failure and the interaction between multiple materials.




In the simulation two celestial bodies are placed far enough apart so that tidal forces can affect the collision. Both objects consist of a core with the physical properties of basalt rocks and an outer mantle made of water ice.




To keep the simulation time short and make it possible to do many simulations with varying parameters 20k SPH particles are used and each simulation is ran for 300 timesteps of each \SI{144}{\second} so that 12 hours of collision is simulated.


In the simulation two celestial bodies are placed far enough apart so that tidal forces can affect the collision (5 times the sum of the radii). Both objects consist of a core with the physical properties of basalt rocks and an outer mantle made of water ice. These twobodycollisions are similar to those that happen between protoplanets or the collision that created the Earth's Moon.\footcite{dvorakMoon}




To keep the simulation time short and make it possible to do many simulations with varying parameters 20k SPH particles are used and each simulation is run for 12 hours and every 144 seconds the current state is saved.




\section{Parameters}


\label{sec:parameters}




Six parameters have been identified that have an influence on the result of the simulation:


Six parameters have been identified that have a major influence on the result of the simulation. All selected parameter ranges are inspired by the physical properties that occurred in collisions in a simulation of an early solar system.\footcite{CollisionParameters}




\subsection{impact velocity}




The collision velocity $v_0$ is defined in units of the mutual escape velocity of the projectile and the target. Simulations have been made from $v_0=1$ to $v_0=5$. As one expects, a higher velocity results in a stronger collision and more and smaller fragments.


The collision velocity $v_0$ is defined in units of the mutual escape velocity $v_{esc}$ of the projectile and the target.\footcite{MaindlSummary} Simulations have been made from $v_0=1$ to $v_0=5$. As one expects, a higher velocity results in a stronger collision and more and smaller fragments.


\begin{equation}


v_{esc}=\sqrt{2G/(M_p+M_t)/(r_p+r_t)}


\end{equation}




\subsection{impact angle}




The impact angle is defined in a way that $\alpha=\ang{0}$ corresponds to a headon collision and higher angles increase the chance of a hitandrun encounter. The simulation ranges from $\alpha=\ang{0}$ to $\alpha=\ang{60}$


The impact angle is defined in a way that $\alpha=\ang{0}$ corresponds to a headon collision and higher angles increase the chance of a hitandrun encounter. The simulation parameters range from $\alpha=\ang{0}$ to $\alpha=\ang{60}$




\subsection{target and projectile mass}




The masses in this simulation range from about two Ceres masses (\SI{1.88e+21}{\kilogram}) to about two earth masses (\SI{1.19e+25}{\kilogram}). In addition to the total mass $m$, the mass fraction between projectile and target $\gamma$ is defined. As the whole simulation setup is symmetrical between the two bodies only mass fractions below and equal to one have been considered.


The total masses in these simulations range from about two Ceres masses (\SI{1.88e+21}{\kilogram}) to about two earth masses (\SI{1.19e+25}{\kilogram}). In addition to the total mass $m$, the mass fraction between projectile and target $\gamma$ is defined. As the whole setup is symmetrical between the two bodies only mass fractions below and equal to one have been considered.




\subsection{water fraction of target and projectile}





@ 50,23 +52,23 @@ The last two parameters are the mass fraction of the ice to the total mass of ea




In the first simulation run for every parameter combination from Table \ref{tab:first_simulation_parameters} a separate simulation has been started. First the parameters and other configuration options are written in a \mbox{\texttt{simulation.input}} text file. Afterwards the relaxation program described in \cite[24\psqq]{Burger2018} generates relaxed initial conditions for all 20k particles and saves their state to \texttt{impact.0000}. Finally \texttt{miluphcuda} can be executed with the following arguments to simulate starting from this initial condition for 300 timesteps which each will be saved in a \texttt{impact.XXXX} file.




\todo{spacing is ugly}




\begin{lstlisting}[language=bash,flexiblecolumns=false]


miluphcuda N 20000 I rk2_adaptive Q 1e4 n 300 a 0.5 H t 144.0 f impact.0000 m material.cfg s g


\end{lstlisting}




This simulation run ran on the \texttt{amanki} server using a \texttt{Nvidia GTX 1080} taking about \SI{30}{\minute} per simulation.


This simulation run ran on the \texttt{amanki} server using a \texttt{Nvidia GTX 1080} taking about \SI{30}{\minute} per simulation as the \texttt{Nvidia GTX 1080} is the fastest consumer GPU for this simulation set in a comparison of 13 tested GPUs.\footcite{Dorninger} Of the 960 simulations, 858\todo{doublecheck number} succeed and were used in the analysis.






\section{PostProcessing}


\label{sec:postprocessing}




After the simulation the properties of the SPH particles needs to be analyzed. To do this the \texttt{identify\_fragments} C program by Christoph Burger\todo{better citation} uses a friendsoffriends algorithm to group the final particles into fragments. Afterwards \texttt{calc\_aggregates} calculates the mass of the two largest fragments together with their gravitationally bound fragments and its output is written into a simple text file (\texttt{aggregates.txt}). This way, the mass retention (total mass of the two largest fragments compared to total mass of projectile and trget) and the water retention can be determined for every simulation result.


After the simulation the properties of the SPH particles needs to be analyzed. To do this the \texttt{identify\_fragments} C program by Christoph Burger (part of the postprocessing tools of \texttt{miluphCUDA}) uses a friendsoffriends algorithm to group the final particles into fragments. Afterwards \texttt{calc\_aggregates} calculates the mass of the two largest fragments together with their gravitationally bound fragments and its output is written into a simple text file (\texttt{aggregates.txt}).




% This way, the mass retention (total mass of the two largest fragments compared to total mass of projectile and trget) and the water retention can be determined for every simulation result.




\section{Resimulation}




To increase the amount of available data and especially reduce the errors caused by the gridbased parameter choices (Table \ref{tab:first_simulation_parameters}) a second simulation run has been started has been started. All source code and initial parameters have been left the same apart from the six main input parameters described above. These will be set to a random value in the range listed in Table \ref{tab:resimulationparameters} apart from the the initial water fractions. As they seem to have little impact on the outcome (see Section \ref{sec:cov}) they are set fixed to \SI{15}{\percent} to simplify the parameter space.


To increase the amount of available data and especially reduce the errors caused by the gridbased parameter choices (Table \ref{tab:first_simulation_parameters}) a second simulation run has been started. All source code and initial parameters have been left the same apart from the six main input parameters described above. These are set to a random value in the range listed in Table \ref{tab:resimulationparameters} apart from the initial water fractions. As they seem to have little impact on the outcome (see Section \ref{sec:cov}) they are set to \SI{15}{\percent} to simplify the parameter space.




\begin{table}


\centering



@ 79,8 +81,8 @@ To increase the amount of available data and especially reduce the errors caused


water fraction target & \SI{15}{\percent} & \SI{15}{\percent} \\


water fraction projectile & \SI{15}{\percent} & \SI{15}{\percent} \\


\end{tabular}


\caption{text}


\caption{parameter ranges for the resimulation}


\label{tab:resimulationparameters}


\end{table}




This way, an addition \num{553} simulations have been calculated on \texttt{Nvidia Tesla P100} graphics cards on Google Cloud. (Of which 100 simulations are only used for comparison in Section \ref{comparison})


This way, an additional \num{553} simulations have been calculated on \texttt{Nvidia Tesla P100} graphics cards on \texttt{Google Cloud}. (Of which 100 simulations are only used for comparison in Section \ref{comparison})


@ 1,7 +1,7 @@


% !TeX spellcheck = en_US


\chapter{Results}




For the large set of simulations we can now extract the needed value. The output of the relaxation program (\texttt{spheres\_ini\_log}) gives us the precise values for impact angle and velocity and the exact masses of all bodies. As theses values slightly differ from the parameters explained in Section \ref{sec:parameters} due to the setup of the simulation, in the following steps only the precise values are considered. From the \texttt{aggregates.txt} explained in Section \ref{sec:postprocessing} the final masses and water fractions of the two largest fragments are extracted. From these the main output considered in this analysis, the water retention of the two fragments can be calculated.


For the large set of simulations we can now extract the needed values. The output of the relaxation program (\texttt{spheres\_ini\_log}) gives us the precise values for impact angle and velocity and the exact masses of all bodies. As these values differ slightly from the parameters explained in Section \ref{sec:parameters} due to the setup of the simulation, in the following steps only the precise values are considered. From the \texttt{aggregates.txt} explained in Section \ref{sec:postprocessing} the final masses and water fractions of the two largest fragments are extracted. From these the main output considered in this analysis, the water retention of the two fragments can be calculated.




\section{Correlations}


\label{sec:cov}





@ 47,6 +47,6 @@ This approach has the advantage that it can be extended in more than two dimensi




\subsection{Implementation}


\label{sec:griddataimplementation}


For doing the actual interpolations, the \texttt{scipy.interpolate.griddata} function is used with the \texttt{method="linear"} argument which itself uses \texttt{scipy.interpolate.LinearNDInterpolator} to do the interpolation as described above. The function is given a $6\times n$ matrix of the six parameters and an $n$sized list of the water retention fraction for those $n$ simulations. In addition, \texttt{griddata} supports not only calculating interpolations for one set of parameters, but also for lists of parameters which allows to quickly generate 2d diagrams as seen in \ref{the_chapter_where_I_show_the_v_alpha_plots}.


For doing the actual interpolations, the \texttt{scipy.interpolate.griddata} function is used with the \texttt{method="linear"} argument which itself uses \texttt{scipy.interpolate.LinearNDInterpolator} to do an interpolation similar to the one described above. The function is given a $6\times n$ matrix of the six parameters and an $n$sized list of the water retention fraction for those $n$ simulations. In addition, \texttt{griddata} supports not only calculating interpolations for one set of parameters, but also for lists of parameters which allows to quickly generate 2d diagrams as seen in \ref{the_chapter_where_I_show_the_v_alpha_plots}.




\subsection{Results}


@ 49,7 +49,7 @@ or simply




with $\Phi$ being a symmetric $n \times n $ matrix as $\left\x_jx_i\right\=\left\x_ix_j\right\$. There are many possibilities for the radial basis function $\phi(r)$. It can be for example linear ($r$), gaussian ($e^{r^2}$) or multiquadric ($\sqrt{\left(\frac{r}{\epsilon}\right)^2 + 1}$) with $\epsilon$ being a constant that defaults to the approximate average distance between nodes.




As an example, consider the three points $x_1=0$, $x_1=3$ and $x_1=5$ with $p(x_1)=0.2$, $p(x_2)=0.8$ and $p(x_3)=0.1$ and choose the gaussian RBfunction\todo{looks odd} we get the following:


As an example, consider the three points $x_1=0$, $x_1=3$ and $x_1=5$ with $p(x_1)=0.2$, $p(x_2)=0.8$ and $p(x_3)=0.1$ and choose a gaussian function for $\phi$ we get the following:


\begin{align}


\begin{bmatrix}


\phi(0) & \phi(3) & \phi(5) \\



@ 81,7 +81,7 @@ Solving this linear matrix equation using \texttt{numpy.linalg.solve} gives us t


\end{bmatrix}


\end{equation}




Combined we get the following linear combination for the interpolated function $s(x)$:


Combined we get the following linear combination for the interpolated function $s(x)$ (Figure \ref{fig:rbf1}):


\begin{equation}


s(x)=0.200\phi(\left\x\right\)+


0.798\phi(\left\x3\right\)+





@ 71,6 +71,7 @@


institution = {Department of Astrophysics, University of Vienna},


date = {2019},


subtitle = {Benchmark of GPUenvironments},


file = {:../papers/Realistic_physical_collision_model_in_planet_formation.pdf:PDF},


}




@InProceedings{CollisionParameters,




4
main.tex
4
main.tex

@ 27,7 +27,7 @@ Here comes some short science explanation about how planets form and water is tr




\section{The perfect merging assumption}




To better understand how this process works, large nbody simulations over the lifetime of the solar systems have been conducted.\todo{give an example} Most of these neglect the physical details of collisions when two bodies collide for simplicity and instead assume that a perfect merging occurs. So all the mass of the two progenitor bodies and especially all of their water (ice) is retained in the newly created body. Obviously this is a simplification as in real collisions perfect merging is very rare and most of the time either partial accretion or a hitandrun encounter occurs. (\cite{CollisionTypes}) Therefore the amount of water retained after collisions is consistently overestimated in these simulations. Depending on the parameters like impact angle and velocity a large fraction of mass and water can be lost during collisions.


To better understand how this process works, large nbody simulations over the lifetime of the solar systems have been conducted.\todo{give an example} Most of these neglect the physical details of collisions when two bodies collide for simplicity and instead assume that a perfect merging occurs. So all the mass of the two progenitor bodies and especially all of their water (ice) is retained in the newly created body. Obviously this is a simplification as in real collisions perfect merging is very rare and most of the time either partial accretion or a hitandrun encounter occurs. (\cite{CollisionTypes}) Therefore the amount of water retained after collisions is consistently overestimated in these simulations. Depending on the parameters like impact angle and velocity a large fraction of mass and water can be lost during collisions.\footcite{MaindlSummary}




\section{Some other heading}





@ 52,7 +52,7 @@ To understand how the water transport works exactly one has to find an estimatio




\chapter{Placeholder}




\lipsum[1]\footcite{Schaefer2016}\footcite{dvorakMoon}\footcite{MaindlSummary,CollisionParameters}\footcite{Burger2018}\footcite{Dorninger}\footcite{CollisionParameters}\footcite{CollisionTypes}\footcite{RBF}




\nocite{*}




\printbibliography




24
template.tex
24
template.tex

@ 137,18 +137,18 @@ american, % language of the document


}






\lstset{literate=%


*{0}{{{\color{red!20!violet}0}}}1


{1}{{{\color{red!20!violet}1}}}1


{2}{{{\color{red!20!violet}2}}}1


{3}{{{\color{red!20!violet}3}}}1


{4}{{{\color{red!20!violet}4}}}1


{5}{{{\color{red!20!violet}5}}}1


{6}{{{\color{red!20!violet}6}}}1


{7}{{{\color{red!20!violet}7}}}1


{8}{{{\color{red!20!violet}8}}}1


{9}{{{\color{red!20!violet}9}}}1


}


%\lstset{literate=%


% *{0}{{{\color{red!20!violet}0}}}1


% {1}{{{\color{red!20!violet}1}}}1


% {2}{{{\color{red!20!violet}2}}}1


% {3}{{{\color{red!20!violet}3}}}1


% {4}{{{\color{red!20!violet}4}}}1


% {5}{{{\color{red!20!violet}5}}}1


% {6}{{{\color{red!20!violet}6}}}1


% {7}{{{\color{red!20!violet}7}}}1


% {8}{{{\color{red!20!violet}8}}}1


% {9}{{{\color{red!20!violet}9}}}1


%}




% PDF output and hyperlinks 






Loading…
Reference in a new issue