遇见数据集

Hydrodynamic Forces in Stationary Bidisperse Particle Assemblies

收藏
Zenodo2026-09-30 更新2026-10-01 收录
官方服务:

资源简介:

Dataset accompanying the paper L. Kandari, M. A. Taborda, B. van Wachem, "Predicting hydrodynamic forces in stationary bidisperse particle assemblies using microstructure-based models". If you use this dataset, please cite the paper above and this dataset. Authors: Lowkya Kandari, Manuel A. Taborda, Berend van WachemChair of Mechanical Process Engineering, Otto-von-Guericke-Universitaet Magdeburg, GermanyContact: berend.van.wachem@multiflow.org Description This dataset contains the hydrodynamic forces on the individual particles of random, fixed (stationary) bidisperse assemblies of spheres. The forces were obtained from particle-resolved direct numerical simulations (PR-DNS), carried out with the immersed boundary method (IBM) and adaptive mesh refinement in the finite-volume code MultiFlow (https://www.multiflow.org). For every particle, the dataset also contains the Minkowski scalars, vectors and tensors describing its local microstructure, computed from a radius-weighted Voronoi tessellation (voro++), together with the list of its Voronoi neighbours. For two of the simulations, the full Eulerian flow field and Lagrangian particle data are also provided. Simulation setup Domain: tri-periodic cube of side length L = 1. The flow is driven in the x-direction by a uniform body force, the imposed mean pressure gradient dP. The value of dP is set from a bidisperse drag correlation for the target Reynolds number and solid volume fraction. The particles are fixed, spherical, and belong to two size classes: small (diameter d_s) and large (diameter d_l). The configurations are generated by random sequential addition, with 382-417 particles per simulation. All dimensional quantities are in consistent simulation units: L = 1, fluid density rho_f = 1, superficial velocity <u> approximately 1. The viscosity mu_f is chosen to obtain the target Reynolds number. Only the converged (steady) state of each simulation is reported. Definitions (N_i is the number of particles of class i, i = s, l): Solid volume fraction eps_p = eps_l + eps_s, with eps_i = N_i pi d_i^3 / (6 L^3) Large-particle volume ratio eps* = eps_l / eps_p Diameter ratio d* = d_l / d_s Sauter mean diameter <d> = sum(N_i d_i^3) / sum(N_i d_i^2) Superficial velocity <u> = (1/V) * integral over V of (I_f u) dV, where I_f is 1 in the fluid and 0 in the particles Reynolds number Re = rho_f <u> <d> / mu_f, using the x-component of <u> Stokes drag of particle k F_S = 3 pi mu_f d_k <u>, using the particle's own diameter d_k Normalised force F = F_dim / F_S, where F_dim is the dimensional hydrodynamic force Hydrodynamic force convention The particle forces in the CSV files follow Eq. (5) of the paper: F_dim = - sum_j (S_j dV_j) - dP V_p e_x The first term is the IBM feedback force summed over the Lagrangian markers j of the particle. The second term removes the contribution of the imposed mean pressure gradient dP, where V_p is the particle volume and e_x the unit vector in the x-direction. NOTE: the "Force" stored in the HDF5 particle files of Simulation_output is the first term only, i.e. the force BEFORE this correction: Force (HDF5) = F_dim + dP V_p e_x The streamwise component of "Force" in the HDF5 files is therefore larger than the drag in the CSV files. The transverse (y, z) components are identical, apart from small differences. dP itself is not stored in the CSV files. Parameter space The dataset contains 324 simulations with 130,203 particles in total. Each parameter was varied over the following values: Parameter Nominal values Actual values in the CSV files eps_p (Vfrac) 0.1, 0.2, 0.3, 0.4 within 0.2% of nominal Re (Reynolds) 0.1, 1, 100 within -5.6% / +7.8% of nominal d* (DiamRatio) 1.5, 2, 3 exact (up to round-off) eps* (VLarge_vfrac) 1/3, 1/2, 2/3 0.334-0.366, 0.500-0.521, 0.666-0.683 Realisation (Array) 1, 2, 3 - The paper and the folder names use the NOMINAL values. The CSV files contain the ACTUAL values of each simulation: eps_p and eps* differ from nominal because the number of particles is an integer. Re is computed from the superficial velocity that the simulation actually reached, which differs from the target because dP is prescribed from a drag correlation. To select a case by its nominal values, round the actual values. The script read_data.py does this for you, in the columns Re_nom, Vfrac_nom, DiamRatio_nom and VLarge_vfrac_nom. For a given eps_p, d*, eps* and realisation index, the same particle configuration is used at all three Reynolds numbers, with one exception. For eps_p = 0.4, d* = 3, eps* = 1/3: at Re = 1 and Re = 100, realisations 1 and 2 have the same particle configuration; at Re = 0.1, realisation 2 has the configuration of realisation 3 at Re = 1 and 100, and realisation 3 has a configuration that appears only there. Files README this file data-vfrac-0.1.csv ... data-vfrac-0.4.csv particle data, one file per nominal eps_p (54-55 MB each) read_data.py Python script to read the CSV files, with examples Simulation_output/ Eulerian and Lagrangian data of two simulations (13 GB) CSV files Each row of a CSV file describes one particle of one simulation (case). A case is identified by the columns Vfrac, Reynolds, DiamRatio, VLarge_vfrac and Array, which are constant within the case. The rows of a case are stored as one contiguous block; the cases themselves are not sorted. All files have the same 87 columns. Case parameters (constant within a case) Vfrac eps_p, total solid volume fraction VLarge_vfrac eps*, large-particle volume ratio eps_l/eps_p DiamRatio d*, diameter ratio d_l/d_s Array realisation index of the random configuration (1, 2, 3) Viscosity mu_f, dynamic viscosity u_avg_ZH x-component of the superficial velocity <u> v_avg_ZH y-component of the superficial velocity w_avg_ZH z-component of the superficial velocity Reynolds Re, computed with u_avg_ZH and <d> Forces Stokes_[Fs] F_S, Stokes drag 3 pi mu_f d_k <u> of the particle (dimensional) Fx_Fs_[-] F_{i,x}, normalised drag force (x) Fy_Fs_[-] F_{i,y}, normalised lift force (y) Fz_Fs_[-] F_{i,z}, normalised lift force (z) To obtain the dimensional force, multiply the normalised force by Stokes_[Fs]. Particle X, Y, Z coordinates of the particle centre, in [0, 1) Diameter particle diameter d_K; each case has exactly two values, d_s and d_l Voronoi cell and Minkowski descriptors (Section 3.2 and Table 1 of the paper) The suffixes -0, -1, -2 denote the x, y, z components of a vector. The suffixes -ab (a, b in {0, 1, 2}) denote the xx ... zz components of a tensor. Positions and normals are taken in a reference frame centred on the particle. Unless stated otherwise, the quantities are dimensionless as defined in Table 1 of the paper, with A_ref = 4 pi (3 V_K / (4 pi))^(2/3) and L_ref = d_K / eps_p^(1/3). Voro-Volume V_K, volume of the Voronoi cell (dimensional); the volumes sum to L^3 = 1 per case Voro-Surface A_K, surface area of the Voronoi cell (dimensional) Voro-LocalVolumeFraction eps_K, local solid volume fraction (pi/6) d_K^3 / V_K Voro-StretchingVector-a D, stretching vector sum_j(A_j n_j / r_j) / sum_j(A_j / r_j) Voro-WOneZeroZeroVector-a W^{1,0}_0 / V_K^(4/3) Voro-WOneZeroOneVector-a W^{1,0}_1 / (A_ref L_ref) Voro-WTwoZeroZeroTensor-ab W^{2,0}_0 / V_K^(5/3) Voro-WTwoZeroOneTensor-ab W^{2,0}_1 / (A_ref L_ref^2) Voro-WZeroTwoOneTensor-ab W^{0,2}_1 / A_ref Voro-InertiaTensor-ab inertia tensor of the Voronoi cell without the particle, Eq. (22), divided by V_K^(5/3): [-W^{2,0}_0 + tr(W^{2,0}_0) Q - (pi/60) d_K^5 Q] / V_K^(5/3), with Q the identity tensor <Tensor>-Eigen0/1/2 eigenvalues of the tensor; they are NOT sorted <Tensor>-Beta anisotropy index: smallest / largest eigenvalue <Tensor>-Trace trace of the tensor In the last three entries, <Tensor> stands for each of the four rank-2 tensors. Voronoi neighbours nfaces number of faces of the Voronoi cell, which equals the number of Voronoi neighbours adjacent_cells list of the neighbouring particles, stored as a string "[i, j, ...]" The indices in adjacent_cells are 0-based row positions WITHIN THE SAME CASE: index 0 is the first row of the case block, in file order. The neighbour relation is symmetric. The tessellation is periodic, so a neighbour may lie across a periodic boundary. The string can be parsed with ast.literal_eval (see neighbours() in read_data.py). read_data.py The script requires Python >= 3.8, numpy and pandas. Running python read_data.py [directory] reads all CSV files and prints two examples: the forces and Voronoi neighbours of a particle of one case; the class-averaged drag F_{i,D} with its standard deviations sigma_{i,x} and sigma_{i,y}, which reproduces cases A-D of Table 4 of the paper. The script also provides the following functions: load_data() reads all CSV files into one table. It adds a case index, the particle index within the case, the particle class (small/large), the nominal parameter values and the dimensional forces. neighbours() parses the adjacent_cells column. tensor() returns a 3x3 Minkowski tensor. class_averaged_drag() computes the class-averaged drag statistics. Simulation_output This folder contains the flow field and particle data of two of the 324 simulations. Each folder is named Re<Re>-Vfrac<eps_p>-VFracLarge<eps*>-DiamRatio<d*>-Array<realisation> using the nominal parameter values; VFracLarge corresponds to the CSV column VLarge_vfrac. The two simulations are: Re1-Vfrac0.1-VFracLarge0.33-DiamRatio1.5-Array1: Re = 1, eps_p = 0.1, eps* = 1/3, d* = 1.5, realisation 1 (413 particles). Re100-Vfrac0.3-VFracLarge0.50-DiamRatio2.0-Array1: Re = 100, eps_p = 0.3, eps* = 1/2, d* = 2, realisation 1 (398 particles). Their particles are the same as the corresponding rows of data-vfrac-0.1.csv and data-vfrac-0.3.csv. Each folder contains the following files: Meshes/mesh_0.h5: the adaptively refined mesh (vertices and cells). Fields/fields_<n>.h5: the Eulerian fields, one value per cell: velocity vector; pressure; AMR level; other data relevant for the coupling between the IBM particles and the fluid. Particles/IBMparticles_<n>.h5: the Lagrangian particle data: coordinates; diameter; hydrodynamic force components (see "Hydrodynamic force convention" above); torque components; translational velocity components (zero; the particles are fixed); rotational velocity components (zero). results.xmf and results_IBM.xmf: XDMF wrappers for reading the fluid and particle data directly in ParaView. Only the converged state of each simulation is provided, due to storage limits. Acknowledgements This work was funded by the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation), Project-ID 422037413 - TRR 287.

提供机构:
Zenodo
创建时间:
2026-09-30
二维码
社区交流群
二维码
科研交流群
商业服务