Académique Documents
Professionnel Documents
Culture Documents
Département d'Informatique
En témoignage de notre respect pour vous, nous vous dédions ce travail. Avec tous nos
meilleurs v÷ux de bonheur et de continuité :
A notre encadrante.
Aucune expression ne saurait exprimer toute l'aection et tout l'amour que nous vous
portons.que ce travail soit l'exaucement de vos priéres et le fruit de vos innombrables
sacrices :
A tous nos professeurs.
Pour leurs patiences et leurs soutiens qu'ils ont tout au long de notre formation :
En souvenir des bons moments passés ensemble nous vous souhaitons la réussite et le
bonheur :
A tous nos collégues.
Remerciements
Si ce projet a pu voir le jour, c'est certainement gràce à Dieu qui nous a donné le
pouvoir, nous a éclaircit le chemin dans les moments les plus diciles pour enn pouvoir
amener ce travail au bord de l'arrivé.
Au terme de ce travail, il nous est vraiment agréable de nous acquitter d'une dette de
reconnaissance auprés de toutes les personnes, dont l'intervention au cours de ce projet a
favoris à son aboutissement.
Nos remerciements les plus s'incéres s'adressent é notre encadrante Mme Soumia Ziti,
qui nous a choisi pour réaliser ce projet important et qui a fourni tant d'eorts an de
mener à bien ce travail. Votre disponibilité, vos conseils éclairés et votre soutien, nous ont
été d'une aide inestimable et ont largement contribué à notre formation.
Nous exprimons également nos remerciements à l'ensemble des professeurs qui nous ont
formé durant cette période d'études.
Nous tenons également à remercier et exprimer notre profond respect aux membres de
jury d'avoir accepté de juger ce travail.
Finalement nous remercions tous ceux qui nous ont aidé et qui ont contribué de pré ou
de loin dans la réalisation de ce projet.
Étude des structures magnétiques à l'aide des graphes
Résumé
L'objectif de ce mémoire est de réaliser une application bureau pour des chercheurs de
la Faculté des Sciences Rabat permettant l'étude des structures magnétiques.
Le présent document constitue le fruit de notre travail, réalisé dans le cadre du projet
de n d'études, eectué au sein de la Faculté des Sciences de Rabat. Ce projet consiste à
mettre en place une application bureau pour des chercheurs à la Faculté des Sciences de
Rabat. Cet outil va permettre aux chercheurs d'étudier des structures magnétiques et de
faire des calculs complexes et qui dure selon des diérentes méthodes et paramètres.
Après la réunion d'analyse des besoins avec notre encadrante, nous sommes penchés
dans l'étape de la modélisation des besoins (avec UML), des processus et des données du
futur application. Celle-ci a abouti vers une conception détaillée couvrant la majorité des
fonctionnalités de la solution adoptée.
The purpose of this project is to provide a desktop application for the researchers in
the Faculty of Sciences Rabat allowing them the study of the magnetic structures.
This document is the fruit of our work, carried out under the graduation project conduc-
ted within the Faculty of Science Rabat. This project involves the establishment of a
desktop application for the researchers at the Faculty of Sciences of Rabat. This tool will
allow them to study many magnetic structres and carry out some complex computations
which takes time in a short amount of time and with dierent methods and parameters.
After the needs analysis meeting with our supervisor, we have considered in this step :
modeling the needs, processes and the data of the future application. This has led to a
detailed design covering the majority of the functionality of the solution.
The last step was to initiate the implementation of the solution across multiple tech-
nologies such as JavaFX framework and the object-oriented language, JAVA. In addition,
we worked with the portable database management system H2.
1 Introduction 9
1.1 Les Graphes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2 La Spintronique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2.1 Pourquoi la spintronique ? . . . . . . . . . . . . . . . . . . . . . . . 9
1.2.2 Qu'est ce qu'un Spin ? . . . . . . . . . . . . . . . . . . . . . . . . . 10
2 Contexte générale 11
2.1 Structures magnétique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.1.2 Classication des matériaux d'une point de vue magnétique . . . . 11
2.1.3 La géométrie des sept systèmes cristallins . . . . . . . . . . . . . . . 13
2.1.4 Dénition d'une couche mince . . . . . . . . . . . . . . . . . . . . . 14
2.1.5 Fabrication d'une couche mince . . . . . . . . . . . . . . . . . . . . 14
2.1.6 Les Matériaux : Introduction . . . . . . . . . . . . . . . . . . . . . . 14
2.1.7 Les Matériaux : Matériau bidimensionnel . . . . . . . . . . . . . . . 15
2.1.8 Les Matériaux : Le graphite, exemple de structure bidimensionnelle 17
2.1.9 Les Matériaux : Autres variétés allotropiques du carbone . . . . . . 18
2.2 Graphes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2.2 Dénitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2.3 Terminologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2.4 Représentation des graphes . . . . . . . . . . . . . . . . . . . . . . 21
2.2.5 Modes de visualisations des graphes . . . . . . . . . . . . . . . . . . 22
3 Technologies utilisés 25
3.1 JAVA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.1.1 Introduction à JAVA . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.1.2 Pourquoi Java ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.2 La framework graphique JavaFX . . . . . . . . . . . . . . . . . . . . . . . 25
3.3 MVC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.3.1 Généralités sur MVC (Modèle-Vue-Contrôleur) . . . . . . . . . . . . 26
3.3.2 Pourquoi MVC ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.4 Base de données H2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4 Application et algorithmes 27
4.1 Modélisation et fonctionnement de l'application . . . . . . . . . . . . . . . 27
4.1.1 Diagramme de cas d'utilisation . . . . . . . . . . . . . . . . . . . . 27
4.1.2 Fonctionnement de l'application . . . . . . . . . . . . . . . . . . . . 28
4.2 Algorithmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.2.1 Phases fondamentales . . . . . . . . . . . . . . . . . . . . . . . . . . 33
6
TABLE DES MATIÈRES
5 Conclusion 39
8
Chapitre 1
Introduction
Les graphes tirent leur nom du fait qu'on peut les représenter par des dessins. À chaque
sommet de G, on fait correspondre un point distinct du plan et on relie les points corres-
pondants aux extrémités de chaque arête. Il existe donc une innité de représentations
d'un graphe.
D'ailleurs, les graphes modélisent de nombreuses situations concrètes où interviennent
des objets en interaction, permettant de décrire un ensemble d'objets et leurs relations,
c'est-à-dire les liens entre les objets. Alors qu'ils sont appliqué pour modéliser plusieurs
domaines, et parmi ceux, les structures magnétiques.
1.2 La Spintronique
9
CHAPITRE 1. INTRODUCTION
Contexte générale
2.1.1 Introduction
L'utilisation d'un matériau magnétique dans une machine électrique vise à canaliser le
ux magnétique pour maximiser la conversion d'énergie. Les matériaux sont classés selon
quatre types sur la base de leur comportement en présence d'un champ magnétique dex-
citation. Cette réaction est mesurée par l'induction qui est la quantité de ux magnétique
par unité de surface. Sur la base du comportement en présence d'un champ magnétique
d'excitation.
Matériaux paramagnétiques :
11
CHAPITRE 2. CONTEXTE GÉNÉRALE
Matériaux ferromagnétiques :
Pour certains cristaux ioniques, dont la maille contient au moins deux espèces
chimiques diérentes, chaque ion possède un moment permanent diérent et
n'interagit pas de la même manière avec ceux de son espèce et avec les autres
=> corps ferromagnétiques mais domaines d'aimantation modérée parce que les
diérents dipôles prennent des orientations opposées et se neutralisent partiel-
lement.
C'est comme si il existait deux sous réseaux d'aimantation opposée : ferrima-
gnétisme.
Exemple : F e3O4...
Du point de vue optique : teinter un miroir par exemple ou dans le cas du nicke-
lage des casques de pompiers pour rééchir la chaleur.
la déposition sous vide : le matériau à déposer est sublimé, ou fondu puis vaporisé,
et il va se condenser sur le substrat ;
la projection plasma : une haute tension est établie dans un gaz ce qui crée un
plasma ; les ions accélérés viennent arracher les atomes d'une cible, atomes qui se
déposent sur le substrat en regard.
2.2 Graphes
2.2.1 Introduction
Pour résoudre de nombreux problèmes concrets, on est amené à tracer sur le papier des
petits dessins qui représentent (partiellement) le problème à résoudre. Bien souvent, ces
petits dessins se composent de points et de lignes continues reliant deux à deux certains
de ces points. On appellera ces petits dessins des graphes, les points des sommets et les
lignes des arcs ou arêtes, selon que la relation binaire sous-jacente est orientée ou non.
2.2.2 Dénitions
De façon plus formelle, un graphe est déni par un couple G = (S, A) tel que :
S est un ensemble ni de sommets
A est un ensemble de couples de sommets -arêtes- (si , sj ) ∈ S
2.2.3 Terminologie
L'ordre d'un graphe est le nombre de ses sommets.
Une boucle est un arc ou une arête reliant un sommet à lui-même.
Un graphe non-orienté est dit simple s'il ne comporte pas de boucle, et s'il ne
comporte jamais plus d'une arête entre deux sommets. Un graphe non orienté qui
n'est pas simple est un multi-graphe. Dans le cas d'un multi-graphe, A n'est plus
un ensemble mais un multi-ensemble d'arêtes. On se restreindra généralement dans
la suite aux graphes simples.
Un graphe orienté est un p-graphe s'il comporte au plus p arcs entre deux sommets.
Le plus souvent, on étudiera des 1-graphes.
Un graphe partiel d'un graphe orienté ou non est le graphe obtenu en supprimant
certains arcs ou arêtes.
Un sous-graphe d'un graphe orienté ou non est le graphe obtenu en supprimant
certains sommets et tous les arcs ou arêtes incidents aux sommets supprimés.
Un graphe orienté est dit élémentaire s'il ne contient pas de boucle.
Un graphe orienté est dit complet s'il comporte un arc (si , sj ) et un arc (si , sj ) pour
tout couple de sommets diérents si , sj ∈ S 2 . De même, un graphe non-orienté est
dit complet s'il comporte une arête (si , sj ) pour toute paire de sommets diérents
(si , sj ) ∈ S 2 .
Un graphe est dit pondéré si ses sommets (ou ses arêtes) sont pondéré/valué. On
note p(v) (resp.p(i)) le poids d'un sommet v (resp. i) et p(v, v 0 ) (resp. p(i, j)) le
0
poids d'une arête (v, v ) (resp. (i, j)).
Si le graphe est valué (par exemple, si les arêtes représentent des distances), on
peut stocker dans les listes d'adjacence, en plus du numéro de sommet, la valuation
de l'arête.
Dans le cas de graphes non orientés, pour chaque arête (si , sj ), on aura sj qui
appartiendra à la liste chainée de T [si ], et aussi si qui appartiendra à la liste chainée
de T [sj ].
Taille mémoire nécessaire : si le graphe G est orienté, la somme des longueurs
des listes d'adjacence est égale au nombre d'arcs de A, puisque l'existence d'un
arc (si ; sj ) se traduit par la présence de sj dans la liste d'adjacence de T [si ]. En
revanche, si le graphe n'est pas orienté, la somme des longueurs de toutes les
listes d'adjacence est égale à deux fois le nombre d'arêtes du graphe, puisque si
(si , sj ) est une arête, alors si appartient à la liste d'adjacence de T [sj ], et vice
versa. Par conséquent, la liste d'adjacence d'un graphe ayant n sommets et m
arcs ou arêtes nécessite de l'ordre de O(n + m) emplacements mémoires.
G est dit planaire si on peut le représenté de tel façon qu'aucun arête n'est coïncidé
avec un autre.
Une fois représenté dans le plan, un graphe planaire nous donne une donnée supplé-
mentaire que ses sommets et ses arêtes : on a aussi des faces (ou des régions) que ces
arêtes délimitent.
Le résultat suivant, appelé relation d'Euler-Descartes, relie le nombre d'arêtes, de
sommets et de faces d'un graphe planaire.
n−a+f =2
(Avec f le nombre des faces.)
Dans le physique, on a :
Algorithme :
Soit c1 l'énergie constante des sommets et c2 la longueur idéale de l'arête.
Soit pv les coordonnés d'un sommet v et le la longueur d'une arête (u, v).
−−→ P −→ −−−→
Soit le vecteur du force pour un sommet v F (v) = (frep (u, v) + fspring (u, v)),
avec :
−→
u sont les sommets voisins pour frep et les sommets relié par une arête avec
−−−→
v pour fspring
−→ c1 −−→
frep (u, v) = kp −p 2 .pu pv
v uk
−−−→ vk −
fspring (u, v) = c2 . log kpul−p .p−→
u pv
Début :
e
Choisir un placement aléatoire (pour chaque sommet).
Tant que un sommet n'est pas stable :
→
−
Calculer pour chaque sommet son vecteur de force F (v).
→
− →
− →
−
Déplacer chaque sommet v selon son vecteur de force : pv = pv + δ. F (v).
Fin tant que.
Fin.
Technologies utilisés
3.1 JAVA
Avec l'apparition de Java 8 en mars 2014, JavaFX devient l'outil de création d'inter-
face graphique ociel de Java, pour toutes les sortes d'application (applications mobiles,
applications bureau, applications Web...), le développement de son prédécesseur Swing
étant abandonné.
JavaFX est une pure API Java, et supporte l'architecture MVC.
JavaFX contient des outils très divers, notamment pour les médias audio et vidéo, le
graphisme 2D et 3D, la programmation Web, la programmation parallèle...
25
CHAPITRE 3. TECHNOLOGIES UTILISÉS
3.3 MVC
Application et algorithmes
Description : Le cas d'utilisation "authentication" est activée pour tous les utilisa-
teurs de notre système, les administrateurs inclus. Elle donne le droit aux utilisa-
teurs accéder aux plusieurs fonctionnalités, c'est notre cas d'utilisation principale.
27
CHAPITRE 4. APPLICATION ET ALGORITHMES
Le calcule des phases Monte-Carlo se fait selon des couches ; soit circulaires, soit
carrés.
Après lancer l'application, presque toutes les fonctionnalités sont désactivée, il faut
s'identier (Utilisateur administrateur : admin) en remplissant la formulaire et
cliquer sur "Entrer" ou sur la bouton "Se connecter". L'utilisateur peux par la
suite explorer l'application.
Après remplir les informations générales concernant la structure, une matrice d'ad-
jacence rempli par des 0 est créé et l'utilisateur doit la remplir.
4.2 Algorithmes
Remarque : pour la somme −D. oi 2 , on ignore les sommets d'un spin de valeur
P
originale 1/2
4.2.1.2 Algorithme
Tant qu'on n'a pas terminer de calculer toutes les combinions possibles des si
On change la combinaison et on calcule l'énergie avec la formule en haut.
On stocke l'énergie s'il est minimale, et on retient la conguration de cette
structure (l'état des spins).
Si l'énergie est égale à l'énergie minimale, on stocke la conguration.
Fin tant que
Complexité : O(n.m). Avec n est le nombre des sommets et m le nombre des types
de spins.
Après choisir le type du diagramme, l'utilisateur saisi les paramètres et clique sur
"Calculer diagramme".
L'utilisateur peux choisir par la suite l'emplacement où les chiers de sortie seront
généré.
FichPF : (Fichier des phases fondamentales) est un chier contenant dans les
lignes toutes les itérations faite.
FichPT : (Fichier des phases de transitions) est une version rané du chier
premier, qui spéciant les points de transitions qui aide à tracer le diagramme
nal. On utilise la dichotomie pour déterminer la point de transition.
4.2.1.4 Dichotomie
Cette algorithme permet de trouver une valeur dans un intervalle (ou une valeur ap-
−6
proximé à 10 ).
Soin x un variable dans le calcul du diagramme.
Supposons qu'on a trouver la même conguration dans deux itérations successives.
Soit ci (resp. xi ) la conguration (resp. valeur) de l'itération avant précédente, et cj (resp.
xj ) la conguration (resp. valeur) de l'itération précédente.
Tant que la précision de x est inférieur à 10−6 et on n'a pas trouver la point de
transitions :
|xj −xi |
On calcule la phase fondamentale avec la conguration c en prenons x = 2
.
Si c ∈ ci alors
x = xi
Sinon si c ∈ cj alors
x = xj
Sinon on a trouvé la point de transition et on sort de la boucle.
Remarque : pour la somme −D. oi 2 , on ignore les sommets d'un spin de valeur
P
originale 1/2
4.2.2.2 Algorithme
L'algorithme dessus est générale. Dans l'application, on déni des couches (Carré,
Circulaire), et on applique l'algorithme couche par couche.
Après choisir le type du diagramme, l'utilisateur choisi ainsi le type des couches et
saisi les paramètres et clique sur "Calculer diagramme".
L'utilisateur peux choisir par la suite l'emplacement où les chiers de sortie seront
généré.
FichPF : (Fichier des phases Monte Carlo) est un chier contenant dans les
lignes toutes les itérations faite.
FichPT : (Fichier des phases de transitions) est une version rané du chier
premier, qui spéciant les points de transitions qui aide à tracer le diagramme
nal. On utilise la dichotomie pour déterminer la point de transition.
Conclusion
Dans l'esprit de séparer la structure magnétique du traitement, et pour une mainte-
nance contenue et modulaire, cette application a été développée.
Cette dernière permet aux chercheurs dans le domaine des structures magnétiques à
appliquer des algorithmes ecaces pour trouver leurs structures idéales qui répondent à
leurs besoins.
Le but de cette application est d'appliquer l'algorithme des phases fondamentales
(T = 0) et la méthode Monte Carlo (Quand T tend vers 0) pour trouver le même résultat
dans les deux cas.
39
Bibliographie
[1] Graph Theory, Reinhard Diestel, Third Edition, Springer-Verlag, 2005.
[3] Spring Embedders and Force Directed Graph - Drawing Algorithms, Stephen G.
Kobourov, University of Arizona, 2012
[4] Spring Embedder Preprocessing for WWW Visualization, Paul Mutton, Peter Rod-
gers, University of Kent at Canterbury
[5] Théorie des graphes pour l'analyse de réseaux d'interactions, Bertrand Jouve, 2013
[6] Éléments de Théorie des Graphes et Programmation Linéaire, Didier Maquin, 2008
[10] Monte Carlo Methods with Applications to Spin Systems, Werner Krauth
40
Webographie
[1] http://graphdrawing.org/literature/gd-constraints.pdf
[2] http://www.leda-tutorial.org/en/discussion/ch05s03s08.html
[3] http://www.graphviz.org/pdf/graph.3.pdf
[4] http://www.graphviz.org/Documentation.php
41