Science Tools

FEM Mesh Toolbox

GitHub Repository
MATLAB toolbox - BSD License
Personal Project

MATLAB toolbox for handling 2D and 3D FEM meshes. The following functions are available: plot the mesh, plot scalar field, plot vector field, integrate data, interpolate data, etc. This library is meant for FEM simulations but can also be used for geographic information system or additive manufacturing.

Toolbox for Global Fitting/Optimization

GitHub Repository
MATLAB toolbox - BSD License
Personal Project

MATLAB toolbox for global optimization/fitting with computationally heavy error function. This toolbox offers a common interface for different solver (fmincon, fminsearch, surrogateopt, ga, etc). Different advanced functionalities are offered: various error metrics, variable scaling, constraint handling, vectorized and parallel evaluation, caching, plotting, etc.

Multi Objective Optimization

GitHub Repository
MATLAB toolbox - BSD License
ETH Zurich / PES Project

MATLAB toolbox for multi-objective optimization. This toolbox offers a common interface for brute-force grid search, single-objective genetic algorithm, and multi-objective genetic algorithm. Different functionalities are offered: continuous variables, discrete variables, variable scaling, constraint handling, vectorized and parallel evaluation, etc.

Fourier Series Library

GitHub Repository
MATLAB library - BSD License
Personal Project

Simple MATLAB library offering an abstraction layer for handling Fourier series for continuous signal. The transformation and inverse transformation are implemented with FFTs. The spectrum are properly scaled and truncated.

Interpolating Triangulated Data

GitHub Repository
MATLAB library - BSD License
Personal Project

Simple MATLAB library for interpolating triangulated (scattered) two-dimensional data. Create a triangulation, remove ill-conditioned triangles, compute the triangulation properties, interpolate data, and plot the results.

Fast Linear Interpolation

GitHub Repository
MATLAB library - BSD License
Personal Project

Simple MATLAB/MEX library for extremely fast one-dimensional linear interpolation. After each query, the position (index) of the point is returned. This index is used as an initial value for the next query point. This algorithm can be up to 30x faster than the MATLAB builtin interpolation methods.

Parallel Coordinates Plot

GitHub Repository
MATLAB library - BSD License
ETH Zurich / PES Project

Simple MATLAB library for making parallel coordinates plots (paper publishing quality). Parallel coordinates plots allow the visualization of high-dimensional data. The tool can handle large datasets (vector and raster plots).

Simplify Scatter Plot

GitHub Repository
MATLAB library - BSD License
Personal Project

Simple MATLAB library for reducing the number of points in a scatter plot. The algorithm detects which points are invisible (outside the frame or below other points) and remove them. This allows the usage of scatter plots with big data.

SlurmGen: Simple Slurm Manager

GitHub Repository
Python - BSD License
Dartmouth College / PMIC Project

SlurmGen is a very simple manager for Slurm jobs. The job description is stored in JSON files (with templating support) and transformed into Slurm Shell scripts. The generated Shell scripts can be run locally or on a Slurm cluster.

ETHZ Euler Cluster Scripts

GitHub Repository
Bash/MATLAB scripts - BSD License
Personal Project

Simple tutorial explaining how to use the ETHZ EULER high performance computing cluster (LSF cluster) with parallelized MATLAB simulations. This tutorial does not require any prior knowledge of Linux systems and HPC clusters.

BibTeX with Link and DOI

GitHub Repository
BibTeX /LaTeX scripts - LPPL License
Personal Project

This modified IEEEtran.bst BibTeX style offers some extension: linking a PDF file, linking an URL, linking a DOI (Digital Object Identifier). This BibTeX style was written for my Ph.D thesis and does not cover all the other entries offered by IEEEtran.bst.