Published February 13, 2026 | Version 1.0
Dataset Open

Injection Design as Degree of Freedom in Flow-Based Molecular Communication

  • 1. ROR icon Friedrich-Alexander-Universität Erlangen-Nürnberg
  • 2. ROR icon Universitätsklinikum Erlangen
  • 3. Friedrich-Alexander-Universität Erlangen-Nürnberg - Technische Fakultät

Description

This dataset provides access to the simulation results of the following publication:  Injection Design as Degree of Freedom in Flow-Based Molecular Communication [DOI: PLACEHOLDER]

Short abstract of the paper:

Testbed experiments in molecular communication (MC) are often based on the propagation of signalling particles/molecules within a channel of background fluid. The particles are usually injected by means of fluidic connectors, like Y-/T- or a medical cannula- connectors. In this work, the impact of these injection designs as well as varying injection flow rates was studied by numerical simulation. The expected system response is evaluated together with the particle distribution over the cross section at a downstream receiver. A uniform distribution seems only to be achieved at a high injection rate. A low injection rate seems to negatively impact the overall propagation time of the particle bolus and the distribution in the receiver cross section can not be assumed uniform any more. The results presented in this study have a major influence on the design of any fluidic communication scheme in MC. Future testbed developments and MC applications should account for these findings, when choosing an injection method and flow rate.

Description of the data set:

We have published our simulation data and the OpenFOAM simulation setup for ferrofluid mixing under different injection designs on Zenodo under the CC BY and MIT licenses, respectively. The data is provided in the form data files and table files. Researchers are welcome to use our dataset.

The dataset is packaged as zip file and the structure of the dataset will be explained in the following outline.

Structure and content:

In the paper, four injection designs are demonstrated and the corresponding results are placed in these folders:

  • 01_Cannula-Injection/ - folder that contains simulation results about the Cannula Injection design.
  • 02_T-Injection/ - folder that contains simulation results about the T-Injection design.
  • 03_Y-Injection-Asym/ - folder that contains simulation results about the asymmetric Y-Injection design.
  • 04_Y-Injection-Sym/ - folder that contains simulation results about the symmetric Y-Injection design.
  • 05_Figures/ - folder that contains further figures.
  • PlotConcentrationWeightedVelocity.py

Each of the first four folders (01 ... 04) contains

  • OpenFOAM simulation cases
    Four subfolders, one for each injection flow rate in the format: 'method'_'flowrate'/.
    These folders contain all the simulation files necessary to run the simulation, but no results (see also next section).
    For example T-Injection_5mlmin/ contains the OpenFOAM simulation case for the T-Injection design with an injection flow rate of 5 ml/min.

  • Post-Processed Receiver System Response (see section 4.A / 4.B)
    Four .csv files , one for each injection flow rate in the format: 'method'_'flowrate'_Concentration-Receiver.csv.
    Each .csv file has 4 columns and 300 rows, one row per time step (10 ms).
    The columns are defined as follows:
    • Time: This column matches each row with a distinct timestamp.
    • Concentration_Flux_Injection: Ferrofluid flux in the injection slice, e.g. the cross section in the channel 1 mm after the injection point.
      Unit: [m^3 / s]
      Equation: Q(t) = ∫ v(x,t) α(x,t) dA 
      with t = time, x = cell position vector, v = velocity magnitude of cell at x (scalar), α the ferrofluid concentration of the cell at x (scalar), dA = surface integral.
    • Concentration_Flux_Receiver: Ferrofluid flux in the receiver slice, e.g. the cross section in the channel 5 cm after the injection point.
      Unit: [m^3 / s]
      Equation: Q(t) = ∫ v(x,t) α(x,t) dA 
      with t = time, x = cell position vector, v = velocity magnitude of cell at x (scalar), α the ferrofluid concentration of the cell at x (scalar), dA = surface integral.
    • Concentration_Volume_Receiver: Integrated ferrofluid concentration over the receiver volume.
      Unit: [m^3]
      Equation: Refer to Eq. (7) in the original paper.

In the paper, only Concentration_Volume_Receiver is shown in the plots, since this resembles the case of physical receiver (sensor) with a finite length of 2 cm.
The other equations resemble more ideal sensor responses of infinitely thin slices.

  • Post-Processed Ferrofluid Concentration-weighted velocity (see section 4.C):
    Four .npz (python/numpy) files , one for each injection flow rate in the format: 'method'_'flowrate'_Volume-Flux_Slice.npz.
    Each .npz file includes four numpy matrices.
    A sample python script is included in the top-level folder: PlotConcentrationWeightedVelocity.py, which shows an example on how to load and display the cross-sectional data.
    Here is same basic information about the included matrices:
    • timeline - a row vector of length (300,1) where each value represents a distinct time step from 0.01s to 3s in 10 ms steps.
    • points- a matrix of size (N, 3) where each row represents a position (x,y,z) for a cell point. At these positions the values were sampled.
    • slice_velocity - a tensor of size (300, N, 3). A matrix is given for each of the 300 time steps, which contains velocity values for each of the N points.
      The velocity values have a x-,y- and z-component and are sampled at the receiver slice.
    • slice_concentration  - a matrix of size (300, N). A scalar value is given for each of the 300 time steps, which represents the ferrofluid concentration for each of the N points.

The average concentration-weighted velocity is obtained by multiplying slice_velocity with slice_concentration, integrating the result over the time steps and then dividing it by the total time duration (refer to Eq. (8) in the original paper).

We advise interested readers to checkout the python example PlotConcentrationWeightedVelocity.py, where also a basic 2D plot as well as an animation of all timesteps is included. The script can be run by adjusting the path to the location of the respective .npz file.

OpenFOAM Simulation Results:

We supplied the OpenFOAM cases, together with the respective mesh, in order for external researchers to be able to reproduce our simulation results by executing the the simulation. Be aware that multiprocessing is needed to reduce the simulation time to an acceptable duration.

We also included the first and last time step for comparison purposes.

Unfortunately, the original OpenFOAM simulation results are too large to share via Zenodo (around 70 GB per case), but if you need the original data for a specific purpose, you're welcome to contact us by mail (see below).

Contact:

In case of open questions or general inquiries, feel free to contact:

Further References:

This work was funded by the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) -- project-ID 509922606, within the research training group 2950: Synthetic Molecular Communication Across Different Scales: From Theory to Experiments (SyMoCADS).

Files

Injection_Dataset.zip

Files (4.5 GB)

Name Size Download all
md5:414f5fc8e538b40af1d52852d58554cf
4.5 GB Preview Download

Additional details

Funding

Deutsche Forschungsgemeinschaft
SyMoCADS - Synthetic Molecular Communications Across Different Scales - RTG 2950 2950

Software

Programming language
Python