Overview
What is VirtualLab
VirtualLab is an open-source platform which enables performing ‘virtual experiments’ – digital equivalents of real-world laboratory engineering tests.
The motivation for creating a virtual laboratory is manyfold, for example:
- Planning and optimisation of physical experiments.
- Ability to directly compare experimental and simulation data, useful to better understand both physical and virtual methods.
- Augment sparse experimental data with simulation data for increased insight.
- Generating synthetic data to train machine learning models.
VirtualLab is not a simulation code itself, but rather a ‘wrapper’ which joins together several different software packages into a single platform and carries out some pre/post processing tasks to achieve this. Due to its modular nature, VirtualLab is software agnostic and components can be swapped and added as desired by users. As developers of VirtualLab, we have a preference for open-source codes which enables us to package and share the same experience we enjoy with you in the most streamlined way.
The focus of VirtualLab development is for full automation through parameterisation and by utilising its multi-node and high throughput computing (HTC) capabilities. A large number of virtual experiments can be performed for a variety of experimental parameters in a very short space of time, allowing rapid iterations of the engineering design cycle.
For example, VirtualLab has been used to optimise a lab experiment for a heat exchanger component, by suggesting the position of the induction coil which would achieve the desired balance between thermal power input and uniformity across the sample surface.
Current Status & Roadmap
The initial work to establish VirtualLab came about due to a number of projects funded partly by EPSRC and in collaboration with UKAEA. As such, initial effort has been made to include virtual experiments of relevance to that work to address mechanical testing, thermal testing and combined thermo-mechanical testing.
Currently, VirtualLab has built-in capability to perform the following virtual experiments with more planned for the future:
- Mechanical – Tensile Testing
- Thermal – Laser Flash Analysis (LFA)
- Multi-Physics – Heat by Induction to Verify Extremes (HIVE)
See documentation for further details…
The VirtualLab platform which ties together the various software packages is mostly written in python. By nature, VirtualLab is continually expanding. In our early implementation, we used the following:
- SALOME: Mesh generation
- Cad2Vox: Mesh voxelisation
- CIL: CT reconstruction
- SuRVoS: Image segmentation
- iso2mesh: Image-based meshing
- ERMES: FE induction heating simulations
- Code_Aster: FE thermal and mechanical simulations
- ParaVis / ParaView: Data visualisation
- PyTorch: Machine learning
At present, the automation aspect is being used to investigate how virtual experiments coupled with Machine Learning (ML) can be used to optimise the planning and control of physical experiments in addition to maximising the impact of measured results by increasing the amount of knowledge extracted from data.
The use of Image-Based data to perform IBSim with VirtualLab is currently achieved through manual pre-processing of the data in additional external packages. We are in the process or developing an automated workflow to integrate within VirtualLab which we will release in future.
Getting Started
Installation
The recommended way of using and developing VirtualLab on your system is via containers. It has been tested and works with Apptainer. We have chosen containers as the main way of distributing VirtualLab for several reasons such as ease of installation, consistent user experience and performance.
The quickest way to get started with VirtuaLab for those unfamiliar with containers is to use the pre-prepared virtual machine (VM) image. This is a complete Ubuntu OS desktop environment with all the necessary software and dependencies pre-installed that can be run on your current computing setup. The drawback of this method is that it will not support multi-node processing or GPU acceleration (the latter meaning that some modules will not work). However, it is sufficient for learning to use the platform.
Tutorials
Once installed, the easiest way to learn how to use VirtualLab is by going through the tutorials. The tutorials provide an overview in to running a ‘virtual experiment’.
Before starting the tutorials, it is advised to first read the Code Structure and Running a Simulation sections for an overview of VirtualLab. Then it is best to work through the tutorials in order as each will introduce new tools that VirtualLab has to offer.
Documentation
To view the latest documentation, visit the page here or for alternative versions (e.g. dev) see the pages on Read the Docs.
There is documentation specific to a particular version packaged within VirtualLab’s source code and can be built to be viewed as html pages through your browser.
Source Code
The source code for VirtualLab is available to download from our repository which is hosted by gitlab.
Support VirtualLab
Attribution
At the IBSim group, we are firm believers in open-access data and open-source code. Our main goal is that the output of our research will lead to wider use of virtual testing techniques, particularly for industrial applications. Therefore, access to the resources we develop is offered freely. This is with the aim that they will be used as part of your application.
The VirtualLab code is licensed under the Apache License, Version 2.0. That is, the user may distribute, remix, tweak, and build upon the licensed work, including for commercial purposes, as long as the original author is credited. We would also ask that you kindly inform us (resources@ibsim.co.uk) if the use of our resources has led to further output (e.g. industrial application, new software, journal publications). This enables us to evidence the value of our research when we apply for funding which will lead to further resource development for your benefit.
To cite this code in your publication please use the format below:
- R. Lewis, B.J. Thorpe, Ll.M. Evans (2020) VirtualLab source code (Version !!!) [Source code]. https://gitlab.com/ibsim/virtuallab/-/commit/3c1d7727987def758df32a34933c964f54579325
NOTE: You will need to update the version number and url to the commit version you used.
Reporting Bugs & Contributing
If you are having issues using VirtualLab, please let us know.
You may contact us by raising an issue on the project’s gitlab repository.
If you are a developer, the source code of VirtualLab is publicly available. Feel free to have a look at it, find and fix bugs, add new features or rework some areas of the tool and submit them as Pull or Merge Requests (PR).
Financial Support
If you are interested in directly financially supporting VirtualLab (either one-time or recurring), you can contact us to discuss in further detail.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.