PhD student in Photophysics
at Laboratoire LuMIn
I am a PhD student working on hybrid halide perovskites' photophysics. I enjoy making things in my free time, such as small electronics projects, nice physics animations or programming small utilities.
I have a degree in engineering from CentraleSupélec (Diplôme d'ingénieur de l'École Supérieure d'Électricité) and a master of science in optics and photonics from Imperial College London, that I both obtained in 2020. I am currently studying for my PhD in Université Paris-Saclay.
You can find here an up-to-date CV (august 2022).
On this page you can find :
Some highlighted contents that I published on the Internet,
Some of my projects that I am proud to share,
Some blog posts,
A way to contact me if you wish !
I am a physicist exploring condensed matter property through various spectroscopy methods. Check the Academics section.
Synthesis method of highly calibrated CsPbBr3 nanocrystals perovskites by soft chemistry
Chemical Communications (Royal Society of Chemistry)
A new synthesis method of highly calibrated CsPbBr3 nanocrystals perovskites is described and analyzed using High-Resolution Scanning Transmission Electron Microscopy. This new method based on soft chemistry leads to the large-scale production of nanocrystals. Such monodisperse nanocrystals allow for the deposition of homogeneous films which provides new opportunities for the next generation of optoelectronic devices.
En période de canicule, une idée fixe: économiser la float
Dans le deuxième article de cette série, nous avons vu comment implémenter une simili multiplication pour les flottants. Cette approximation nous permettait de gagner quelques microsecondes par multiplication, et avait également l’avantage d’avoir un coût d’utilisation constant.
Pour la comparaison, j’ai donné les temps nécessaires pour multiplier deux entiers long
de 32 bits. Notre petite mesure donnait 5,75 µ s pour la multiplication entière, contre 7,1875µ s pour la multiplication flottante. La différence étant encore plus flagrante pour l’addition. Nous avions expliqué cela par la nécessité pour le compilateur d’émuler une FPU (Floating Point Unit) afin d’être en mesure de réaliser les opérations sur les flottants. La conclusion que nous en avions tirée était qu’il fallait parfois mieux ne pas utiliser ces flottants, et les remplacer par des nombres en virgule fixe. C’est tout l’objet de ce troisième et dernier article de la série!
Multiplications avec Arduino : jetons-nous à la float
Dans mon précédent billet, nous avons discuté de la représentation flottante des nombres. Dans cet article, on va voir comment on peut utiliser cette représentation pour effectuer des opérations. En particulier, on va s’intéresser à l’implémentation d’une multiplication de flottants sur le processeur de l’Arduino Uno: l’ATMega328P, un microcontrôleur 8 bits.
IEEE 754 : Quand votre code prend la float
Ceci est le premier article d’une série de trois. Le but de la série est de s’amuser avec les nombres à virgule. On va jouer avec les flottants et les nombres à virgule fixe sur des processeurs 8 bits. Dans ce premier article, je vous propose de vous (re)familiariser avec les nombres flottants. Bref, on va parler de la norme IEEE 754.
Quelques outils pour le physicien avec Julia
Bien choisir les outils que l’on utilise au quotidien est important. Pour ma part, je veux des outils avec lesquels je suis à l’aise, qui soient suffisamment performants et qui produisent des rendus de bonne qualité.
Dans la vie de tous les jours, je suis physicien. Plus précisément, j’étudie la photo-physique de semi-conducteurs un peu exotiques. Concrètement, cela signifie que je passe beaucoup de temps en salle de manipe à collecter des données de spectroscopie. Je ne suis donc pas un physicien théoricien qui utiliserait l’informatique pour faire du calcul symbolique, ou un numéricien qui utiliserait de gros calculateurs pour faire tourner des simulations. Mon utilisation de l’informatique est double :
Aujourd’hui j’ai choisi de vous détailler un peu la manière dont je réalise la seconde partie. Ceci n’a absolument pas vocation à être une recommandation d’utilisation, ou à dénigrer d’autres manières de travailler. Cependant, si cela peut donner des idées pour s’inspirer, ou si vous pensez que je suis passé à côté d’un outil intéressant, n’hésitez pas à me contacter.
Jouons à implémenter une transformée de Fourier rapide !
Un algorithme que vous utilisez probablement au quotidien.
La transformée de Fourier est un outil essentiel dans de nombreux domaines, que ce soit en Physique, en traitement du signal, ou en Mathématiques. La méthode qui est probablement la plus connue pour la calculer numériquement s’appelle la FFT pour Fast Fourier Transform, ou Transformée de Fourier Rapide. Dans ce petit tutoriel, je vous propose d’essayer de comprendre et d’implémenter cet algorithme de manière efficace. J’utiliserais pour cela le langage Julia, mais il devrait vous être possible de suivre en utilisant d’autres langages tels que Python ou C. Nous comparerons les résultats obtenus avec ceux donnés par le portage en Julia de la bibliothèque FFTW.
I update thoses from time to time. Some are in english others are in french. A more complete list is available in the Contents section.
You might be interested in my Github account. A more complete list is also available in the Projects section.
A Norg parser in Julia
Norg.jl is a library to parse the norg file format used in NeoVim's neorg.
Manage wireguard from waybar
This is a simple, stupid waybar extension for toggling wireguard. It uses rofi for password prompting, but you could use anything you like.
A library to use Lightfield SPE files in Julia.
SPEFiles is a library aiming at providing utilities to open Princeton instruments SPE 3.0 files with Julia.
A plugin on top of vim-slime to enhance its cell feature.
It adds the possibility to jump between cells and to send the current cell then jump to the next one. There is also a nice syntax-highlighting feature for cell boundaries.
How I over-engineered a Fast Fourier Transform for Arduino.
The lengthy, excruciating, details.
Everything began with me wanting to implement the Fast Fourier Transform (FFT) on my Arduino Uno for a side project. The first thing you do in such case is asked your favorite search engine for existing solutions. If you google "arduino FFT" one of the first result will be related to this instructable: ApproxFFT: The Fastest FFT Function for Arduino. As you can imagine, this could only tickle my interest: there was an existing solution to my problem, and the title suggested that it was the fastest available! And thus, on April 18ᵗʰ 2021, I started a journey that would bring me to write my own tutorial on implementing the FFT in Julia, learn AVR Assembly and write a blog post about it, about one year and a half later.
A nice approximation of the norm of a 2D vector.
Some cool sunday project!
While wandering on the internet, I stumbled uppon Paul Hsieh's blog-post, where he demonstrates a way to approximate the norm of a vector without any call to the sqrt function. Let's see if I can reproduce the steps to derive this.
Modeling a honeycomb grid in FreeCAD
A small tutorial on FreeCAD
Someone asked me how to make a honeycomb grid in @FreeCADNews. Here's how I do it, and bonus it's parametric! ⬇️
Let's play at implementing a fast Fourier transform!
An algorithm you probably use on a daily basis.
The Fourier transform is an essential tool in many fields, be it in Physics, Signal Processing, or Mathematics. The method that is probably the most known to calculate it numerically is called the FFT for Fast Fourier Transform. In this little tutorial, I propose to try to understand and implement this algorithm in an efficient way. I will use the language Julia, but it should be possible to follow using other languages such as Python or C. We will compare the results obtained with those given by the Julia port of the FFTW library.
A more complete list is also available in the Blog section.
You can contact me via my social media, or drop-me an email at contact@klafyvel.me.
If you do so, feel-free to use my PGP key :
85B696BB7726AF2739E98AD75154221C97ABD7DC