File Exchange

image thumbnail

Aggregate Packing Generator with Fibers

version 1.0.3 (10.7 KB) by Ayad Al-Rumaithi
Aggregate packing generator with fibers used for the simulation of aggregate and fibers in composites


Updated 07 Jan 2021

View Version History

View License

Aggregate packing generator with fibers used for the simulation of aggregate and fibers in composites. It can be used especially for meso-scale analysis of fiber-reinforced concrete. 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
7-function [Nodes_Fibers, Fibers]=Generate_Fiber(x,y,z,L,N,Orientation,Ndiv,Ellipsoids);
Generate fibers
8-function Plot_Fiber(x,y,z,Nodes_Fibers,Fibers)
Plots fibers
9-function Plot_Ellipsoids_Fiber(Ellipsoids,x,y,z,Nodes_Fibers,Fibers)
Plot ellipsoids with fibers
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.
L: Length of fibers
N: Number 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

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.

[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.

Cite As

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

Comments and Ratings (7)

Ayad Al-Rumaithi

Please check my new submission that includes the diameter of fibers

Thank you very much for the program, it is very useful. I would like to be able to include the diameter of the fiber, how could it be done? Thank you

star LEE

yeah, the cohesive element can be added between aggregate and mortar

Ayad Al-Rumaithi

I might add ITZ and mesh subroutines in the future. But still I think if you manage to make seperate parts for aggregate and mortar, then you can add zero interface layer between those two.

star LEE

Thank you for your guidance, I will follow your way and try to mesh the model. I will also try some way like using Simpeware to mesh the model. If I can achieve this I will tell you. Besides, in this model you did not consider the ITZ generation, Is this your next research concentration?

Ayad Al-Rumaithi

There are two ways you can do that in Abaqus:

1-you can save the dimensions of particles in a file like excel, then use python language inside Abaqus to read from that file and generate shapes.

2-The other way is harder by doing 3d mesh using matlab using one of theses tools:

Then after generating that mesh you can create Abaqus input file from thatt mesh using my tool

star LEE

Sir, this is very useful for the modeling of concrete with aggregate and fibers, thank you for your contribution to this code. I am a student concentrate on the mesoscale modeling of concrete. However, I can only generate sphere aggregate and generate the meshes. How to generate the Abaqus mesh of your model? Could you please reply to me if you know how to generate the mesh of this model? I will cite your research result in my paper.

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

Community Treasure Hunt

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

Start Hunting!