Experimental dataset of Kolmogorov-scale fiber kinematics in turbulent channel flow

DOI

KOLMOGOROV-SCALE FIBER TRAJECTORIES IN TURBULENT CHANNEL FLOW=============================================================

Per-fiber Lagrangian trajectories (position, velocity, acceleration,orientation, angular velocity) of rigid Kolmogorov-scale fibers in a turbulentchannel flow, at three friction Reynolds numbers. Each fiber is stored both raw(measured) and filtered (translation and rotation filtered separately). Thefiles contain trajectories only; example loaders that rebuild the y+ profilesare included.

Dataset version 1.0.

CONTENTS--------  Re_tau=180 : near_wall, intermediate, center  Re_tau=360 : near_wall, intermediate, center  Re_tau=720 : near_wall, center           (no intermediate region)

Per region:  //fiber_trajectories_Re###.h5  Per case:    fiber_trajectories_Re###_datadictionary.json   (field/units description)               LoadHDF5_Re_tau###.py , LoadHDF5_Re_tau_###.m  (example loaders)

Each region is an independent volumetric acquisition, with its own frictionvelocity and viscous scales; always use the wall scales stored in the file youare reading. 

FILE LAYOUT (HDF5)------------------Ragged/columnar: within each group all fibers' samples are concatenated. Everygroup also carries two bookkeeping datasets to slice a single fiber:  index     int64 (nFiber x 3) = [fiber_id, start0, count], start0 is 0-based  fiber_id  int64, the fiber id of each sampleThere is also a root dataset /fiber_id listing all fiber ids. Missing values areNaN. Time is redundant with the frame index: time = (frame-1)*dt.

/raw                  frame, time, pos[mm], e1, e2, e3,                        curvature_kk0, length_mm      (measured, unfiltered)  /filtered_translation frame, time, pos[mm], vel[mm/s], acc[mm/s^2],                        tau_f_sec[s]                  (Mordant filter)  /filtered_rotation    frame, time, e1_filt, e2_filt, e3_filt,                        omega_body[rad/s], wall_distance[mm],                        tau_f_sec[s]                  (SO(3) SG filter)  /wall_scales          u_tau[m/s], viscous_length[m], viscous_time[s],                        Re_tau, Temperature[degC]

The wall distance is column 2 of pos (see CONVENTIONS), so it is not storedseparately in /raw or /filtered_translation. /filtered_rotation has no position,so it keeps wall_distance: the measured wall distance at that frame.

COMPLETENESS------------/raw holds every sample of every selected fiber. The two filtered groupsare subsets: filtering consumes samples at both ends of a trajectory, so a fiberwhose valid runs were shorter than the filter support has count = 0 in thatgroup's index and appears in /raw only. Root attributes n_fibers,n_fibers_with_translation, n_fibers_with_rotation, n_fibers_raw_only and then_samples_* counts summarise this per region.

