Pierre de Buyl's homepage

All articles

  1. NASA TOPS Open Science 101 review

    NASA TOPS (TOwards Open Science) Open Science 101 is a brand new online course about Open Science. It originates in the 2023 "Year of Open Science" at NASA and is part of a broad set of initiatives at NASA to promote and practice Open Science. I followed the course and wanted to share a few observations.

  2. JupyterHub on Ubuntu

    JupyterHub is a solution to host Jupyter notebooks via a web interface to several users. On their website, there are two main recommended methods for deploying JupyterHub: /The Littlest JupyterHub/, or TLJH, and a Kubernetes deployment. I tried the former and had trouble diagnosing some configuration issues. In the following, I show how to deploy the pip version on Ubuntu 22.04.

  3. A paper on the Lees-Edwards method

    A few years ago[ref]Four years almost day to day actually[/ref], Sebastian contacted me to help with simulations. Great, I like simulation studies, so we start discussing the details. The idea: use an established method, the Lees-Edwards boundary condition, to study colloids under shear.

  4. Is your software ready for the Journal of Open Source Software?

    For the unaware reader, the Journal of Open Source Software (JOSS) is an open-access scientific journal founded in 2016 and aimed at publishing scientific software. A JOSS article in itself is short and its publication contributes to recognize the work on the software. I share here my point of view on what makes some software tools more ready to be published in JOSS. I do not comment on the size or the relevance for research which are both documented on JOSS' website.

  5. What's in a model

    During the coronavirus epidemic, the belgian federal group of scientific experts came up regularly in the official communication of the government. How can scientists understand the spread of an epidemic? By using a model: a mathematical description of a phenomenon. By varying the parameters of the model, one can test …

  6. GNU Parallel for simulations

    Although I knew about GNU Parallel since a long time, I had never given it a try. I used it recently to launch parametric runs and found it very convenient for single-core simulations. I describe here how I use parallel within a single bash program to control LAMMPS simulations on a HPC node.

  7. Tidynamics, what use?

    In 2018 I published small Python library, tidynamics. The scope was deliberately limited: compute the typical correlation functions for stochastic and molecular dynamics: the autocorrelation and the mean-square displacement. Two years later, I wonder about its usage.

  8. Fortran bitmasks

    Bitmasks are useful to store boolean settings. In Fortran, their use remains somewhat confidential in the sense that it is not easy to find examples of use. I have started to use them and show in this blog article a typical scenario for bitmasks.

  9. Fortran, CMake and git

    There is an interesting peak of activity around Fortran: a new website for the Fortran standards committee, a GitHub organisation around Fortran FOSS, Fortran libraries for convenience functionality (command-line arguments parsing, strings, JSON file handling, I probably miss others). Still, it is troublesome to find practical information on how to use modern tools of software developments with Fortran. I focus only on open-source tools.

  10. Testing the compact Hilbert index

    In 2015, I worked to implement the so-called "compact" Hilbert index. You can read about it here. After some feedback on the code, I decided that I wanted to investigate "how good" the compact Hilbert actually is. In this post, I compare my code to Chris Hamilton's original code (using a program by Peter Colberg) and verify the basic promise of the compact Hilbert index (keep the ordering of the full Hilbert index).

  11. Developing a Cython library

    For some time, I have used Cython to accelerate parts of Python programs. One stumbling block in going from Python/NumPy code to Cython code is the fact that one cannot access NumPy's random number generator from Cython without explicit declaration. Here, I give the steps to make a pip-installable 'cimportable' module, using the threefry random number generator as an example.

  12. A concise derivation of the Wiener-Khinchin theorem

    While teaching a class on statistical physics, I found myself unhappy with textbook derivations of the Wiener-Khinchin theorem. I worked my way to a very short derivation that is free of integral bounds manipulations and of holes, or so I believe.

    In either the books by Balakrishnan (Elements of Nonequilibrium Statistical Mechanics, Ane Books, 2008), Risken (The Fokker-Planck Equation, 2nd edition, Springer-Verlag, 1989), Coffey-Kalmykov-Waldron (The Langevin Equation, 2nd edition, World Scientific, 2004) or MathWorld, I could not find a short derivation that would cleanly take into account the averaging procedure or that would not resort to splittings of the domain of integration. I present here one derivation and a numerical illustration with Python.

  13. Reviewing for ReScience, a blog post

    From its homepage:

    ReScience lives on GitHub where each new implementation of a computational study is made available together with comments, explanations and tests. Each submission takes the form of a pull request that is publicly reviewed and tested in order to guarantee that any researcher can re-use it.

    So, let's say you are a reviewer: What does this all mean? We have a page with the editorial process but for a first review experience with us it might lack detail on how to proceed. I present here a step by step guide.

  14. Correlators for molecular and stochastic dynamics

    License: CC-BY

    Time correlations represent one of the most important data that one can obtain from doing molecular and stochastic dynamics. The two common methods to obtain them is via either post-processing or on-line analysis. Here I review several algorithms to compute correlation from numerical data: naive, Fourier transform and blocking scheme with illustrations from Langevin dynamics, using Python.

  15. ActivePapers: hello, world

    License: CC-BY

    ActivePapers is a technology developed by Konrad Hinsen to store code, data and documentation with several benefits: storage in a single HDF5 file, internal provenance tracking (what code created what data/figure, with a Make-like conditional execution) and a containerized execution environment.

    Implementations for the JVM and for Python are provided by the author. In this article, I go over the first steps of creating an ActivePaper. Being a regular user of Python, I cover only this language.

  16. Code as a paper

    Publishing scientific software is a nontrivial problem. I present here, and ask feedback, on the idea to upload the software to arXiv with a presentation paper and use it as an evolving reference.

  17. The threefry random number generator

    Pseudo-random number generation has many applications in computing. The use of random number in parallel is becoming necessary and a recent solution is the use of so-called block cipher algorithms. In this post, I review the mechanism being the Threefry random number generator that is based on the the Threefish block cipher.

  18. Compiling a Fortran library for Python

    The ability to call Fortran code from Python has been and still is essential to several scientific packages, including the widely used SciPy library. One widely used tool to make the Fortran code accessible to Python is the f2py library that is bundled with NumPy.

    Here, I review how one can write portable and easy to compile Fortran routines.

  19. Mesoscopic simulations of nanomotors with OpenCL

    The simulation of nanomotors is an integral part of my research. For this blog article, I have chosen to present nano-dimer, a simulation software written by my friend Peter Colberg. nano-dimer generates on the fly OpenCL code to perform Molecular Dynamics with a hybrid algorithm called MPCD to study chemically powered dimer nanomotors.

  20. Understanding the Hilbert curve

    The Hilbert curve fills space with good properties for sorting N-dimensional data in a linear fashion. I present an IPython notebook with the complete code to follow the algorithm of C. Hamilton CS-2006-07.

  21. Set up gpg keys offline

    Setting up properly a gpg key requires a lot of reading. This article documents fully how I set up my gpg keys while never exposing the master secret key on a online computer.

  22. Using H5MD in lammps

    H5MD is a HDF5 based file format for molecular data. In short, it is binary, portable and self-describing.

    In this blog post I present the use of H5MD in the Molecular Dynamics program lammps. I have written a dump style for lammps, i.e. a piece of code to write …

  23. Hello world!

    Hi, I launch a blog!

    This post is for test purpose but also for a general presentation. I will share here comments on computing mostly related to: physics, Linux, molecular simulations, Python, etc.

Generated with Pelican. Theme based on MIT-licensed Skeleton.