Research – Useful Resources ​

You can find below a list of open-source, freeware and commercial software / projects the group is using.

Computing & Modelling

MathWorks Matlab proprietary software is the primary tool we employ to do maths when using a computer, alternatively we use Wolfram Mathematica. Matlab is particularly useful carrying out symbolic algebra, tensor algebra, generate plots and graphs, Fourier analysis, etc.​

FEBio is a FE solver dedicated for problems in biomechanics. It is free to use for non-commercial purposes can operate on several OS’s. We use it occasionally for teaching purposes, since it offers both a nice GUI for the pre- and post-processing of the FEA models.​

ANSYS is a well-established proprietary software for FE analysis of solid mechanics, fluid mechanics and multiphysics problems. The group is using it primarily for teaching and training undergraduate students to the finite element method, while some diploma or/and master’s level projects are carried out using ANSYS.​

Variational Bayesian Monte Carlo (VBMC) is a Matlab coded project that implements a Bayesian Monte Carlo methodology. VBMC is an approximate inference method designed to fit and evaluate computational models with a limited budget of potentially noisy likelihood evaluations (e.g., for computationally expensive models). This is a new approach we are currently exploring for constraining and testing the parameter space of our in silico models (FEM and ABM simulators).​

Bitbucket and Github are the core online repositories we’ve been using to developing and maintaining our computer codes and projects.

Pre- & post-processing

Gmsh is an open-source 1D/2D/3D mesh generator, particularly useful for FEs while it has a built-in CAD engine and post-processing capabilities, and it has been integrated with established meshing algorithms (e.g. TETGEN, Netgen). Gmsh offers also a module for post-processing structured and unstructured FE data.

BETA’s ANSA is a proprietary, CAE pre-processing software for generating almost any kind of FEA meshes. It is a very powerful tool which I have used together with my colleagues to generate very complicated 3D meshes for fluid-structure interaction and pure computational fluid dynamics simulations. ANSA offers a very good interface with most commercial FEA software (e.g. ABAQUS, ANSYS).

Paraview is an extremely useful and powerful open-source, cross-platform software for data visualisation and post-processing. We’ve been using Paraview extensively in our research work, and it has proven a very handy tool to generate animations. Paraview great feature is the scalability for the visualisation of simulation results.​

MayaVi is a nice open-source alternative to Paraview, though the latter is predominately used by our group for data visualisation.​

Meshmixer and Meshlab are freeware and open-source design tools respectively. We are using them (separately or in conjunction) for processing and editing 3D triangular meshes. They provide an array of tools for editing, cleaning, healing, inspecting, rendering, texturing and converting meshes. Both offer features for processing raw data produced by image processing, 3D digitization tools/devices, as well as for preparing models for our in silico simulations.​

Image processing

VMTK is a collection of libraries and tools for 3D reconstruction, geometric analysis, mesh generation and surface data analysis for image-based modelling of vascular structures (i.e., blood and lymphatic vessels, lung airways).​

Open-source project 3D Slicer is a multi-platform software package for medical, biomedical, and related imaging research. Our group is using it extensively for visualizing, measuring, segmenting, conduct landmark-based geometric morphometric analyses and animating 3D biological structures (brain, breast, lung, liver, prostate) from digital collections of volumetric and surface scans (MRI, CT, US, Kinect).​

MRtrix3 is an open-source project that provides a set of tools to perform various types of diffusion MRI analyses, from tractography data to group-level analyses. We are using this software to build pertinent personalised models for the brain disease progression simulations.​

ITK-SNAP is an interactive software application used to navigate three-dimensional medical images, manually delineate anatomical regions of interest, and perform automatic image segmentation. Together with the aforementioned software, we are using ITK-SNAP for medical image analysis and within our 3D model generation pipelines.

Numerical Libraries & Solvers

libMesh is the major framework we have been using to develop – both multiphysics and multiscale FEM and IGA solvers. Our solver, FEB3, is entirely designed and developed using libMesh.​

Blitz++ is an open-source, high-performance vector mathematics library in C++ that emphasises in tensor algebra. It utilizes advanced C++ template metaprogramming techniques, thus, providing speed-optimized mathematical operations on sequences of data.​

PETSc is another example of an open-source, high-performance computing library, dedicated for the numerical solution of linear and nonlinear systems. It is very popular in the scientific computing community – especially in scientific applications modelled by partial differential equations.​

Together with PETSc, we are also using Trilinos, a collection of open-source software libraries that are integrated within libMesh. Trilinos numerical solvers and algorithms are used for the development of our scientific applications in FEB3.​

BioDynaMo stands for Biology Dynamics Modeller, a scalable open-source in-silico modelling platform developed at the CERN Open Lab. It is a very powerful platform for modelling and simulating biological systems, from tissue to cell dynamics.​

The GNU Scientific Library is an open-source numerical library written in C. We are using GSL as it provides a wide range of mathematical routines (e.g. random number generators, special functions, least-squares fitting, numerical solution of ODEs, etc.).​

The Visualization Toolkit (VTK) is an open-source software for manipulating and displaying scientific data (e.g., 3D rendering, widgets for 3D data interaction, 2D plotting capabilities). VTK is part of Kitware’s collection of supported platforms for software development, and it consists Paraview’s kernel.​

The ScaLAPACK library (a subset of LAPACK routines) for distributed memory MIMD parallel computers. It is currently written in a Single-Program-Multiple-Data style using explicit message passing for inter-processor communication, and it’s integrated with PETSc for parallelised computations in FEB3.​

SuperLU is an open-source, general purpose library coded in C, designed for the direct solution of large, sparse, nonsymmetric systems of linear equations – as with the FE solvers involved in FEB3. The library routines perform LU decomposition with partial pivoting and triangular system solves through forward and back substitution.​

Boost is a C++ suite of functions and algorithms for linear algebra, pseudo-random number generation, multithreading, image processing, regular expressions, and unit testing. Boost is used in combination with GSL for our numerical analysis and simulators.​

MPICH is a high-performance and widely portable implementation of the message passing interface (MPI) standard for distributed-memory applications. MPICH is integrated within PETSc and libMesh, thus, it’s been used in FEB3 simulation platform.​