File Exchange

image thumbnail

Aggregate Packing Generator

version 1.0.2 (8.24 KB) by Ayad Al-Rumaithi
Aggregate packing generator used for the simulation of aggregate in composites


Updated 01 Nov 2019

View Version History

View License

Aggregate packing generator used for the simulation of aggregate in composites. It can be used especially for meso-scale analysis of concrete and asphalt composites .Example files are provided for the simulation of aggregate in notched beam "Example_Beam.m" and cylinder "Example_Cylinder.m"

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

where the variables defined as:

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.

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

[1] Unger, Jörg F., and Stefan Eckardt. "Multiscale modeling of concrete." Archives of Computational Methods in Engineering18.3 (2011): 341.

Cite As

Ayad Al-Rumaithi (2021). Aggregate Packing Generator (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (8)

Ayad Al-Rumaithi

I sent you email

Vipan Kumar

Respected Sir, i find difficulty in modelling the ellipsoidal aggregates in concrete in MATLAB code. Can anyone help me in this regard.I will be very thankful for this help.
email Id-

yan li

Liu Haitao

Ayad Al-Rumaithi

I think this tool could help converting particles coordinates to CAD file:

Kaoutar Diouri

Dear Ayad,
I would like to convert the 3D Example_Cylinder into a CAD file that can be uploaded in Solidworks or ANSYS software. Is there any possibility?
Thank you very much.

Ayad Al-Rumaithi

Dear Mohamed,

You need to perform the following steps:
1-Apply segmentation to ellipses/ellipsoids to make them discrete shapes. I have that code for ellipses but not ellipsoids:
2-After that you should generate mesh using one of the available online matlab codes such as:
3-Finally convert generated mesh to input file for Abaqus using my available tool:

Mohamed Khalafalla

how to convert a model like that this model to STL-files/ abaqus files

MATLAB Release Compatibility
Created with R2017b
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!