Medusa: coordinate free implementation of meshless methods
Our team started the development of Medusa library in 2015 to support our research in the field of numerical analysis and to ease implementation of applied projects. Over time, the interface grew and matured, putting emphasis on modularity, extensibility and reusability. Similarly to many open-source FEM libraries, it relies heavily on the C++ template system and allows the programs to be written independently of the number of spatial dimensions with negligible run-time and memory overhead. Special care is also taken to increase expressiveness and to be able to explicitly translate mathematical notation into program source code. However, source code is still standard compliant C++, which allows the user to use entirety of the C++ ecosystem. The open-source nature of the library is a novelty compared to the other libraries. We already utilized Medusa library for solving broad spectra of problems ranging from pure academic experiments like high order solutions of Poisson’s equation in 2D, 3D, and 4D, to applied thermo-fluid and thermo-elastic simulations of real life problems.
Few examples are presented below: (1) The Pennes' bioheat equation on realistic geometry of human brain (2) Scattering from a triple dielectric step in 1D (3) adaptive solution of 3D Bousinesq’s problem (4) High order solution of Poisson’s equation in 4D (4) thermo-fluid natural convection case
Code repository, examples, API reference and project main page
The basic information about Medusa, including live demo, description of main features, download links, installation guide, and more, can be found on dedicated Medusa page.
Medusa library is open source and you can freely clone it from its git repository, where all the development happens. The code on repository is tested upon each change by executing unit and end-to-end tests using Continuous Integration provided by GitLab.
The complete C++ API of the library is available through the doxygen generated pages. The code is divided into modules and each class is documented and equipped with a short usage example.
A tool is useless if you don't know how to use it, and while we provide detailed documentation we understand that using a library for a first time user may be a very daunting task. In this spirit we created numerous examples to aid the process of learning. Our wiki page is a more frequently changing body of content, that has numerous examples, tutorials, experiments and other notes in somewhat relaxed form.
Follow Medusa publications at the project site on ResearchGate
Related projects
Multi-analysis of fretting fatigue using physical and virtual experiments
DTR in natural convection regime
Inertial effects on fluid flow in complex porous media
Advanced modelling of radio channels using ray-optical and numerical meshless methods
Core research programme P2-0095