CONVENTIONS-----------  Axes: x = streamwise, y = wall-normal, z = spanwise. The frame is        right-handed. +x points along the mean flow, so the streamwise position        increases with time. y is the distance from the nearest wall in mm,        always >= 0 and increasing away from the wall; it is therefore column 2        of pos, in both /raw (measured value) and /filtered_translation        (filtered value). The x and z origins are arbitrary.  pos/vel/acc columns = [streamwise, wall_normal, spanwise].  omega_body = [spin(e1), tumble(e2), tumble(e3)], in the fiber body frame, and        therefore independent of the lab-frame axis convention above.  Orientation: e1, e2, e3 are the body axes expressed in the lab frame and are        the COLUMNS of the rotation matrix, det(R) = +1. In /raw they are the        measured axes; in /filtered_rotation they are the filtered ones, stored        as e1_filt, e2_filt, e3_filt. Rebuild the matrix as            R(:,:,k) = [e1_filt(k,:)' e2_filt(k,:)' e3_filt(k,:)']   (MATLAB)            R = np.column_stack([e1[k], e2[k], e3[k]])               (Python)        and the lab-frame angular velocity, if needed, as omega_lab = R*omega_body.

ARRAY ORDER-----------The files are written from MATLAB. MATLAB reverses dimension order on disk, soh5py reports the transposed shape: an (N,3) array such as pos, vel, acc,omega_body or a body axis is read back with shape (3,N), and the (nFiber,3)index as (3,nFiber). The included Python loader handles this.

HOW TO RUN----------Python (needs numpy, h5py, matplotlib). The loaders were written and tested withPython 3.12.0 and the package versions pinned in requirements.txt(h5py 3.16.0, numpy 2.5.1, matplotlib 3.11.0). To reproduce that environment:      python -m pip install -r requirements.txt  set DATA_DIR at the top of the script, then run interactively so the loaded  variables stay available:      python -i LoadHDF5_Re_tau_180.py       (or LoadHDF5_Re_tau_360.py / LoadHDF5_Re_tau_720.py)  (plain "python LoadHDF5_Re_tau_180.py" runs to the end but then exits and the  variables are not saved in memory -- use -i.) MATLAB:  set DATA_DIR at the top of LoadHDF5_Re_tau_###.m and press Run. The MATLAB  loaders and the processing scripts were written and tested with MATLAB R2024b. Both leave in memory: DATA (case, Re_tau, regions), PROFILES (y+ statisticscomputed from the trajectories), and one variable per region (near_wall,intermediate, center) holding per-fiber arrays, one column per fiber, NaN-paddedto the longest fiber:   .raw_data              pos, e1, e2, e3 (nSamp x nFib x 3); curvature,                         length_mm, frame, time, wall_mm (nSamp x nFib)  .translation_filtered  pos, vel, acc (nSamp x nFib x 3); tau_f, frame, time,                         wall_mm (nSamp x nFib)  .rotation_filtered     e1, e2, e3, omega_body (nSamp x nFib x 3); tau_f,                         frame, time, wall_mm (nSamp x nFib) wall_mm is provided by the loaders for convenience and is column 2 of pos in thetwo groups that have a position. Each group also carries fiber_ids (nFib), thefiber id of each column, so a fiber can be followed across groups. The y+ profiles in PROFILES are computed by the loaders from the trajectories,as an example of use; they are not stored in the files. Edit compute_profiles()to change the binning or add quantities.

LICENSE-------The dataset is released  under the Creative Commons Attribution 4.0 Internationallicense (CC-BY-4.0). https://creativecommons.org/licenses/by/4.0/ The accompanying codes (the MATLAB processing scripts and the MATLAB and Pythonloading scripts) are released under the MIT License, provided in LICENSE-CODE.txt.https://opensource.org/licenses/MIT 

HOW TO CITE-----------Please cite both the paper accompanying this dataset and the related paper below.

1) Accompanying paper (dataset descriptor):     @article{ColibanFiberDataset,       title   = {Experimental dataset of Kolmogorov-scale fiber kinematics in turbulent channel flow},       author  = {Coliban, Eliza and Zaza, Domenico and Soldati, Alfredo},       journal = {Scientific Data},       year    = {2026},       note    = {submitted}     }

2) Related paper:     @article{kcmw-5dph,       title   = {Angular Velocity of Kolmogorov-Scale Fibers as Proxy for Turbulent Dissipation},       author  = {Zaza, Domenico and Giurgiu, Vlad and Iovieno, Michele and Soldati, Alfredo},       journal = {Phys. Rev. Lett.},       volume  = {136},       issue   = {5},       pages   = {054001},       year    = {2026},       month   = {Feb},       publisher = {American Physical Society},       doi     = {10.1103/kcmw-5dph},       url     = {https://link.aps.org/doi/10.1103/kcmw-5dph}     }

Identifier
DOI https://doi.org/10.48436/amgkr-eak93
Related Identifier References https://doi.org/10.1103/kcmw-5dph
Related Identifier Continues https://doi.org/10.5281/zenodo.17873151
Related Identifier IsVersionOf https://doi.org/10.48436/b0d1d-8pn80
Metadata Access https://researchdata.tuwien.ac.at/oai2d?verb=GetRecord&metadataPrefix=oai_datacite&identifier=oai:researchdata.tuwien.ac.at:amgkr-eak93
Provenance
Creator Coliban, Eliza ORCID logo; Zaza, Domenico ORCID logo; Soldati, Alfredo ORCID logo
Publisher TU Wien
Contributor Coliban, Eliza; Zaza, Domenico; Giurgiu, Vlad; Soldati, Alfredo
Publication Year 2026
Funding Reference FWF Austrian Science Fund 013tf3c58 ROR 10.55776/P35505 Micro Fibers in Turbulent Open Channel Flow
Rights Creative Commons Attribution 4.0 International; MIT License; https://creativecommons.org/licenses/by/4.0/legalcode; https://opensource.org/licenses/MIT
OpenAccess true
Contact tudata(at)tuwien.ac.at
Representation
Language English
Resource Type Dataset
Version 1
Discipline Engineering Sciences; Mechanical and industrial Engineering; Mechanics; Mechanics and Constructive Mechanical Engineering