diff --git a/doc/figures/cover-field.png b/doc/figures/cover-field.png index 73eda5c0d5b89a5257d39a3c86c59b36ae0bb7ff..8334fa9ca0b445a6f0e144b821a1028421c842f2 100644 Binary files a/doc/figures/cover-field.png and b/doc/figures/cover-field.png differ diff --git a/doc/figures/field-lines-2.png b/doc/figures/field-lines-2.png index e3af37cba689cdc90ec308d03acddc16a2b0ba8c..b160a1dbb1a0313989f364fa212f44ece272b502 100644 Binary files a/doc/figures/field-lines-2.png and b/doc/figures/field-lines-2.png differ diff --git a/doc/figures/field-lines-4.png b/doc/figures/field-lines-4.png index ae1fe6243c3494573e56d391bbe5abb179397617..ff00d75720808750ff157ede2f940056af55a506 100644 Binary files a/doc/figures/field-lines-4.png and b/doc/figures/field-lines-4.png differ diff --git a/doc/figures/field-lines-6.png b/doc/figures/field-lines-6.png index 4584a22b19602eeec4ee38579357f3d621e74046..1ee7d407972a2b8819d5dd7f130dedd962ae39ef 100644 Binary files a/doc/figures/field-lines-6.png and b/doc/figures/field-lines-6.png differ diff --git a/doc/figures/heatmap-12.png b/doc/figures/heatmap-12.png index 35d8100bf5cdfb05c91d8612ffaea6f9f8a78eae..154b51ff1d7311f49ad045c495a65b34d313c0d5 100644 Binary files a/doc/figures/heatmap-12.png and b/doc/figures/heatmap-12.png differ diff --git a/doc/figures/heatmap-6.png b/doc/figures/heatmap-6.png index d5c9b4be8ddb5ba260ce22050521f56c6dd30666..a561166d552f4c11e75b80c1c0467cbb011e0fb6 100644 Binary files a/doc/figures/heatmap-6.png and b/doc/figures/heatmap-6.png differ diff --git a/doc/figures/vector-field-12.png b/doc/figures/vector-field-12.png index 7bd99e05d08b1ce56d12cdcc519d18472b69aaec..e868f120a635005207935a30a094cde646031f8b 100644 Binary files a/doc/figures/vector-field-12.png and b/doc/figures/vector-field-12.png differ diff --git a/doc/figures/vector-field-6.png b/doc/figures/vector-field-6.png index 499cb92d83ac018cb52c555030114e06baeff148..acc5760a815757b0f17e857d736b4779cf896dbc 100644 Binary files a/doc/figures/vector-field-6.png and b/doc/figures/vector-field-6.png differ diff --git a/doc/frontmatter/title-report.tex b/doc/frontmatter/title-report.tex index 24a42a6480bcfe61e7694d3d6a6e7586c383bfb2..df1e48dafe5db455ca0ba1eed7d65b85bc60a9a3 100644 --- a/doc/frontmatter/title-report.tex +++ b/doc/frontmatter/title-report.tex @@ -39,13 +39,13 @@ \rule{\textwidth}{1pt} \raggedright{ - Les lignes de champs électrostatique montrent l'impact de particules chargée dans + Les lignes de champ électrostatiques montrent l'impact de particules chargées dans un univers discret. Ce raport vise à montrer une possible représentation graphique de ce phénomène physique et expliquer comment ce résultat a été possible. En se basant sur les formules, il a été possible de faire la simulation, et en utilisant OpenGL il a été possible de faire la représentation graphique. Le résultat - montre bien l'effet de particules charges dans un univers discret et permet d'avoir - plusieurs type de représentations pour plus de précision. + montre bien l'effet de particules chargées dans un univers discret et permet d'avoir + plusieurs types de représentations pour plus de précision. } \rule{\textwidth}{1pt} diff --git a/doc/mainmatter/conclusion.tex b/doc/mainmatter/conclusion.tex index 2478ed5a37754149f67613151466c0d830f247cb..0348ca29f46d11a6bd3832681388efe11e5ee5fc 100644 --- a/doc/mainmatter/conclusion.tex +++ b/doc/mainmatter/conclusion.tex @@ -15,7 +15,7 @@ amas illisible tant la distances entre elles est faible). \begin{figure}[h] \centering \caption{Variance du temps de calcul des lignes de champs} - \begin{tikzpicture}[scale=.7] + \begin{tikzpicture}[scale=.6] \begin{axis}[ ybar, bar width=10pt, @@ -57,4 +57,21 @@ amas illisible tant la distances entre elles est faible). \addlegendentry{5px} \end{axis} \end{tikzpicture} -\end{figure} \ No newline at end of file +\end{figure} + +\section{Rappel et suite} +\label{sec:summary-future} + +Alors qu'il est compliqué de se représenter mentalement l'impact d'une charge dans son univers, +une représentation graphique est une approche attractive et facile à comprendre. +Il a été clair que cette façon de voir un champs aide à la compréhension. Le fait d'avoir +plusieurs type de représentation permet de porter un regarde différent sur l'impact que peut avoir +une charge. Dans le cas des lignes de champs, elles permettent de voir l'univers dans son +ensemble et les flux électrostatiques présent. Le champs de vecteur quant à lui permet de mieux +comprendre la direction du champs, et pour finir la heatmap fait resortir la différence de puissance +du champs par rapport à la distance de la charge. Dans le futur, il serait nécessaire d'avoir +une interface utilisateur graphique permettant de contrôler complètement l'univers, capturer une +vidéo ou image, ou encore placer des éléments autres que des particules. En outre, avec ces améliorations, il serait envisageable +d'impliquer cet outil de visualisation dans un cadre plus important comme dans l'étude +de propagation des champs dans un projet réel - par exemple, le développement de nouvelles solution de +stockage électrique. \ No newline at end of file diff --git a/doc/mainmatter/experiences.tex b/doc/mainmatter/experiences.tex index 699cfac3b68ce1867e99f05125b879f41c509c67..1ef5114046eb578c1e2b30011226d0d6b420db9a 100644 --- a/doc/mainmatter/experiences.tex +++ b/doc/mainmatter/experiences.tex @@ -1,12 +1,12 @@ \chapter{Expériences} \label{chapter:experiences} -Pour représenter de façon graphique le champs électrostatique, il nous faut définir un +Pour représenter de façon graphique le champ électrostatique, il nous faut définir un univers discret. Cet univers est défini comme $[0,1]\times[0,1]$. Chaque particule du système aura donc une position dans cet univers, ainsi qu'une charge (mutliple de la charge élémentaire). -\section{Ligne de champs} +\section{Ligne de champ} Le dessin numérique d'une courbe se fait en l'approximant à l'aide de plusieurs petits ségments de droite mis bout à bout. Pour dessiner cette courbe, il nous faut trouver un @@ -18,7 +18,7 @@ ensemble de points appartenant à cette lignes. Pour cela on procède ainsi : \item On calcul ensuite $P_{suivant}$ en fonction de l'intensité et de la direction du champ en $P$. Ce qui donne l'équation \ref{eqn:next-point}. Cependant, dans notre cas nous voulons avancer d'une distance identique à chaque fois, et qui ne soit pas trop grande. - Il faut donc commencer par normaliser notre champs, puis le multiplier par une constante + Il faut donc commencer par normaliser notre champ, puis le multiplier par une constante $\delta x$ fixe définie en fonction de la taille de la fenêtre. Ce qui nous donne : $P_{suivant} = P \pm \delta x \cdot \frac{\vec{E}}{||\vec{E}||}$ avec $\delta x = \frac{1}{\sqrt{largeur^2 + hauteur^2}}$ et $\vec{E} = \sum_{i=1}^N E_i \frac{\lvec{q_i P_n}}{||\lvec{q_i P_n}||}$. \textit{En fonction du sens du dessin @@ -30,7 +30,7 @@ ensemble de points appartenant à cette lignes. Pour cela on procède ainsi : \begin{figure}[h] \centering - \caption{Dessin d'une ligne de champs} + \caption{Dessin d'une ligne de champ} \begin{tikzpicture}[line/.style={->,shorten >=0.4cm,shorten <=0.4cm},very thick, scale=0.7] \coordinate (Plus) at (0, 0); \coordinate (Minus) at (6, 0); @@ -75,16 +75,16 @@ Pour ne plus avoir ces espace, il serait possible de prendre des points de dépa \section{Champs vectoriel} -En plus des lignes de champs, deux autres représentations sont disponible. (Chacune en appuyant sur -\verb|l|, \verb|v|, \verb|h|). La première est un champs vectoriel. Il est généré de la façon suivante : +En plus des lignes de champ, deux autres représentations sont disponible. (Chacune en appuyant sur +\verb|l|, \verb|v|, \verb|h|). La première est un champ vectoriel. Il est généré de la façon suivante : \begin{enumerate} - \item Calcul de la valeur minimum et maximum du champs électrostatique normalisé pour tout $P$ - dans une grille orthogonale à espacement égale, et sauvegarde du champs en $P$ + \item Calcul de la valeur minimum et maximum du champ électrostatique normalisé pour tout $P$ + dans une grille orthogonale à espacement égale, et sauvegarde du champ en $P$ inséré dans une liste de longueur identique aux points de la grille. \item Assignation de $P = P_0$ - \item Pour tout $P$ dans la liste de champs électrostatique calculée à l'étape 1. - \item On normalise le champs $\hat{E} = \frac{\vec{E}(P)}{||\vec{E}(P)||}$ et on le multiplie par une valeur fixe + \item Pour tout $P$ dans la liste de champ électrostatique calculée à l'étape 1. + \item On normalise le champ $\hat{E} = \frac{\vec{E}(P)}{||\vec{E}(P)||}$ et on le multiplie par une valeur fixe permettant de correctement distinguer les différentes tailles de vecteurs. \item On dessine le vecteur en $P$. \item Assignation de $P = P_{i + 1}$ et on revient à l'étape 4. @@ -92,7 +92,7 @@ En plus des lignes de champs, deux autres représentations sont disponible. (Cha \begin{figure}[H] \centering - \caption{Dessin d'un champs vectoriel} + \caption{Dessin d'un champ vectoriel} \begin{tikzpicture}[vecline/.style={green!50!black, ->, thick}, scale=.7] \coordinate (Plus) at (0, 0); \newcommand{\VSA}{0.5} @@ -138,9 +138,10 @@ En plus des lignes de champs, deux autres représentations sont disponible. (Cha \end{tikzpicture} \end{figure} -\noindent Le résultant que quelque peu décevant sur un point précis. Les vecteur déssinés auraient pu -être plus précis car quelque fois leur taille est trop différente des vecteur voisins, et de ce fait, -créer une représentation un peu erronée. +\noindent Cette illustration montre bien la direction du champ en tout point de ma grille, +ce qui donne un aperçu global plus ou moins précis sur le comportement des particules. +Dans ce cas précis, le champ a des vecteurs normalisé pour pouvoir avoir une vue global et non +centrée autour des charges uniquement. \begin{figure}[H] \centering @@ -159,11 +160,11 @@ créer une représentation un peu erronée. \section{Heatmap} -La dernière représentation graphique est une heatmap en fonction de l'intensité du champs en tout point +La dernière représentation graphique est une heatmap en fonction de l'intensité du champ en tout point de l'univers. \begin{enumerate} - \item Cacule de la valeur minimum et maximum de la norme du champs électrostatique normalisé pour tout les + \item Cacule de la valeur minimum et maximum de la norme du champ électrostatique normalisé pour tout les pixels de l'écran, et sauvegarde de la valeur courante dans une liste de longueur $largeur \cdot hauteur$. \item Assignation de $P = P_0$. \item Pour tout $I$ dans la liste d'intensitées sauvegardée à l'étape 1. @@ -184,10 +185,10 @@ de l'univers. \end{tikzpicture} \end{figure} -\noindent Cette représentation est selon moi la mieux réussie. Combinée aux lignes de champs, il est possible -de voir la puissance du champs électrostatique autour des charges ainsi que leur impact sur leur voisinage, ce qui -est très utile pour avoir une idée macroscoptique du champs. Cependant, le cacul du rendu graphique reste très lent. -Ceci est dû au fait qu'un calcul d'intensité du champs est fait pour tout pixel. +\noindent Cette représentation est selon moi la mieux réussie. Combinée aux lignes de champ, il est possible +de voir la puissance du champ électrostatique autour des charges ainsi que leur impact sur leur voisinage, ce qui +est très utile pour avoir une idée macroscoptique du champ. Cependant, le cacul du rendu graphique reste très lent. +Ceci est dû au fait qu'un calcul d'intensité du champ est fait pour tout pixel. \begin{figure}[h] \centering @@ -208,5 +209,5 @@ Ceci est dû au fait qu'un calcul d'intensité du champs est fait pour tout pixe L'utilisation de la librairie graphique OpenGL a été privilégié de part son efficacité de rendu ainsi que sa flexibilité d'utilisation. Grâce à cela, il a été possible d'afficher du texte -en dessous des particules indicant leur charge respective, utilisation d'antialiasing par défaut -pour un rendu de ligne et de cercle très bon, et calcul graphique fait sur le GPU au lieu du CPU. \ No newline at end of file +en dessous des particules indicant leur charge respective, et utilisation d'antialiasing par défaut +pour un rendu de ligne et de cercle très bon. \ No newline at end of file diff --git a/doc/mainmatter/introduction.tex b/doc/mainmatter/introduction.tex index 2a0d7d955c411c5acd6ba37b25e25533e13125b3..36ca59ff1c070cae12a9e4905a0c4dbcb220f003 100644 --- a/doc/mainmatter/introduction.tex +++ b/doc/mainmatter/introduction.tex @@ -10,11 +10,11 @@ multipliant la charge élémentaire d'un proton $e$ ou d'un électron $-e$, indi La conservation quant à elle est le fait qu'une charge ne peut pas être créer à partir de rien. Elle peut être transférée d'une objet à un autre, mais jamais créée. -La simulation de lignes de champs électrostatiques permet d'avoir une représentation graphique claire de +La simulation de lignes de champ électrostatiques permet d'avoir une représentation graphique claire de l'impact inter-particules dans un univers discret. À plus grande echelle, il est possible -de montrer l'impact de différents objets ou matériaux chargé dans un environement. Par exemple dans le cas +de montrer l'impact de différents objets ou matériaux chargés dans un environement. Par exemple dans le cas de la conception d'une batterie, d'un train à lévitation magnétique, ou autres phénomènes impliquant un -transfert de charge électrique. +transfert de charges électriques. Ce rapport porte sur la théorie utilisée, ainsi que les résultats obtenu et les expériences réalisées. diff --git a/doc/mainmatter/theory.tex b/doc/mainmatter/theory.tex index 4d4b7e83e52805e119e4840e1402c8696278b858..8cfa14b501a59d1b18f38a55d4de4f1e8eb0a51e 100644 --- a/doc/mainmatter/theory.tex +++ b/doc/mainmatter/theory.tex @@ -4,9 +4,9 @@ \newcommand{\lvec}{\overrightarrow} Comme vu en cours, tout objet dans l'univers possède une charge positive, négative, ou neutre. -Ce travail à pour but de simuler l'impact que ces objet (dans notre cas des particules) on sur +Ce travail à pour but de simuler l'impact que ces objet (dans notre cas des particules) ont sur leur environnement et les particules voisines dans un univers discret. Pour parvenir à cela, -j'utilise deux lois de l'électrostatique qui sont la loi de Coulomb et les champs électriques. +j'utilise deux lois de l'électrostatique qui sont la loi de Coulomb et les champs électriques \cite{work-statement}. \textit{ Pour rappel, toute particule à une charge $Q$ valant $\pm n \cdot e$, où $e = 1.602176634 * 10^{-19}[C]$. @@ -23,7 +23,7 @@ Cette loi nous dis que : } \end{center} -La force est sur la ligne droite les reliants entre eux. Si deux charge on le même signe, +La force est sur la ligne droite les reliants entre eux. Si deux charges ont le même signe, la force électrostatique est répulsive; si les signes sont différents la force est attractive. Soit $r$ la distance en mètre entre les deux charges, alors la force en newton entre les charges @@ -42,7 +42,7 @@ $q$ et $Q$ est : Le champ électrique, $\vec{E}$, en newton par coulomb, ou volt par mètre, est un champ vectoriel pouvant être défini en tout point, excepté sur la position de la charge. -Il est défini comme la force électrostatique en newton, $E$, de la charge subi sur une charge test +Il est défini comme la force électrostatique en newton, $E$, de la charge subie sur une charge test hypothétique, $P$, multipliée par $\hat{i} = \frac{\lvec{qP}}{||\lvec{qP}||}$, le vecteur unitaire directeur reliant la charge test et la charge émettant le champ. @@ -54,10 +54,10 @@ charge émettant le champ. \section{Lignes de champs} -Les lignes de champs sont utiles afin de visualiser le champs électrique. Ces lignes commencent +Les lignes de champ sont utiles afin de visualiser le champs électrique. Ces lignes commencent sur des charges négatives et terminent sur des charges positives. -Elles sont la mesure de la magnitude et la direction du champs électrique en tout point. -\textit{Dans le cadre de ce travail, c'est un ensemble de points aléatoires placés dans l'univers +Elles sont la mesure de la magnitude et la direction du champ électrique en tout point. +\textit{Dans le cadre de ce travail, c'est un ensemble de points aléatoirement placés dans l'univers qui permet de générer ces lignes de champs.} Soit une collection de $N$ charges de charge $q_i$, le champ en $P_{n+1}$ est : @@ -70,9 +70,9 @@ Soit une collection de $N$ charges de charge $q_i$, le champ en $P_{n+1}$ est : \end{center} Concernant la mise en pratique de cette formule, il est nécessaire de la modifier un peu. -Comme nous voulons avancer d'une distance identique à chaque nouveau calcul de champs électrique, +Comme nous voulons avancer d'une distance identique à chaque nouveau calcul de champ électrique, il faut normaliser la formule et rajouter une constance $\delta x$ qui est définie en fonction de -la taille de la fenêtre. Ce qui donne \cite{work-statement} : +la taille de la fenêtre. Ce qui donne : \begin{center} \begin{equation} @@ -81,5 +81,5 @@ la taille de la fenêtre. Ce qui donne \cite{work-statement} : avec $\delta x = \sqrt{largeur^2 + hauteur^2}$ et $\vec{E} = \sum_{i=1}^N E_i \frac{\lvec{q_i P_n}}{||\lvec{q_i P_n}||}$ \end{center} -Le $\pm$ est du au fait qu'il nous faut afficher les lignes de champs dans les deux sens en partant -de tout des points aléatoires de l'ensemble. \ No newline at end of file +Le $\pm$ est dû au fait qu'il nous faut afficher les lignes de champs dans les deux sens en partant +de tout les points de l'ensemble. \ No newline at end of file diff --git a/doc/report.tex b/doc/report.tex index 9d6f276c06e4c69b2267b83fbb42748b07831a0a..0cd7bca67a29daa323325158e0e984faf72f7b95 100644 --- a/doc/report.tex +++ b/doc/report.tex @@ -19,7 +19,7 @@ %% Defining the main parameters \title{Simulation de lignes de champ} -\subtitle{Implémentation graphique de simulation de\\lignes de champs électrostatique de particules} +\subtitle{Implémentation graphique de simulation de\\lignes de champ électrostatique de particules} \author{Tanguy Cavagna} \subject{Physique: Électrostatique} @@ -56,7 +56,6 @@ %% Letters for chapters \appendix -\input{appendix/appendix-a} %\input{appendix/appendix-c} % Create file to add \end{document}