Aggregate Packing Generator with Thick Fibers and STL File
Version 1.0.1 (16.7 KB) by
Ayad Al-Rumaithi
Aggregate packing generator with fibers used for the simulation of aggregate and fibers in composites. It also creates three STL files.
Aggregate packing generator with fibers used for the simulation of aggregate and fibers in composites. Then, three STL files are created for the generated aggregate, fibers, and both of aggregate and fibers. It can be used especially for meso-scale analysis of fiber-reinforced concrete. The algorithm takes into account fibers diameter for ovelap checking with particles and other fibers. Example files are provided for the simulation of aggregate in notched beam "Example_Beam.m" ,cylinder "Example_Cylinder.m", and cube "Example_Cube.m".
Important Notes:
1-This tool requires stlwrite function (tested with version 1.9.0.0). The user should download it and put the file in the same folder of this tool. The link for stlwrite function is:
2-Newer versions of matlab have builtin function stlwrite function introduced in R2018b. The user can use it instead of the function in mentioned above by replacing the following line in Aggregate2STL.m, Fiber2STL.m, and AggregateFiber2STL.m:
stlwrite(Filename,FF,VV);
with:
TR = triangulation(FF,VV); stlwrite(TR,Filename);
functions:
1-function Classes=Particles_Generation(x,y,z,Classes_diameters,Alpha,m,Particle_ratio)
Generates aggregates according to Fuller's curve.
2-function Plot_Sieve(Classes,x,y,z,Classes_diameters,Alpha,Particle_ratio)
Plots generated sieve curve.
3-function Ellipsoids=Particles_Distribution(Classes,x,y,z,er)
Generates aggregate with ellipsoids shapes
4-function Plot_Ellipsoids(Ellipsoids,x,y,z)
Plots ellipsoids
5-function Ellipses=Ellipsoids_to_Ellipses(Ellipsoids,dist,r_min)
Converts ellipsoids to ellipses. used for 2D analysis
6-function Plot_Ellipses(Ellipses,x,z)
Plots ellipses
7-function [Nodes_Fibers, Fibers]=Generate_Fiber(x,y,z,L,N,DFiber,Orientation,Ndiv,Ellipsoids)
Generate fibers
8-function Plot_Fiber(x,y,z,Nodes_Fibers,Fibers,DFiber)
Plots fibers
9-function Plot_Ellipsoids_Fiber(Ellipsoids,x,y,z,Nodes_Fibers,Fibers,DFiber)
Plot ellipsoids with fibers
10-Aggregate2STL(Ellipsoids,Filename_Agg)
Creates STL file for the aggregate
11-Fiber2STL(Nodes_Fibers,Fibers,DFiber,Filename_Fib)
Creates STL file for the fibers
12-AggregateFiber2STL(Ellipsoids,Nodes_Fibers,Fibers,DFiber,Filename_Agg_Fib)
Creates STL file for the aggregate and fibers
input:
x,y,z: as vectors defining the specimen dimension. x and z are vectors defining a polygon section in xz plane and y=[ymin ymax] is boundaries of the extrusion of the polygon
Classes_diameters: Particles classes diameters vector (descendingly)
Alpha: Fuller's curve exponent [0.45-0.5].
m: Particles shape distribution factor. m=1 for spheres and m>>1 for elongated ellipsoid shapes.
Particle_ratio: Particles ratio of the total volume including the smaller particles not simulated in the analysis. ranges [0.6-0.9] for portland cement concrete and about 0.9 for asphalt concrete.
er: Spacing factor between particles to avoid contact [0.05-0.1].
dist: Cutting distance for converting ellipsoids to ellipses.
r_min: Minimum ellipse radius involved when ellipsoids are converted to ellipses.
L: Length of fibers
N: Number of fibers
DFiber: Diameter of fibers
Orientation: can be either:-
-For aligned fibers Orientation=[l m n] where l,m, and n are the direction cosines of the fibers orientation in x,y, and z directions, respectively.
- For random fibers Orientation=[] (empty)
Ndiv: Number of fiber mesh divisions
Filename_Agg: name of the STL file with the extension for the aggregate.
Filename_Fib: name of the STL file with the extension for the fibers.
Filename_Agg_Fib: name of the STL file with the extension for both of the aggregate and fibers.
Output:
Classes: A variable containing generated particles and not yet packed into specimen
Ellipsoids: (N*9) array. each column represent:
(:,1): radius of ellipsoids at direction 1
(:,2): radius of ellipsoids at direction 2
(:,3): radius of ellipsoids at direction 3
(:,4): x-cooridante of centroid
(:,5): y-coordinate of centroid
(:,6): z-coordinate of centroid
(:,7): Inclination angle 1
(:,8): Inclination angle 2
(:,9): Inclination angle 3
Ellipses: (N*5) array. each column represent:
(:,1): radius of ellipses at direction 1
(:,2): radius of ellipses at direction 2
(:,3): x-cooridante of centroid
(:,4): y-coordinate of centroid
(:,5): Inclination angle
Nodes_Fibers: ((Ndiv+1)*N,3) matrix of fibers nodes coordinates.
Fibers: (N,2) matrix of the two nodes indices connecting each fiber segment.
references
[1] Unger, Jörg F., and Stefan Eckardt. "Multiscale modeling of concrete." Archives of Computational Methods in Engineering18.3 (2011): 341.
[2] Fang, Qin, and Jinhua Zhang. "Three-dimensional modelling of steel fiber reinforced concrete material under intense dynamic loading." Construction and Building Materials 44 (2013): 118-132.
[3] Islam, Mohammad, Gregory J. Tudryn, and Catalin R. Picu. "Microstructure modeling of random composites with cylindrical inclusions having high volume fraction and broad aspect ratio distribution." Computational Materials Science 125 (2016): 309-318.
Cite As
Ayad Al-Rumaithi (2024). Aggregate Packing Generator with Thick Fibers and STL File (https://www.mathworks.com/matlabcentral/fileexchange/155532-aggregate-packing-generator-with-thick-fibers-and-stl-file), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Created with
R2017b
Compatible with any release
Platform Compatibility
Windows macOS LinuxTags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.