a

Fabien Péan

Hello there !

Welcome to my personal website, I am currently senior simulation engineer at Virtonomy. Prior that, I defended my PhD at ETH Zurich where I was working on the musculoskeletal modeling and simulation of the shoulder, see here for more details.

In general, I am fond of numerical methods and modeling approaches in the field of computational science, especially solid mechanics, with an accent on high-performance computing. My passion revolves around the interactive simulation of deformable bodies.

My interests condensed in a list:

  • Numerical methods (FEM, IGA, MPM, etc.)
  • Soft material modeling and simulation
  • (Soft) real-time simulation & visualization
  • Programming in C++
  • Parallel programming (SMP, GPGPU)

Recent

2023.04 │ Blog
A conspicuous tale of an open-source software enthusiast into solving an innocuous inconvenience

2022.02 │ News │ 
On February 1st 2022, I officially start a new adventure as Senior Simulation Engineer at Virtonomy 🎉 My mission there will be to develop methods and applications for the simulation of cardiovascular related medical scenarios ❤️, with the aim to shorten time to market for medical devices developers. Once this is well-established, direction orthopedics 🚀

2021.12 │ News │ 
My paper titled Computational analysis of subscapularis tears and pectoralis major transfers on muscular activity, published in Clinical Biomechanics, is now online ! It is freely accessible under a Creative Commons license, thanks to the agreement between ETH Zurich and Elsevier, at this url. This article brings a conclusion to a long journey as it is the last work elaborated during my PhD. Many thanks to my co-authors Dr. Philippe Favre and Prof.

A (hopefully) clear explanation of the method.

2021.11 │ News │ 
My paper titled Influence of rotator cuff integrity on loading and kinematics before and after reverse shoulder arthroplasty published in Journal of Biomechanics is now online ! It is freely accessible under a Creative Commons license, thanks to the agreement between ETH Zurich and Elsevier, at this url

2021.03 │ Notes │ 
Brief description on how to control a dynamical system, e.g. a musculoskeletal model.

2021.02 │ News │ 
I am thrilled to announce that I successfully defended my PhD thesis. 🎉🎉🎉 Entitled “Computational Modeling and Simulation of the Shoulder for Functional Analysis of Orthopedic Surgery Outcomes”, it was carried out at ETH Zurich in collaboration with Balgrist University Hospital and Dr. Philippe Favre from Zimmer Biomet. During my PhD, I developed numerical models of the shoulder to better understand the musculoskeletal system during active movement under various clinical conditions and their treatments.

Description of the tr-bdf2.

Description of the BDF methods.

Description of the Wilson-θ method and linearization.

Description of the implicit Euler method and linearization.

Description of the implicit midpoint scheme and linearization.

2020.11 │ Blog │ 
While doing some benchmarks with the heterogeneous containers described here and here along with some related containers, I could not but notice the performance of entt, more specifically its registry class which relies on a modified sparse set data structure. In front of such witchcraft, I decided to delve behind the curtains and see for myself the performance of an heterogeneous container based on it. Sparse sets Sparse sets are data structures widely covered (1, 2, 3, 4).

2020.08 │ Notes │ 
In this page, I enumerate various C++ fragments that sparkled my incomprehension when I encountered them, or made me scratch my head far too long. It is meant to be a reminder mainly for myself and destined to be updated over time.

2020.08 │ Blog │ 
Building an heterogeneous container: basic ingredients In a precedent post, I outlined the implementation of an heterogeneous dynamic array. Let us try now to reflect on what was done to draw some genericity out of it. The basic ingredients to build an heterogeneous container are: data the object ptr where the object is stored: a pointer or offset allowing to find the object in memory tag what is the type of that object: a unique way to identify types at runtime.

2020.07 │ Blog │ 
In this post, we will go through the implementation of an heterogeneous container that preserves spatial locality of its elements. Imagine a container like std::vector<std::any> but better. And it holds only in 100 lines of code !

2020.07 │ News │ 
My paper titled Surface-based Modeling of Muscles: Functional Simulation of the Shoulder is now online ! Published in Medical Engineering and Physics journal at https://doi.org/10.1016/j.medengphy.2020.04.010

2020.03 │ News │ 
A warm welcome to my personal website. After a long maturation time, it is finally online! 🎉 It was developed from scratch with Hugo, a great static site generator, and inspired myself or sometimes reused bits from the nice Academic theme by Georges Cushen. During the journey, I learned a lot about html, css and hugo. Why from scratch? For two main reasons: one is that I had a precise design in mind, and the other was that I wanted to keep it as minimal as possible for my needs.