You are on page 1of 287

NUMERICAL AND EXPERIMENTAL

INVESTIGATION OF DYNAMIC BELT


AND BULK MATERIAL
INTERACTIONS IN BELT CONVEYOR
SYSTEMS

A thesis submitted in fulfilment of the requirements

for the award of the degree of

Doctor of Philosophy in Mechanical Engineering

From

THE UNIVERSITY OF NEWCASTLE

By

Jiahe Shen

B.Eng. (Huaihai Institute of Technology, China)


M.Eng. (Nanjing University of Science and Tchnology, China)

Faculty of Engineering and Built Environment

November 2018
1
DECLARATION

I hereby certify that the work embodied in the thesis is my own work, conducted under
normal supervision.

The thesis contains no material which has been accepted, or is being examined, for
the award of any other degree or diploma in any university or other tertiary institution
and, to the best of my knowledge and belief, contains no material previously published
or written by another person, except where due reference has been made in the text. I
give consent to the final version of my thesis being made available worldwide when
deposited in the University’s Digital Repository, subject to the provisions of the
Copyright Act 1968 and any approved embargo3.

(Signed) ……………………………………………………………………….

Jiahe SHEN

(Signed) ……………………………………………………………………….

Craig WHEELER (Supervisor)

2
ACKNOWLEDGEMENTS

Upon the completion of this thesis, there are specific people and organisations I want
to thank for their help and support.

Firstly, I would like to thank my supervisors, Professor Craig Wheeler, Senior


Research Associate Dusan Ilic and Associate Professor Chris Wensrich. Their
enthusiasm, patience and guidance throughout this work were both encouraging and
inspiring. Thank you to Associate Professor Craig Wheeler for guiding this research
and providing invaluable insight into the field of bulk materials handling. Also, thank
you to Dusan Ilic for the academic discussions and grammar correction of this thesis.

I would also like to thank the staff of TUNRA Bulk Solids Research Associates and
The Centre for Bulk Solids and Particulate Technologies for their assistance. Particular
thanks are expressed to Paul Whitworth, Jed Browne, Bill Rose, Anthony Salmon,
Scott Brooker, Eric Brooker, Jayne O’shea and Mitch Gibbs. Appreciation is also
made to Mathias Dratt for sharing his work and widening up my research interests.

I gratefully acknowledge the Chinese Scholarship Council for providing the financial
support during my study. Acknowledgement is also given to the University of
Newcastle for providing an additional top-up scholarship.

Last, but certainly not least, to my parents, thank them for their encouragement, trust,
understanding and support when I was studying overseas.

3
ABSTRACT

Belt conveyors are used extensively in the field of bulk material transport and
handling. With the trend of faster and longer operating belt conveyor systems, it has
become increasingly important to investigate the dynamic belt deflection in order to
quantify and reduce the flexure resistance. Dynamic belt deflection refers to the
deformation of the belt when transporting a bulk material over successive idler sets
and is closely associated with the interaction of the belt and bulk material. The
complexity of the interaction increases as the belt deforms and deflects according to
the induced bulk material pressure distribution.

The work presented in this thesis analyses the dynamic belt deflection through the
application of the Finite Element Method (FEM) and Discrete Element Method
(DEM). While the DEM is advanced in describing the behaviour of each individual
particle, the FEM is suitable for analysing structural components subjected to external
forces. This study presents a coupled FEM-DEM model developed for predicting
dynamic belt deflection, in which the open source software Code_Aster (FEM) and
Liggghts (DEM) are applied and coupled through an interface programmed in Python.
Based on the developed coupled model, the dynamic belt deflection is investigated
over a range of belt speeds and tensions for a number of bulk materials.

To validate the coupled FEM-DEM model, a method based on the photogrammetry


technique is developed and used to experimentally measure the dynamic belt
deflection. A specially designed test rig that reverses the movement of the belt and
idlers by recirculating the idlers underneath a fixed belt is utilised. Furthermore, this
research work also presents the application of the coupled FEM-DEM model in
calculating the bulk material flexure resistance. The coupled FEM-DEM model
developed in conjunction with the underlying theory allows readers to predict the
dynamic belt deflection and flexure resistance, and therefore facilitates the design of
belt conveyors used in industry.

4
CONTENTS
Declaration ................................................................................................................... 2
Acknowledgements ...................................................................................................... 3
Abstract ........................................................................................................................ 4
Contents ....................................................................................................................... 5
Nomenclature ............................................................................................................... 8
CHAPTER 1: Introduction......................................................................................... 13
1.1 General background ......................................................................................... 13
1.2 Interaction between the belt and bulk material ................................................ 18
Bulk material stress states ......................................................................... 18
Theoretical analysis models ...................................................................... 20
1.3 Research Scope ................................................................................................ 28
Definition of the problem .......................................................................... 28
Research methodology .............................................................................. 31
1.4 Organisation of the thesis ................................................................................. 33
CHAPTER 2: Conveyor Belt FEM Modelling .......................................................... 36
2.1 Introduction ...................................................................................................... 36
2.2 Fundamentals of the FEM ................................................................................ 37
Mathematical model .................................................................................. 37
Rayleigh-Ritz method ............................................................................... 38
The principle of virtual displacements ...................................................... 40
Shape function ........................................................................................... 43
FEM solution............................................................................................. 46
Finite element solution errors.................................................................... 47
2.3 Analysis of conveyor belts ............................................................................... 48
Belt finite element selection ...................................................................... 48
Belt orthotropic properties ........................................................................ 52
Determinations of belt properties .............................................................. 54
Belt properties validation .......................................................................... 56
2.4 Development of belt FEM model ..................................................................... 58
Introduction of Code_Aster....................................................................... 59
Modelling procedures and implementations ............................................. 61
Main modelling challenges ....................................................................... 66
Simulation implementation ....................................................................... 73
2.5 Results and discussions .................................................................................... 74
Results of the 6mm-thickness belt ............................................................ 75
Results of the 12mm-thickness belt .......................................................... 80
2.6 Summary .......................................................................................................... 85
CHAPTER 3: Bulk Material DEM Modelling........................................................... 86
3.1 Introduction ...................................................................................................... 86
3.2 Overview of DEM analysis .............................................................................. 86
Basics of the DEM .................................................................................... 86
Liggghts DEM models .............................................................................. 89
DEM modelling parameters ...................................................................... 95
3.3 Bulk material property tests and DEM calibrations ......................................... 98
Characteristics of bulk material ................................................................ 99
Flow properties of bulk material ............................................................. 100
DEM calibration simulations .................................................................. 106
3.4 Bulk material DEM modelling ....................................................................... 110
DEM modelling procedures .................................................................... 111
5
Liggghts simulation implementation ...................................................... 113
3.5 Results and discussions .................................................................................. 117
Validation of the bulk material DEM model .......................................... 117
DEM modelling results ........................................................................... 120
3.6 Summary ........................................................................................................ 124
CHAPTER 4: Coupled FEM and DEM Modelling ................................................. 125
4.1 Introduction .................................................................................................... 125
4.2 FEM and DEM coupling ................................................................................ 126
Coupling strategies .................................................................................. 127
Selection of coupling strategy ................................................................. 130
4.3 One-way FEM-DEM modelling .................................................................... 131
DEM modelling....................................................................................... 132
FEM modelling ....................................................................................... 133
Disadvantages ......................................................................................... 134
4.4 Two-way FEM-DEM modelling .................................................................... 135
Coupling scheme ..................................................................................... 135
Coupling procedures ............................................................................... 136
Data exchange ......................................................................................... 139
Coupling continuation ............................................................................. 145
Coupling interface ................................................................................... 149
4.5 Results and discussion ................................................................................... 150
Coupling convergence ............................................................................. 150
Coupled simulation results ...................................................................... 152
Longitudinal and transverse belt deflection ............................................ 157
Bulk material load distribution on the belt .............................................. 159
Sensitivity analysis .................................................................................. 161
4.6 Summary ........................................................................................................ 163
CHAPTER 5: Experimental Investigation and Validation ...................................... 166
5.1 Introduction .................................................................................................... 166
5.2 Dynamic belt deflection measurement methodology ..................................... 167
Measurement facility............................................................................... 167
Measuring technique ............................................................................... 171
5.3 Dynamic belt deflection measurements ......................................................... 176
Camera calibration .................................................................................. 177
Test facility setup .................................................................................... 181
Experimental measurements ................................................................... 185
Dynamic belt profile modelling .............................................................. 186
Modelling data processing ...................................................................... 190
5.4 Results and discussions .................................................................................. 194
Influences of the operational conditions ................................................. 195
Longitudinal and transverse belt deflection ............................................ 197
5.5 Validation of the coupled FEM and DEM model .......................................... 199
Comparison of the longitudinal belt deflection ....................................... 199
Comparison of the transverse belt deflection .......................................... 201
5.6 Summary ........................................................................................................ 203
CHAPTER 6: Application of the Coupled FEM and DEM Model in Predicting
Flexure Resistance and Future Work ....................................................................... 205
6.1 Introduction .................................................................................................... 205
Belt flexure resistance ............................................................................. 206
Bulk material flexure resistance .............................................................. 207
6.2 Calculation of bulk material flexure resistance .............................................. 208
6
Spaans’ theoretical calculation model ..................................................... 208
Wheeler’s 3D FEM model ...................................................................... 210
6.3 Coupled FEM-DEM flexure resistance model ............................................... 213
Bulk flexure resistance modelling ........................................................... 214
Result discussion ..................................................................................... 216
Summary ................................................................................................. 218
6.4 Recommendation and future work ................................................................. 219
Optimization of the coupled FEM-DEM model ..................................... 219
Investigation of idler configurations and operational conditions ............ 220
Belt flexure resistance ............................................................................. 220
Optimal belt design ................................................................................. 221
Reference.................................................................................................................. 223
Appendices ............................................................................................................... 229
Appendix A – Belt troughability FEM validation................................................ 229
Appendix B – FEM belt deflection model ........................................................... 231
Appendix C – Gmsh codes for generating belt geometry .................................... 241
Appendix D – Code_Aster input file for invoking .............................................. 242
Appendix E – DEM calibration............................................................................ 243
Appendix F – DEM bulk material model ............................................................. 250
Appendix G – Calculations of bulk material cross-sectional area and density .... 253
Appendix H – Coupled FEM-DEM model for predicting dynamic belt deflection
.............................................................................................................................. 255
Appendix I – Extraction and conversion of belt deflection experimental data .... 273
Appendix J – The measured belt longitudinal and transverse belt deflection...... 278
Appendix K – Coupled FEM-DEM model for calculating bulk flexure resistance
.............................................................................................................................. 281

7
NOMENCLATURE
b usable width of conveyor belt (m)
B width of conveyor belt (m)
λ, ζ surcharge angle (°)
β side idler roll inclined angle (°)
ϑ angle of repose (°)
(Axcent)m bulk material cross-sectional areas on the central idler roll (m2)
(Axside)m bulk material cross-sectional areas on the central idler roll (m2)
Q throughput of bulk material (T/h)
α inclined angle of belt conveyor (°)
vb belt running speed (m/s)
ρb bulk density (kg/m3)
ρp particle density (kg/m3)
Lss contact length of bulk material supported by side belt (m)
Lcs contact length of bulk material above central belt (m)
Ztop top surface of conveyed bulk material (m)
Zw height of retaining wall (m)
Fmsa weight of bulk material for the active stress state (N)
Fmps weight of bulk material for the passive stress state (N)
Fwai resulting forces at the active failure plane (N)
Fwpi resulting forces at the passive failure plane (N)
Fwa active force exerted by retaining wall (N)
Fwp passive force exerted by retaining wall (N)
ψw wall inclination angle (°)
ϑa angle of the active failure plane (°)
ϑp angle of the passive failure plane (°)
ϕi bulk material internal friction angle (°)
ϕw wall friction angle (°)
Kwa pressure factor for the active stress state (-)
Kwp pressure factor for the passive stress state (-)
Fms weight of bulk material (N)
Fia resulting force from bulk material on central belt (N)
Fina normal component force of Fia (N)
Fisa tangential component force of Fia (N)
8
Fsa resulting force from inclined side belt (N)
Fsna normal component force of Fsa (N)
Fssa tangential component force of Fsa (N)
Kca active factor in Krause and Hettler model (-)
Kcp passive factor in Krause and Hettler model (-)
a, S0 length of idler spacing (m)
Fsn normal force on idler set (N)
(Pz_bsol)m,n bulk material pressure acting on an arbitrary node (m, n) (Pa)
m node number in belt longitudinal direction (-)
n node number in belt transverse direction (-)
∆xy width and length of finite element (m)
(acccal)m,n acceleration of node (m, n) (m/s2)
(Fcn)m vertical component of normal force on belt sides (N)
(Axcent)m central cross-sectional area of bulk material on node m (m2)
(Axcent)m,n central cross-sectional area of bulk material on node (m, n) (m2)
L2m linear differential operator (-)
r radius of curvature or particle (m)
fi linearly independent trial functions (-)
ai multipliers in Rayleigh-Ritz method (-)
Π functional in Rayleigh-Ritz method (-)
U virtual displacement (m)
ε strain of finite element (m/m)
τ finite element (Pa)
Υ bending of finite element (Nm/m)
σ stress of finite element (Pa)
E Young’s modulus (Pa)
H displacement interpolation matrix (-)
G in-plane shear modulus (Pa)
V Poisson’s ratio (-)
H(m) coefficients of displacement interpolation matrix (-)
K stiffness matrix of finite elements (-)
Ni shape functions (-)
M (Nm/m)
IXX area moment of inertia (m4)

9
kn normal elastic coefficient (-)
γn normal viscoelastic damping coefficient (-)
δn particle overlap (m)
νn particle relative velocity in normal direction (m/s)
kt tangential elastic coefficient (-)
γt tangential viscoelastic damping coefficient (-)
δt tangential particle overlap (m)
νt particle relative velocity in tangential direction (m/s)
E* equivalent Young’s modulus (Pa)
R* equivalent particle radius (m)
m* equivalent mass (kg)
Sn particle normal stiffness (N/m)
Mr particle rolling torque (N·m)
kr rolling stiffness (N/m)
Δθr incremental relative rotation between the two particles (°)
Mrm mobilisation torque (N·m)
Mrd viscous damping torque (N·m)
θr’ particle angular velocity (rad/s)
Cr damping coefficient (-)
εres restitution coefficient (-)
μp inter-particle friction (-)
μr rolling friction (-)
μw wall friction (-)
P camera projective matrix (-)
P+ pseudo-inverse of camera projective matrix (-)
fx horizontal camera focal length (m)
fy vertical camera focal length (m)
s skew factor (-)
ψb hysteresis loss factor (-)
Fbelt_flex belt flexure resistance (N)
Fm,flex (N)
Fm weight of bulk material (N)
Fb weight of belt (N)
EI belt flexural rigidity (Pa·m3)

10
T belt tension (N)
Øi internal friction angle of bulk material (°)
h average height of bulk material (m)
(w)m,n work required to displace bulk material on node (m, n) (J)
(Fz_bsol)m,n bulk material normal force on node (m, n) (N)
(Px_bsol)m,n bulk material horizontal pressure acting on node (m, n) (Pa)
Ftrans_flex_bsol bulk material (N)
Kla longitudinal active pressure factor (-)
Klp longitudinal passive pressure factor (-)
(η)m,n angular rotation on node (m, n) (°)
Flong_flex_bsol bulk material (N)

11
12
CHAPTER 1: INTRODUCTION

1.1 General background

From the 1920s, belt conveyors started to carry bulk solid materials across overland
distances and became significantly important due to the advantages of relatively low cost,
high reliability and less human involvement [1]. Continually increasing industrial
demands facilitated belt conveyors to break through their limits, achieving longer
transportation distance, higher carrying capacity and faster velocity. More efficient and
optimised belt conveyors were developed with the continued achievement in research
work and improvement of manufacture. Many researchers, such as Vierling [2], Grimmer
[3], Alles [4], Oehmen [5], Behrens [6], Schewartz [7], Hager [8], Funke [9], Roberts
[10], Nordell [11, 12] and Harrison [13, 14] undertook the research work and laid the
foundation of the theories of designing and operating belt conveyor systems. Moreover,
belt conveyor systems suppliers also witnessed the development of new types of
conveying system design, conveying component and structure optimisation and improved
belt manufacturing process [15]. As a consequence, the utilisation of belt conveyors has
been widely extended in the industrial and agricultural industries for bulk materials
transportation.

In practice, the configurations of belt conveyors may vary due to specific applications
and diverse surroundings. Belt conveyors may be classified as troughed conveyors, pipe
conveyors, pouch conveyors, rope conveyors, high angle conveyors and pocket-lift
conveyors [16]. This study focuses on traditional belt conveyors with a troughed belt
profile on the carry side and flat belt profile on the return side, as shown in Figure 1-1.

13
Figure 1-1 Traditional belt conveyors using in the mining industry

The burden profile of a typical troughed belt conveyor is shown in Figure 1-2. It refers to
the cross-section of a bulk material when loaded on a troughed belt.

Figure 1-2 Bulk material load profile on a belt conveyor [17]

The burden profile can be influenced by the behaviour of the bulk material, including the
particle size distribution, the repose angle and the internal friction. Meanwhile, the belt
deflection, idler troughing angle and belt speed can influence the bulk material load
profile. Roberts [10, 18] also revealed the fact that the bulk material density will increase
by 10% -15% from a loose state to a settled state as the cross-section of the bulk material

14
settles. Accompanied with this process, the fine particles are likely to settle down to the
bottom, while the larger particles tend to migrate to the top surface.

Nevertheless, a typical cross-sectional profile with a parabolic curve on the top will be
eventually achieved after a bulk material is conveyed for a certain distance [19, 20], as
shown in Figure 1-2. In order to simplify the calculation, the curvature of the belt at the
idler junction will be neglected.

For a full loading capacity, the usable width of the belt b is derived from the width of
conveyor belt B as

𝑏 = 0.9𝐵 − 0.05𝑚 𝑓𝑜𝑟 𝐵 ≤ 2𝑚


{ Equation 1-1
𝑏 = 0.9𝐵 − 0.25𝑚 𝑓𝑜𝑟 𝐵 > 2𝑚

Colijn [21] gives an empirical equation for surcharge angle λ as

𝜆 = 1.11𝜃 − (0.1𝛽 + 18°) Equation 1-2

Where β is the angle of the side idler roll to the horizontal, while ϑ is the angle of repose.
The bulk material surcharge angle that is the angle of the tangential line of top surface to
the horizontal is represented by λ.

The cross-sectional areas of the bulk material acting on the centre and sides are given by
(Axcent)m and (Axside)m respectively. Axactual stands for the sum of the actual cross-sectional
area of the bulk material. In the case of a partially loaded belt, the actual cross-section
can be calculated by the total throughput Q as

15
𝑄𝑐𝑜𝑠𝛼
𝐴𝑥𝑎𝑐𝑡𝑢𝑎𝑙 = Equation 1-3
𝑣𝑏 𝜌

Where, α is the inclined angle of the belt conveyor system; vb is the belt running speed; ρ
is the density of the bulk material.

Lss stands for the contact length of the bulk material supported by the belt along the side
idlers. It can be expressed as

2𝐿𝑐𝑠 𝑡𝑎𝑛𝜆𝑐𝑜𝑠𝛽 2
(𝐿𝑐𝑠 𝑠𝑖𝑛𝛽+ )
2𝐿𝑐𝑠 𝑡𝑎𝑛𝜆𝑐𝑜𝑠𝛽 3
−𝐿𝑐𝑠 𝑠𝑖𝑛𝛽− +√ 𝐿2
3 2𝑡𝑎𝑛𝜆𝑐𝑜𝑠2𝛽 𝑐𝑠 𝑡𝑎𝑛𝜆
−4( +𝑠𝑖𝑛𝛽𝑐𝑜𝑠𝛽)( )−𝐴𝑥𝑎𝑐𝑡𝑢𝑎𝑙
3 6
𝐿𝑠𝑠 = 4𝑡𝑎𝑛𝜆𝑐𝑜𝑠2 𝛽
Equation 1-4
+2𝑠𝑖𝑛𝛽𝑐𝑜𝑠𝛽
3

Where, Lcs is the contact length of the bulk material above the centre idler. It is often
slightly less than length of central idler attributable to the belt thickness and troughed
configuration, It can be derived by combining Equation 1-1 and Equation 1-4. Hence, the
parabolic top surface of the conveyed bulk material Ztop is expressed as

(𝐿𝑐𝑠 +2𝐿𝑠𝑠 𝑐𝑜𝑠𝛽)𝑡𝑎𝑛𝜆 𝑦 2 𝑡𝑎𝑛𝜆 𝐿𝑐𝑠


𝑍𝑡𝑜𝑝 = 𝐿𝑠𝑠 𝑠𝑖𝑛𝛽 + − , |𝑦| ≤ + 𝐿𝑠𝑠 𝑐𝑜𝑠𝛽 Equation 1-5
4 𝐿𝑐𝑠 +2𝐿𝑠𝑠 𝑐𝑜𝑠𝛽 2

As documented by Roberts [1] and Wheeler [17, 22, 23], it becomes significant to
minimise the motion resistances to achieve lower energy consumption and more
economical solutions. ISO 5048 [20] and DIN22101 [24] assume that the motion
resistance of a troughed belt conveyor can be divided into five groups: the main
resistances, secondary resistances, special main resistances, special secondary resistances
and slope resistance. Compared to other resistances, the main resistances that inevitably
occur along the length of conveyor make the greatest contribution. The indentation rolling
resistance, idler bearing resistance and belt and bulk solid flexure resistance account for
the main resistance. The indentation rolling resistance is considered as the asymmetric
resistance resulting from the cyclic indentations of the belt bottom cover when the belt
16
travels over successive idlers resulting from the viscoelastic properties of the cover
material. The idler bearing resistance refers to the forces due to the friction of the bearing
and seals, along with the viscous drag of the lubricant. The flexure resistance occurs due
to the cyclic longitudinal and transverse belt flexure between each idler set. The belt
flexure can be also referred to as the belt deflection results from the self-weight of the
belt and the pressure from the carried bulk material. Figure 1-3 indicates the average
proportion of each main resistance component for a 1km long belt conveyor [25].

Figure 1-3 Main resistance components from Hager and Hintz [25]

As shown in Figure 1-3, the flexure resistance accounts for approximately 23% of the
total energy loss and is the second greatest loss in the belt conveyor system. Through
recent research work [26], the percentage of the bulk solid flexure resistance may
contribute as much as 50% of total the energy consumption for long distance and high
speed belt conveyors [27]. From an energy efficiency point of view, it is of great
importance to investigate and therefore minimize the flexure resistance in the stage of
designing belt conveyor systems.

In general, the flexure resistance consists of two components [25], namely the belt flexure
resistance and bulk material flexure resistance. The belt flexure resistance is induced by
the hysteresis losses and the bending of the belt. The bulk material flexure resistance
results from the internal friction of the bulk material and the friction at the belt and bulk
material interface. Wheeler [23] classified the bulk material flexure resistance into the

17
longitudinal and transverse components. While the longitudinal bulk material flexure
resistance is derived from the difference between the work done in displacing the bulk
material over the centre idler from the active state to the passive state, the transverse
flexure resistance can be approximately derived from the difference between the work
done in deflecting the bulk material over the side idlers during the active and passive
stress states.

Unlike the indentation rolling resistance and bearing resistance, it is difficult to


individually and directly isolate and investigate the flexure resistance due to the
complicated interaction of a belt and bulk material under dynamic conditions. The
interaction is a mutual process that strongly depends on the interrelation of the belt and
bulk material. The belt flexure as well as the bulk material flexure interdependently
influence each other. The belt deflection determines the load profile of the bulk material
and the related pressure distribution. On the other hand, the variation of the bulk material
pressure distribution leads to a change of the belt deflection accordingly. Therefore, a
comprehensive understanding of the interaction between the belt conveyors individual
components and bulk material not only enables more accurate estimation during the
design stage, but also results in a more efficient system.

1.2 Interaction between the belt and bulk material

Bulk material stress states

As a bulk material conveyed by a belt passes through consecutive idler sets, the belt
deflection results in the bulk material undergoing cyclic dilation and compression. The
bulk material interacts internally and forms the active and passive stress states that are
influenced, to a varying degree, by the behaviour of the bulk material and the deflected
belt profile. The active to passive stress states are transferred at the belt maximum sag
point that is typically around 0.5~0.6 the idler spacing [22, 23].

18
The active and passive stress states of a bulk material are induced not only over the belt
central section but also over the belt side sections. The belt sides open with the belt
moving from one idler set to the middle of the idler pitch, then close when approaching
the next troughed idler. The motion of the central belt is analogous to the belt sides but
with a reversed opening and closing processes. Accordingly, the conveyed bulk material
is divided into two parts, as shown in Figure 1-4 and Figure 1-5. The first part is the
volume of the material carried by the central belt and the other is the remaining material
acting on the belt sides. These two parts are separated by failure planes where slip occurs
inside the material.

In particular, for the bulk material acting on the sides of the belt, as shown in Figure 1-4,
from the first idler set to the transition point, the belt opens forming an active stress state,
and from the transition point to the next idler set, the belt is forced to conform to the
troughed profile, which generates a compressive stress inside the bulk material. This is
considered as a passive stress state.

Figure 1-4 Transverse active and passive stress states of a loaded conveyor belt [17]

Figure 1-5 details the states for the bulk material over the centre belt. A passive state is
induced from the first idler to the transition point when the bulk material is compressed
due to the longitudinal belt sag, whereas an active state is formed from the transition point

19
to the second idler set. Therefore, the stress states for the bulk material on the belt sides
and on the central belt are theoretically reversed.

Figure 1-5 Longitudinal active and passive stress states for a loaded conveyor belt [17]

It is worth noting that the failure planes for the active and passive stress states are at
different angles to the horizontal belt, resulting in the amount of the bulk material acting
on the central belt decreasing from the passive stress state to the active stress state. The
sharp change of the failure planes at the transition zone arises from the simplification of
the interaction inside the bulk material itself, which is considered to be an acceptable
simplification.

Theoretical analysis models

In order to describe the stress states of a bulk material and the associated pressure
distribution during the belt cyclic opening and closing, several theoretical models have
been developed, including those by Mulani [28], Krause and Hettler [29] and Wheeler
[17] based upon the Coulomb earth pressure theory. These models are widely accepted
and adopted in the field of bulk material handling [30-33].

The earth pressure theory developed by Coulomb and Rankine [30-33] was to analyse the
loads of a soil mass on a retaining wall. The supporting mechanism is analogous to a
20
troughed belt carrying a bulk material where compression and dilation of the bulk material
resulting from the closing and opening of the belt sides may induce the active stress state
and passive stress state of the bulk material when shear failure occurs inside the bulk
material. Mulani adapted the Coulomb theory to calculate the normal forces on the idler
rolls. However, there are two restrictions associated with the Rankine’s method.

• The applied pressure is acting along the direction perpendicular to the vertical
moving boundaries, which means the pressure direction is horizontal.
• The bulk material surcharge angle above the idler junction is assumed to be
extremely small, in the order of zero, which is impractical in reality.

The traditional Coulomb earth pressure theory is derived specifically for a mass of bulk
material acting on an infinitely vertical wall, which is not applicable for the cases of belt
conveyors transporting material. The troughed belt profile and the bulk material
surcharged angle are the main issues encountered.

1.2.2.1 Modified Coulomb wedge theory


The Coulomb wedge theory was modified by Muller to analyse a non-cohesive bulk
material with a certain surcharge angle acting on inclined walls [28]. The modified
Coulomb wedge theory is illustrated in Figure 1-6. The wedge section area of the bulk
material is defined by the inclined wall and the potential failure plane. It sustains the
forces from the supported wall and the weight of the bulk material. The potential failure
plane of the bulk material varies and is determined by the stress states and internal friction
of the bulk material.

In Figure 1-6, Zw is the height of the retaining wall. Fmsa and Fmps are the weight of the
bulk material for the active stress state and passive stress state respectively. Fwai and Fwpi
are the resulting forces at the active and passive failure plane. Fwa and Fwp are the active
and passive forces exerted by the retaining wall; their force components in the normal
and shear directions are present as Fwna, Fwsa, Fwnp and Fwsp. Figure 1-6 also shows the
bulk material surcharged angle ζ, the wall inclination angle ψ, the angles of the active and

21
passive failure planes ϑa and ϑp, the bulk material internal friction angle ϕi and the wall
friction angle ϕw.

(a) (b)
Figure 1-6 Coulomb wedge theory: (a) active failure case; (b) passive failure case [28]

For the active stress state, the wedge of bulk material is pushing the supported wall away
and slipping relative to the remaining mass, making the friction forces upward at the
contact surface. The maximum resulting force acting on the supported wall can be
calculated using equilibrium analysis and is defined as the minimum force to prevent the
bulk material from slipping. Similarly, for the passive stress state, the maximum force
that the supported wall can exert on the wedge of the bulk material before failure occurs
can be computed. Like the Rankine method, the resulting forces Fw during both the active
and passive failure is assumed to act at 1/3 of the wall height from the bottom. Hence, it
is given by

1 2
𝐹𝑤 = 𝜌𝑔𝑍𝑤 𝐾𝑤 Equation 1-6
2

Where Kw is the pressure factor. The factor for the active stress state Kwa is given by

2
sin(𝜓+𝜙𝑖 )⁄𝑠𝑖𝑛𝜓
𝐾𝑤𝑎 = [ sin(𝜙𝑖 +𝜙𝑤 )sin(𝜙𝑖 −𝜉)
] Equation 1-7
√sin(𝜓−𝜙𝑤 )+√ sin(𝜓+𝜉)

22
For the passive stress state, it can be expressed as

2
sin(𝜓−𝜙𝑖 )⁄𝑠𝑖𝑛𝜓
𝐾𝑤𝑝 = [ sin(𝜙𝑖 +𝜙𝑤 )sin(𝜙𝑖 +𝜉)
] Equation 1-8
√sin(𝜓+𝜙𝑤 )−√ sin(𝜓+𝜉)

Therefore, the normal component of the resulting force acting on the support wall for
active and passive failure can be derived as following.

1
2
𝐹𝑤𝑛𝑎 = 𝜌𝑔𝑍𝑤 𝐾𝑤𝑎 𝑐𝑜𝑠𝜙𝑤 Equation 1-9
2

1
2
𝐹𝑤𝑛𝑝 = 𝜌𝑔𝑍𝑤 𝐾𝑤𝑝 𝑐𝑜𝑠𝜙𝑤 Equation 1-10
2

Krause and Hettler [27] adopted the modified Coulomb wedge theory to analyse the
normal load of a bulk material on idler rolls. The parabolic surcharge profile of the bulk
material is simplified using a straight line. The active and passive stress states transition
is assumed to occur at half the distance of the idler spacing. The forces acting on the belt
side sections are indicated in Figure 1-7. The variables used for the active stress state in
Figure 1-7 (a), are explained as following:

• Fms the weight of bulk material


• Fia the resulting force from the bulk material on the central belt
• Fina the normal component force of Fia
• Fisa the tangential component force of Fia
• Fsa the resulting force from the inclined side belt
• Fsna the normal component force of Fsa
• Fssa the tangential component force of Fsa
• λ the surcharge angle of bulk material
• ϕi the internal friction angle of bulk material
• ϕw the friction angle of belt and bulk material
• ϑa the angle of active failure plane to the horizontal

23
Similarly, the variables in Figure 1-7 (b) for passive stress state have the corresponding
meanings with the subscript letter “p” representing the passive stress state.

Figure 1-7 Forces acting on the side belt due to a bulk material: (a) the active stress state; (b) the passive
stress state [28]

The active factor Kca and the passive factor Kcp in Krause and Hettler model are derived
by substituting the β for ψ and λ for ζ in Equation 1-7 and Equation 1-8.

2
sin(𝛽+𝜙𝑖 )⁄𝑠𝑖𝑛𝛽
𝐾𝑐𝑎 = [ sin(𝜙𝑖 +𝜙𝑤 )sin(𝜙𝑖 −𝜆)
] Equation 1-11
√sin(𝛽−𝜙𝑤 )+√ sin(𝛽+𝜆)

24
2
sin(𝛽−𝜙𝑖 )⁄𝑠𝑖𝑛𝛽
𝐾𝑐𝑝 = [ sin(𝜙𝑖 +𝜙𝑤 )sin(𝜙𝑖 +𝜆)
] Equation 1-12
√sin(𝛽+𝜙𝑤 )−√ sin(𝛽+𝜆)

The normal force exerted by the bulk material between the adjacent idler sets can be
expressed as

1 (𝐾𝑐𝑎 +𝐾𝑐𝑝 )
𝐹𝑠𝑛 = 𝜌𝑔𝐿2𝑠𝑠 𝑐𝑜𝑠𝜙𝑤 𝑆0 Equation 1-13
2 2

Where S0 is the length of the idler spacing. Also, the height of the supported wall in the
Coulomb wedge theory is referred to as the length of the bulk material and belt contact
area at the sides.

As illustrated by Figure 1-6, the orientations of the forces are determined by the bulk
material internal friction angle, the wall friction angle and the active or passive failure
plane angles. They can be expressed as

√𝜆𝑎 sin(𝛽−𝜙𝑤 )
( ) 𝑠𝑖𝑛𝜆 − 𝑠𝑖𝑛𝜙𝑖
−1 sin(𝛽+𝜆)
𝜗𝑎 = 𝑡𝑎𝑛 [ ⁄ √𝜆 sin(𝛽−𝜙 ) ] Equation 1-14
( 𝑎 𝑤
) 𝑐𝑜𝑠𝜆 − 𝑐𝑜𝑠𝜙𝑖
sin(𝛽+𝜆)

√𝜆𝑝 sin(𝛽+𝜙𝑤 )
( ) 𝑠𝑖𝑛𝜆 + 𝑠𝑖𝑛𝜙𝑖
sin(𝛽+𝜆)
𝜗𝑝 = 𝑡𝑎𝑛−1 ⁄ Equation 1-15
√𝜆𝑝 sin(𝛽+𝜙𝑤 )
( ) 𝑐𝑜𝑠𝜆 − 𝑐𝑜𝑠𝜙𝑖
sin(𝛽+𝜆)
[ ]

However, for a belt conveyor with a large wall friction angle, the effect of the wall friction
may influence the shear failure, leading the failure plane representing a curved shape.
Therefore, the Krause and Hettler theory normally underestimates the total force for the
active failure but overestimates the force during the passive failure.

25
1.2.2.2 Wheeler’s bulk material pressure distributions model
In Krause and Hettler’s model any arbitrary point on the belt is assumed to have the same
deflection magnitude during the belt opening and closing. This means the model
simplifies the bulk material movement in a uniform mode and fails to produce the
pressure distributions covering the entire belt surface. In reality, the deflection may be
different with positions on the belt, resulting in the variation of the bulk material pressure.
Due to this, Wheeler [17] developed a Finite Difference Model (FDM) to determine the
bulk material pressure (Pz_bsol)m,n acting on an arbitrary node (m, n), as shown in Figure
1-8, where m is the node number in the longitudinal direction, and n is the node number
in the transverse direction.

Figure 1-8 Pressure at Node (m, n) on the side belt due to bulk material [17]

As shown in Figure 1-8, the amount of the bulk material sitting on a square belt finite
element over the side idler is shown by the shaded region. The width and length of the
region are both ∆xy. According to Wheeler [17], the bulk material pressure acting on node
(m, n) along the side idler roll (njunct < n ≤ nmax) is calculated by

𝜌(𝑎𝑐𝑐𝑐𝑎𝑙 )𝑚,𝑛[sin β(ℎ)𝑛 (𝑛−𝑛𝑗𝑢𝑛𝑐𝑡)]2 𝐾𝑐𝑜𝑠𝜙𝑤


(𝑃𝑧_𝑏𝑠𝑜𝑙 ) = Equation 1-16
𝑚,𝑛 2𝛥𝑥𝑦

26
Where, (acccal)m,n is the acceleration of node (m, n), which can be calculated in the belt
finite difference model using an iterative procedure; K is the modified active factor or
passive factor; (h)n can be expressed as

𝐿𝑐𝑠 (𝑍𝑡𝑜𝑝 ) −(𝑍𝑡𝑜𝑝 )


𝑛 𝑛+1
{(𝑍𝑡𝑜𝑝 )𝑛 + [(𝑦)𝑛 + ][ (𝑦)𝑛 −(𝑦)𝑛+1
]}
2
(ℎ)𝑛 = ⁄ (𝑦)𝑛 −(𝑦)𝑛+1
Equation 1-17
{1 − 𝑡𝑎𝑛𝛽 [ ]}
(𝑍𝑡𝑜𝑝 ) −(𝑍𝑡𝑜𝑝 )
𝑛 𝑛+1

Where (y)n is given by

𝐿𝑐𝑠 𝑡𝑎𝑛𝜗 (𝑛−𝑛𝑗𝑢𝑛𝑐𝑡)∆𝑥𝑦


𝑡𝑎𝑛𝜆 +
2 𝑐𝑜𝑠𝜗
𝑡𝑎𝑛𝜗−√𝑡𝑎𝑛2 𝜗−4( )[ (𝐿 +2𝐿𝑠𝑠 𝑐𝑜𝑠𝛽)𝑡𝑎𝑛𝜆
]
𝐿𝑐𝑠 +2𝐿𝑠𝑠 𝑐𝑜𝑠𝛽
−𝐿𝑠𝑠 𝑠𝑖𝑛𝛽− 𝑐𝑠
4
(𝑦)𝑛 = { }
Equation 1-18
2𝑡𝑎𝑛𝜆⁄(𝐿𝑐𝑠 +2𝐿𝑠𝑠 𝑐𝑜𝑠𝛽)

In terms of the bulk material acting on the centre belt, the normal force is calculated by
subtracting the vertical component of the normal force on the belt sides from the total
load force, which is given by

(𝐹𝑐𝑛 )𝑚 = ∆𝑥𝑦𝑔𝑞𝑚 𝑐𝑜𝑠𝛼 − 2𝑐𝑜𝑠𝛽(𝐹𝑠𝑛 )𝑚 Equation 1-19

Therefore, the pressure acting on each node n of the centre belt is calculated from the
ratio of the cross-sectional areas

(𝐴𝑥𝑐𝑒𝑛𝑡 )𝑚,𝑛
(𝑃𝑧_𝑏𝑠𝑜𝑙 ) = (𝐹𝑐𝑛 )𝑚 [ ]⁄(∆𝑥𝑦)2 Equation 1-20
𝑚,𝑛 (𝐴𝑥𝑐𝑒𝑛𝑡 )𝑚

Where (Axcent)m is the total cross-sectional area of the bulk material. (Axcent)m,n is the cross-
sectional area of the bulk material above the central belt on node n.

27
𝐿𝑐𝑠 𝑡𝑎𝑛𝜆(𝐿𝑐𝑠 +2𝐿𝑠𝑠 𝑐𝑜𝑠𝛽) 𝐿3𝑐𝑠 𝑡𝑎𝑛𝜆
(𝐴𝑥𝑐𝑒𝑛𝑡 )𝑚 = 𝐿𝑐𝑠 𝐿𝑠𝑠 𝑠𝑖𝑛𝛽 + − Equation 1-21
4 12(𝐿𝑐𝑠 +2𝐿𝑠𝑠 𝑐𝑜𝑠𝛽)

𝑛∆𝑥𝑦
𝑦𝑡𝑎𝑛𝜆(𝐿𝑐𝑠 +2𝐿𝑠𝑠 𝑐𝑜𝑠𝛽) 𝑦 3 𝑡𝑎𝑛𝜆
(𝐴𝑥𝑐𝑒𝑛𝑡 )𝑚,𝑛 = [𝑦𝐿𝑠𝑠 𝑠𝑖𝑛𝛽 + − ] Equation 1-22
4 3(𝐿𝑐𝑠 +2𝐿𝑠𝑠 𝑐𝑜𝑠𝛽) (𝑛−1)∆𝑥𝑦

The limited belt deflection may lead to the passive stress state not sufficiently induced
since the Coulomb earth pressure theory is used as an upper bound theory. To overcome
this, a coefficient of the percentage of the stress state activation is used to modify the
stress state factor in order to approximate the forces. The passive pressure factor used in
Wheeler’s model is reduced to 85% of the magnitude used by Krause and Hettler, which
has a good correlation with the factor used by Mulani [28]. Therefore, the pressure
distributing on a belt over one idler spacing can be calculated based on Wheeler’s model.

In addition, Liu [34] investigated the internal friction and behaviour of a bulk material
using a stress discontinuity model that provided a lower bound solution for the resulting
load. This approach was combined with Krause and Hettler’s model to predict the stress
profile of a loaded belt, which was validated by experimental measurements [33]. All this
theoretical research work contributes to the significant progress of analysing the
behaviour and interaction of the belt and bulk material for belt conveyor systems and is
valuable reference for industrial applications.

1.3 Research Scope

Definition of the problem

The investigation of the belt flexure, especially for dynamic conditions is of great
importance. In order to minimize the energy consumption caused by the flexure
resistance, the interaction of the belt and bulk material should be fully understood. As
stated above, the interaction of the belt and bulk material is closely associated with the
flexure, or the deformation of the belt during operations. The profile of a bulk material
carried on a belt, the induction of active and passive stress states and the resultant pressure
distribution are primarily determined by the shape of the belt that deflects over idler sets.
Furthermore, belt deflection also influences the wear and service life of the belt conveyor
28
systems. The sag ratio, that is related to the belt maximum deflection divided by the idler
spacing, is used as a main consideration in the belt conveyor design stage. Therefore,
accurate calculation of the dynamic belt deflection not only enables the flexure resistance
to be quantified, but also is significant in improving the belt working conditions and
extending the conveyor service life.

Despite belt conveyors operating successfully for many years, research work regarding
calculating belt deflection is limited. By using the Finite Difference Method (FDM)
Wheeler [17] developed a three-dimensional deflection model to calculate the overall belt
profile over one idler pitch. The pressure distribution of the bulk material was obtained
using the model mentioned in section 1.2.2.2 where the bulk material is divided into a
series of subsections that are analysed using the modified Coulomb wedge theory. Some
detailed information of the bulk material may be ignored as each individual material
particle is not being analysed.

Couch [23, 35] developed a coupled FEM and FDM method to predict the belt deflection,
in which the bulk material is technically considered as a continuum media and analysed
by the FEM and the behaviour of the belt is investigated by the FDM. High accuracy of
the belt deflection can be acquired unless fracture inside the bulk material occurs. The
facture indicated the failure of the bulk material that no longer can be considered as
continuum media.

To overcome these drawbacks, a more advanced way of calculating belt deflection is to


simulate the bulk material using the DEM and couple it with the FEM. Pioneering work
was undertaken by Dratt [36-38] who developed a coupled FEM and DEM model using
ANSYS and PFC3D respectively to calculate the dynamic belt deflection. The conveyor
belt deformation was simulated by ANSYS while the bulk material was modelled in
PFC3D. For the force data transformation, an algorithm was developed to assign the nodal
forces of finite elements in the FEM according to the total element forces obtained from
the DEM. It has been proven that the coupled model had a better accuracy than the
theoretical approach in calculating the belt deformation. However, there is no platform
29
available to couple the FEM and DEM programs and transfer the simulation data
alternately between each one. Therefore, the coupled model is complicated and may be
difficult to adapt to other applications.

A better solution for this disadvantage is using open source software. Dratt [38] took a
step forward by using open source DEM software (Liggghts) to replace PFC3D software
package and developed the codes to simulate a sheet metal subjected to a bulk material
flow. However, the FEM simulation was still based on ANSYS and the developed codes
have been adopted for complex problems, like belt conveyor systems. Therefore, it is
necessary to develop a coupled model for the prdiection of belt deflection using both open
source DEM and FEM that are easy to access (free) and flexible to be adapted for
modelling other applications.

In terms of the measurement of belt deflection, the maximum distance that the belt sags
along the centreline of the belt is typically used. The sag ratio, defined by the maximum
belt sag divided by the idler pitch spacing, is used to describe the degree of belt deflection
[30]. Details regarding the transverse belt deflection are ignored, producing limited
information to investigate requirements of minimizing the energy consumption in modern
belt conveyor design.

Dratt and Katterfeld [36] physically measured the static belt profile using a series of pins
that were installed underneath the belt and able to move under forces. The displacements
of the pins that referred to the deflection of the corresponding positions on the belt were
recorded by the connected transducers. The overall belt profile can be represented by
collectively plotting the displacements of the pins. More recently, Ilic [39] used a laser
scanner to investigate a 3D profile of a stationary belt over one idler spacing, with
different loading conditions and belt sag ratios. This was verified using DEM analysis
and compared to the theories of Krause and Hettler [29] and Spaans [40]. However, the
principle of laser scanners restricted this measurement approach only suitable for the belt
flexure under static condition. Limited research has been undertaken into the

30
measurement of dynamic belt deflection due to the lack of suitable measuring techniques
and test facilities. Therefore, it is necessary to design an experimental approach to
measure the belt deflection under dynamic conditions.

Research methodology

The design of belt conveyor systems has historically depended on existing guidelines,
standards and theoretical analysis and models with the prerequisites of satisfying
approximation assumptions. The progress in analytic theories, solving algorithms and
computer processing power, offers the possibility to solve problems related to belt
conveyor systems in a more advanced way. The continuous research on belt conveyors
with comprehensive computer modelling enables the modern belt conveyors to span long
distances with high speeds and move large quantities of bulk material with high
efficiency.

Among all the numerical simulation approaches, the FEM and DEM play an important
role in the diversity of science and engineering disciplines. In terms of the application of
the FEM, Munzenberger and Wheeler [41] have succeeded in modelling the asymmetric
force distributions for the contact area of a roller and belt and therefore predict the
indentation rolling resistance for the belt system. Dratt [36-38], Choon [42],
Munzenberger [41] and Shen [43] also adopted the FEM to model the belt as an
orthotropic plate and analyse the resultant flexure resistance. By dividing a belt system
into a series of finite elements, Lodewijks [44] described the dynamic process of starting
and stopping the conveyor. Moreover, the FEM was widely employed not only to improve
the performance of the conveyor components, such as the idlers, pulleys and belts, but
also to investigate failure mechanisms, fatigue and slip.

Mustoe and Bin [45] developed a DEM model for calculating the energy loss due to the
belt sag where the deformed belt geometry used in the simulation was derived from the
mathematic calculation provided by Spaans [40].However, high accuracy cannot be
achieved as Spaans predicted the sag for the belt sides and central belt with the same

31
quantity. Furthermore, Ilic [46] applied the DEM to calculate the bulk material normal
force distributions on a predetermined belt shape. Both the belt profiles obtained from
Wheeler’s finite deferential model and a three-dimensional laser scan were used. As
documented by Mustoe and Ilic, the results showed that the pressure distributions of a
bulk material have a very strong dependency on the deformed belt profile.

Simulations involving only one single aspect of either the FEM or the DEM cannot
produce satisfactory results as each of them ignores the reaction from the other. The
shortcomings can be overcome by coupling both simulations. Thus, the effects of the belt
and the bulk material interacting with each other can be considered. Work done by Dratt
[38], Nakashima [47], Michael [48] and many other researchers highlight the advantages
in coupling the FEM and DEM for analysing not only the belt flexure but also various
other aspects of belt conveyor systems.

In terms of the belt flexure measurement, the existing approaches, with no exception,
were focused on the static condition because of the limitation of dynamic measurement
techniques, including the laser scanning technique. However, energy loss associated with
the flexure resistance is predominantly based on dynamic conditions, which demands for
measuring the belt deflection when the belt is running. A measuring method is required
to experimentally investigate belt flexure under dynamic conditions including variable
belt speeds and tensions.

This thesis therefore aims to develop a coupled FEM and DEM model and provide an
experimental measuring method for investigating belt deflection under dynamic
conditions and investigate the influence of key design parameters on the flexure
resistance. More specifically, the research aims can be summarised as:

1. Develop a finite element model for analysing the deflection of conveyor belts
carrying bulk materials using open source FEM software – Code_Aster.

2. Create a discrete element model for calculating the pressure distributions of a bulk
material over the belt using open source DEM software – Liggghts.
32
3. Integrate the developed FEM and DEM models into a coupled model which is
capable of describing the interaction between a belt and bulk material and
prediction the dynamic belt deflection.

4. Upgrade the existing test rig to be suitable for the measurements of belt flexure
under dynamic conditions.

5. Conduct the experiments for measuring dynamic belt flexure with different belts
(6mm and 12mm thickness) and different types of bulk materials, including coal
and iron ore.

6. Discuss on the experiment results, analyse the trend of the belt flexure and
conclude the impact factors that influence the dynamic belt flexure

7. Validate the coupled FEM and DEM model by comparing the simulation results
to the measurements.

8. Investigate the flexure resistance for a range of operational conditions using the
developed coupled FEM and DEM model.

1.4 Organisation of the thesis

Chapter 1 briefly gives the background of belt conveyor technology, with the emphasis
on the importance of dynamic belt and bulk material flexure and associated resistance in
belt conveyor systems. As a determining factor that contributes to the belt and bulk
material flexure, the interaction of the belt and bulk material is investigated. The existing
theoretical research work in analysing the belt and bulk material interaction, including
the bulk material burden profile on the belt, the dynamic bulk material stress states and
the pressure distributions on the belt are reviewed. Due to the lack of research in
calculating the dynamic belt deflection, the aims of the study are proposed and outlined.
Additionally, research methods used are briefly introduced.

Chapter 2 focuses on the belt flexure modelling for two types of belts using the FEM.
Fundamental theories and underlying concepts related to the FEM modelling are

33
reviewed. In order to set up parameters in the FEM simulations, the belt properties, such
as the longitudinal and transverse Young’s moduli, Poisson’s ratios and density, are
determined experimentally or theoretically. The development of a belt flexure FEM
model based on the open source software Code_Aster is presented with the modelling
procedures and challenges being illustrated in detail. Simulation results are briefly
presented and discussed.

Chapter 3 overviews the contact models, in conjunction with the key parameters used in
the DEM modelling. The coal and iron ore materials are investigated, in which the
material properties including the particle size distribution, internal friction, rolling friction
and wall friction are obtained. Accordingly, the DEM calibrations are conducted by
replicating two standardized tests, namely the angle of repose test and slump plane test in
the DEM simulations to determine the relevant particle parameters. Based on the
calibrated parameters, a DEM bulk material model is developed using the Liggghts
program to analyse the behaviour of the material and the corresponding pressure
distributed on a belt over one idler spacing. Therefore, the developed DEM model is used
to provide the bulk material forces acting for the FEM belt model in the subsequent
coupling process. Moreover, the DEM simulation results are also shown and discussed in
this chapter.

The developed FEM and DEM models are coupled to analyse the belt flexure dynamically
in Chapter 4. According to the surface coupling strategy, the FEM and DEM coupling is
implemented, in which the data files from the FEM and DEM exchange mutually in each
iteration with the assistance of Python programming. Details of the programming logic
and the coupling challenges encountered are illustrated to help readers better understand
the overall coupling process. By setting the exchanging time step reasonably small, the
coupled FEM and DEM model can fully consider the dynamic interaction of the belt and
bulk material, thereby producing more accurate prediction of the belt flexure. Simulation
results regarding the longitudinal and transverse deflection are presented and discussed.
Furthermore, the material loads on the belt are analysed longitudinally and transversely
through the coupled model.

34
In chapter 5, the configuration of the test facility, along with the main components is
described, followed by the introduction of the principle for measuring the dynamic belt
deflection. The setup of the test rig is illustrated. Dynamic tests for two types of fabric
belts are conducted with a varity of belt pre-tensions and operating speeds. Sensitivity
analysis is conducted, in which the influences of the dynamic conditions on belt flexure
are investigated. Moreover, the developed coupled FEM and DEM model is evaluated
and validated by comparing to the experiment results.

Chapter 6 discusses the application of the model and provides guidance on designing
optimised belt conveyor systems. The developed modelling and measuring methods for
attaining belt flexure profiles under dynamic conditions are reviewed and discussed, from
which areas demanding further research are indicated. The whole structure of this thesis
is shown in Figure 1-9.

Figure 1-9 Thesis structure

35
CHAPTER 2: CONVEYOR BELT FEM MODELLING

2.1 Introduction

This chapter first introduces concepts and theories that are the fundamentals of the Finite
Element Method (FEM). The associated mathematical models and solution methods are
primarily internal to the FEM software and typically determine how accurate the FEM
can be in modelling the deflection of conveyor belts.

The next section is concerned with selecting appropriate finite elements for the belts used
in this study and matching the element behaviour to the actual belt behaviour. To achieve
this, several elements including membranes, plates and shells are reviewed, followed by
the descriptions of conveyor belt features. Experimental tests are conducted to determine
the belt properties. Validation work is also carried out in the subsequent section, which
indicates the obtained parameters can be used for the belt FEM modelling.

Furthermore, the particular open source software that is employed to perform the
simulations is introduced. Due to a large number of simulation packages available, it is
of great advantage to become familiar with the tools used so as to better understand how
meshes can be assigned, how boundary conditions and loads can be treated and what can
be expected from the simulation results. The FEM model for conveyor belts are developed
and fully explained based on the procedural steps.

Lastly, simulations are performed to analyse two different types of conveyor belts, from
which the results are presented and discussed. The developed FEM belt model will be
further elaborated to couple with the DEM model for bulk materials. This will be
presented in detail in the following chapter 4.

36
2.2 Fundamentals of the FEM

Finite element analysis is extensively used in engineering applications including solids


and structures, heat transfer, fluids and many others. The fundamental ingredients of FEM
are idealizing the system into a form that can be solved, formulating and solving the
mathematical model, interpreting the results and checking the model accuracy, as shown
in Figure 2-1. The approaches and principles used in finite element solution are
introduced in the forthcoming sections.

Figure 2-1 Finite element analysis for physical problems [49]

Mathematical model

The essence of the FEM is to employ a mathematical model to represent the physical
behaviour of an engineering problem. This means that a set of differential governing
equations is established and then solved to produce the physical response. Therefore, it is
crucial to select an appropriate mathematical model as the FEM can only give the
information contained in the model. In other words, the mathematical model completely
determines the insight into the actual physical problem. However, due to idealization and
assumptions involved in FEM formulations, it is impossible to predict the actual response
with in a high degree of accuracy.

37
Physical problems can be generally divided into discrete systems and continuous systems.
The response of a discrete system can be described directly by a set of algebraic equations
with unknown state variables. Accordingly, the mathematical model can be established
by a direct approach. A typical problem of a discrete system is calculating the
displacements of several carts restrained by springs with different stiffness. In a
continuous system, differential equations are used in the mathematical model to govern
the response. The formulated system governing equations must meet the requirements of
element equilibrium, constitutive relations, and element interconnectivity. Solving these
simultaneous equations requires numerical procedures that idealize the continuous-
system mathematical model to a discrete model that can be solved in the same manner as
in discrete systems. Meanwhile, boundary conditions that impose the constraints are also
provided as supplements. The boundary conditions include essential and natural boundary
conditions. The essential boundary conditions prescribe the correspondent displacements
and rotations of a system. The natural boundary conditions indicate the prescribed
boundary forces and moments.

For constructing the governing equations, both the differential and variational approach
can be used. When formulating governing equations by the differential approach, both
the essential and natural boundary conditions are supplemented additionally. These
considerations lead the differential equations to a strong form. On the other hand, the
variational approach formulates governing equations in a weak form that only considers
essential boundary conditions. This is because the functional implicitly includes the
natural boundary conditions. Thus, it becomes effective when pursuing numerical
solutions as the trial functions employed in a variational formulation need not satisfy the
natural.

Rayleigh-Ritz method

For simple systems, the equilibrium equations obtained from differential and variational
approaches can be solved easily. However, it is not the case when dealing with complex
systems. Thus, the Rayleigh-Ritz method based on the calculus of variations can be
38
typically used to approximate the solution. Consider a linear steady-state problem that is
analysed by its differential formulation.

𝐿2𝑚 [𝜙] = 𝑟 Equation 2-1

Where L2m is a linear differential operator; ϕ is the unknown state variable; r is the forcing
function. The solution must correspond to the boundary conditions.

𝐵𝑖 [𝜙] = 𝑞𝑖 |𝑎𝑡 𝑏𝑜𝑢𝑛𝑑𝑎𝑟𝑦 𝑠𝑖 ; 𝑖 = 1, 2, … Equation 2-2

The procedure of the Rayleigh-Ritz method is to approximate a solution in a form of

̅ = ∑𝑛𝑖=1 𝑎𝑖 𝑓𝑖
∅ Equation 2-3

where the fi are linearly independent trial functions; ai are multipliers to be calculated.

The Rayleigh-Ritz method operates on the functional Π that is an integral expression that
implicitly contains the differential equations of the system. The assumed trial functions
in Equation 2-3 are substituted into the functional Π. By minimizing the total potential,
the stationarity condition of Π (δΠ= 0) can be reached, which yields n simultaneous
equations for the multipliers ai.

𝜕𝛱
= 0; 𝑖 = 1, 2, … . , 𝑛 Equation 2-4
𝜕𝑎𝑖

39
In the displacement-based analysis of solids and structures, the Rayleigh-Ritz method is
identical to the principle of virtual displacements which is the basis of the finite element
solution. Thus, the FEM can be regarded as a special form of the Rayleigh-Ritz method.

The principle of virtual displacements

The principle of virtual displacements is explained by a generic three-dimensional (3D)


body, as shown in Figure 2-2. In this model, restraints are applied to the area of Su with
prescribed displacements Usu. Additionally, the body is subjected to the externally applied
forces fB, Rc and fsf which are the volume forces, concentrated forces and surface forces
respectively.

Figure 2-2 General three-dimensional body with 4-node tetrahedral element [49]

The principle of virtual displacements states that the total internal virtual work is equal to
the total external virtual work for any compatible small virtual displacements applied to
a body in its state of equilibrium.

40
Equation 2-5

where the U are the virtual displacements; the ε are the virtual strains that can be
calculated from the virtual displacements accordingly.

𝜀 𝑇 = [𝜀𝑋𝑋 𝜀𝑌𝑌 𝜀𝑍𝑍 𝛾𝑋𝑌 𝛾𝑌𝑍 𝛾𝑍𝑋 ] Equation 2-6

𝜕𝑈 𝜕𝑉 𝜕𝑊
𝜀𝑋𝑋 = ; 𝜀𝑌𝑌 = ; 𝜀𝑍𝑍 = Equation 2-7
𝜕𝑋 𝜕𝑌 𝜕𝑍

𝜕𝑈 𝜕𝑉 𝜕𝑉 𝜕𝑊 𝜕𝑊 𝜕𝑈
𝛾𝑋𝑌 = + ; 𝛾𝑌𝑍 = + ; 𝛾𝑍𝑋 = + Equation 2-8
𝜕𝑌 𝜕𝑋 𝜕𝑍 𝜕𝑌 𝜕𝑋 𝜕𝑍

The stresses τ, as known quantities, are the unique stresses that exactly balance the
externally applied loads.

𝜏 𝑇 = [𝜏𝑋𝑋 𝜏𝑌𝑌 𝜏𝑍𝑍 𝜏𝑋𝑌 𝜏𝑌𝑍 𝜏𝑍𝑋 ] Equation 2-9

𝜏 = 𝐸𝜀 Equation 2-10

Where E is the elasticity matrix of the elements, which is also known as the stress and
strain matrix or the constitutive matrix.

The virtual displacements mean that the displacements are not what the body actually
undergoes as a consequence of the applied loads. They are entirely different from the
actual displacements and are assumed for establishing the integral equilibrium Equation
2-5. Moreover, the established differential equations of equilibrium should be subjected
to the boundary conditions that correspond to the prescribed displacements of Su.

41
The body shown in Figure 2-2 is considered in a piecewise manner in which an
assemblage of discrete finite elements is connected through the nodes on the element
boundaries. The displacements at any arbitrary points on each element with respect to the
corresponding local coordinates can be interpolated by the displacements at element
nodal points. For element m,

̃
𝑢(𝑚) (𝑥, 𝑦, 𝑧) = 𝐻 (𝑚) (𝑥, 𝑦, 𝑧)𝑈 Equation 2-11

Where U is the vector of nodal displacements (and rotations in some cases). H is the
displacement interpolation matrix for element m. The coefficients contained in H(m) hinge
to considerable degree on the selection of the finite element that prescribes the geometry,
degrees of freedoms and convergence requirements.

Based on Equation 2-11, the corresponding element strains can be evaluated by

̃
𝜀 (𝑚) (𝑥, 𝑦, 𝑧) = 𝐵 (𝑚) (𝑥, 𝑦, 𝑧)𝑈 Equation 2-12

Where B is the strain-displacement matrix, which can be derived by differentiating the


displacement interpolation matrix H (B=әH).

The use of Equation 2-10, Equation 2-11 and Equation 2-12 in the principle of virtual
displacements will lead to the assembly process of all element matrices into the governing
structural matrices.

𝐾𝑈 = 𝑅 Equation 2-13

42
Where U is the unknown displacements of nodal points; R is the load vector; K is the
stiffness matrix of the element assembly and is given by

𝐾 = ∑𝑚 𝐾 (𝑚) = ∑𝑚 ∫ 𝐵 (𝑚)𝑇 𝐶 (𝑚) 𝐵 (𝑚) 𝑑𝑉 (𝑚) Equation 2-14

To sum up, the process of using the FEM to analyse solids and structures can be
summarized as

• Discretize the structure into an assembly of finite elements that are connected
through element nodes.
• Interpret the externally applied forces into the equivalent external nodal forces
using the principle of virtual displacements.
• Equilibrate the equivalent external nodal forces by the element internal stresses in
the virtual work sense.
• Generate the global equilibrium that satisfies the corresponding compatibility and
the stress-strain material relationship.

The calculation of FE matrices is of significance in the solution of the FEM. In practical


analysis, FE matrices may be computed with respect to local degrees of freedom (d.o.f.)
that may be not aligned with those globally. Therefore, it is necessary to perform a
transformation before the assembly. Alternatively, the FE matrices may be formulated
directly using the iso-parametric finite element formulations that obtain the relationship
between the displacements of any arbitrary point and the nodal points of finite elements
through shape functions.

Shape function

The iso-parametric formulation makes it possible to have nonrectangular elements, such


as elements with curved sides, infinite elements (unbounded media) and singularity
elements (fracture mechanics) in the FEM analysis. Figure 2-3 takes a four-node plane

43
quadrilateral for example. Other iso-parametric elements having more nodes or shape
functions can use the same concepts and computational procedures.

Figure 2-3 4-node plane iso-parametric element [50]

In Figure 2-3, a nonrectangular element is shown in the global coordinates XY. A natural
coordinate system ζη is introduced as auxiliary coordinates for presenting points within
the element. The coordinates ζη are defined in the range of ±1, regardless of the element
orientation in the global coordinates. An arbitrary point can be calculated by

𝑋 = ∑ 𝑁𝑖 𝑋𝑖 ; 𝑌 = ∑ 𝑁𝑖 𝑌𝑖 Equation 2-15

Where Xi and Yi are the nodal coordinates; Ni is more generally known as the shape
functions that are similar to the interpolation matrix H in Equation 2-11 but different
expression (or interpolation). By knowing the natural coordinates ζ and η of the point, the
shape function equation can be expressed as

1 1
𝑁1 = (1 − 𝜉)(1 − 𝜂); 𝑁2 = (1 + 𝜉)(1 − 𝜂);
4 4
1 1 Equation 2-16
𝑁3 = (1 + 𝜉)(1 + 𝜂); 𝑁4 = (1 − 𝜉)(1 + 𝜂);
4 4

44
The displacements u and v are parallel to the global axes instead of to the natural axes,
which means the same shape functions can be used for the interpolation of both
coordinates and displacements. Therefore, it is not necessary to transfer between the local
and global d.o.f. in iso-parametric FE formulations.

𝑢 = ∑ 𝑁𝑖 𝑢𝑖 ; 𝑣 = ∑ 𝑁𝑖 𝑣𝑖 Equation 2-17

The relation of the gradients in the two coordinate systems can be expressed as

𝜕𝑢 𝜕𝑢 𝜕𝑋 𝜕𝑌 𝜕𝑢
𝜕𝜉 𝜕𝜉 𝜕𝜉
{𝜕𝑢} =𝐽∙ {𝜕𝑋
𝜕𝑢
} = [𝜕𝑋 𝜕𝑌
] ∙ {𝜕𝑋
𝜕𝑢
} Equation 2-18
𝜕𝜂 𝜕𝑌 𝜕𝜂 𝜕𝜂 𝜕𝑌

where J is called the Jacobian matrix that can be derived from Equation 2-15 as.

𝜕𝑋 𝜕𝑁𝑖 𝜕𝑌 𝜕𝑁𝑖
=∑ 𝑋𝑖 ; =∑ 𝑌𝑖 Equation 2-19
𝜕𝜉 𝜕𝜉 𝜕𝜉 𝜕𝜉

Therefore, the strain εx is given by

𝜕𝑢 ∗ 𝜕𝑢 ∗ 𝜕𝑢
𝜀𝑋 = = 𝐽11 + 𝐽12 Equation 2-20
𝜕𝑋 𝜕𝜉 𝜕𝜂

where J*11 and J*12 are coefficients corresponding to the inverse Jacobian matrix J-1

𝜕𝑢 𝜕𝑁𝑖 𝜕𝑢 𝜕𝑁𝑖
=∑ 𝑢𝑖 ; =∑ 𝑢𝑖 Equation 2-21
𝜕𝜉 𝜕𝜉 𝜕𝜂 𝜕𝜂

45
Similarly, the rest strains εY and γXY can be determined. By combining all the strains, the
strain-displacement matrix B in Equation 2-12 can be established. Therefore, the element
stiffness matrix is given by

11
𝑘 = ∫ 𝐵𝑇 𝐸𝐵𝑑𝑉 = ∬−1−1 𝐵𝑇 𝐸𝐵𝑡|𝐽|𝑑𝜉𝑑𝜂 Equation 2-22

where t is the element thickness and |J| is the determinant of J in Equation 2-18.

FEM solution

The integration in Equation 2-22 is commonly done numerically using the Gauss
quadrature that is a form of numerical integration. For a generalized one-dimensional
problem, the Gauss quadrature evaluates the integral as the sum of a set of terms:

1
𝐼 = ∫−1 ∅𝑑𝜉 → 𝐼 ≈ ∑𝑛𝑖=1 𝑊𝑖 ∅𝑖 Equation 2-23

Where Wi is a weight and ϕi is the value of ϕ=ϕ(ζ) at a Gauss point.

It is noted that numerical integration is not the exact integral of I. The stiffness matrix K
is actually approximated in the FEM. The accuracy can be improved by increasing the
number of the Gauss points. However, the accuracy in the FE solution may decrease due
to redundant Gauss points that lead to over-stiffness of the matrix for integration. For
more complex elements in 2D and 3D like triangles and tetrahedrons, analogous formulas
are available for integration.

In terms of the solution of the governing equations in Equation 2-13, two methods can be
utilized, namely the direct method and iterative method. The direct method is essentially
derived from the Gauss elimination in which the number of operations is dictated by the
46
number of d.o.f. and the stiffness matrix K. This means the solution steps are
predetermined. In contrast, the number of operations required by the iterative method may
vary. The iterative solution may terminate when either meeting the convergence criteria
or reaching the iterative limit. Overall, the direct method is a more common method in
finite element analysis. Basically, the direct solution method is used to manipulate and
transfer the governing equations into an upper triangular coefficient matrix, based on
which the unknown variables can be obtained through back substitutions.

There are two mechanisms which are the node numbering and element numbering to drive
the solution of the Gauss elimination. For the node numbering mechanism, forward
reduction proceeds according to the order of nodes where the first node are calculated last
as the back substitutions are in the reverse order. The element numbering performs the
assembly of element matrices and forward reduction performed alternatively. Thus,
governing equations are solved with the generation of the assembly and reduction, just
like a wave propagating over the entire system.

Finite element solution errors

As mentioned in the preceding sections, the FEM idealizes an actual physical problem
and generates a mathematical model accordingly to reproduce the response. Then, the
mathematical model is approximated and solved by the finite element solution. Therefore,
varying errors may occur during this process and affect the FE solution. Table 2-1
summarizes the potential errors and the various range of their sources.

47
Table 2-1 FEM analysis errors [49]
Error Error occurrence
Discretization Use of finite element interpolations for geometry and
solution variables
Numerical integration in space Evaluation of finite element matrices using
numerical integration
Evaluation of constitutive Use of nonlinear material models
relations
Solution of dynamic equilibrium Direct time integration, mode superposition
equation
Solution of finite element Gauss-Seidel, conjugate gradient, Newton-Raphson,
equations by iteration quasi-Newton methods, eigensolutions
Round-off Setting up equations and their solution

2.3 Analysis of conveyor belts

Belt finite element selection

A typical conveyor belt consists of three separate components that are the top and bottom
covers and reinforcement carcass. The top and bottom belt covers that are essentially
made of rubber or PVC composites are designed to protect the belt carcass and extend its
service life. The belt carcass is composed of either a series of steel cords or woven layers
and is expected to sustain tensile loading and support carried bulk materials. The covers
and carcass are vulcanised together through particular manufacturing processes which
makes the belt behave in the way that combines the behaviour of both. According to the
belt carcass, conveyor belts are classified as steel cord or fabric belts, as shown in Figure
2-4 (a) and (b) respectively. Solid woven belts can be considered as a subset of fabric
belts. The primary focus in this study is on modelling the behaviour of fabric belts, and
the investigations of steel cord or solidwoven belts are not included.

(a) (b)

Figure 2-4 Construction of steel cord belt and rubber fabric belt [15]

48
In FE analysis, problems encountered are summarized as the truss, beam, plane stress,
plane strain, axisymmetric, plate bending, thin shell, thick shell, and 3D solid. In order to
model conveyor belts in the FEM, the fundamental requisite is to understand the features
of different types of FEs and use the one which reflects the behaviour in close proximity
to the behaviour of the real belts. At first glance, membrane, plate and shell seem to be
the most suitable FEs as their structural configurations correspond to a conveyor belt. For
the final FE selection, it is instructive to understand the concepts of these FEs.

A membrane is a structural element that only contains in-plane stiffness instead of


bending stiffness. This means the membrane can resist lateral loads pertaining to the plate
plane but not any bending moment. If external lateral loads act on the mid-surface of a
3D thin plate to stretch the plate, the plate can be modelled as membrane elements that
have uniform stresses and strains distributed across the thickness. Under these conditions,
the 3D plate can be easily reduced to a 2D membrane.

Plate elements can provide flexural or bending stiffness compared to membranes. That is,
plates can sustain transverse loads normal to the mid-surface due to their bending
stiffness. When transverse loads act on a plate, the plate deforms out of the plane and the
associated stresses and strains vary with the thickness of the plate.

Shell elements can be treated as a combination of both membrane and plate elements and
can provide not only bending stiffness but also in-plane stiffness. Thus, shells can endure
moments and forces in all directions. Depending on the ratio of the shell span to thickness,
thin and thick shells should be considered. If the ratio is larger than 10, a shell element
should be treated as a thin shell. Otherwise, thick shell elements should be employed. The
thin and thick shell elements have different bending theories: the Kirchhoff’s theory and
Mindlin theory respectively. Kirchhoff’s theory ignores the shear deformation of the
shell, while the Mindlin theory does not [50].

49
For the use of the Kirchhoff theory, the shell should satisfy the following requirements.
• The shell is thin in the sense that the span to thickness ratio is larger than 10.
• The shell thickness is approximately uniform or slightly varies over the
dimension.
• The shell is symmetrically manufactured with respect to its mid-surface.
• Applied transverse loads are distributed over shell surface areas

All the above requirements can be met except the third. Due to the relatively small belt
thickness, the actual conveyor belts are idealized to be a symmetric fabrication. Therefore,
the most suitable elements for belt modelling should be thin shell elements based on
Kirchhoff’s theory.

In Kirchhoff’s theory, shear stresses through the shell thickness are assumed to be zero
and the shear deformations are ignored, which mean right angles are preserved in the
cross-sections. Figure 2-5 (a) shows a shell slice cut by two planes parallel to the YZ
plane. In Figure 2-5 (b), the applied transverse load results in the displacement w in the
axis of Z and the straight line remains perpendicular to the mid-surface during
deformations. The shear strains γyz=0 and γzx=0 due to zero shear deformation.

Figure 2-5 Shell element based on Kirchhoff’s theory: (a) geometry before loading; (b) deformation after
loading

For an arbitrary point P, the displacement can be expressed as

50
𝜕𝑤 𝜕𝑤
𝑢 = −𝑧 ( ); 𝑣 = −𝑧( ) Equation 2-24
𝜕𝑥 𝜕𝑦

According to Equation 2-7 and Equation 2-8, the strains yielded are

𝜕2 𝑤 𝜕2 𝑤 𝜕2 𝑤
𝜀𝑥 = −𝑧 ; 𝜀𝑦 = −𝑧 ; 𝛾𝑥𝑦 = −2𝑧 Equation 2-25
𝜕𝑥 2 𝜕𝑦 2 𝜕𝑥𝜕𝑦

Along with the strains, the stresses and bending occur through the thickness of the shell
element, as shown in Figure 2-6.

Figure 2-6 Loading of a shell element: (a) stresses on cross sections and distributed lateral load; (b)
differential forces and moments

By combining Equation 2-25 with the plane stress equations, the resulting stresses for
isotropic materials are given by

𝜎𝑥 𝐸 1 𝑣 𝜕 2 𝑤⁄𝜕𝑥 2 𝜕2 𝑤
{𝜎 } = −𝑧 [ ]{ } 𝜏𝑥𝑦 = −2𝑧𝐺 Equation 2-26
𝑥 1−𝑣 2 𝑣 1 𝜕 2 𝑤⁄𝜕𝑦 2 𝜕𝑥𝜕𝑦

51
The above stresses lead to the presence of the bending moments Mx and My and twisting
moment Mxy as shown in Figure 2-6 (b).

𝑡 ⁄2 𝑡⁄2 𝑡⁄2
𝑀𝑥 = ∫−𝑡⁄2 𝜎𝑥 𝑧𝑑𝑧 𝑀𝑦 = ∫−𝑡⁄2 𝜎𝑦 𝑧𝑑𝑧 𝑀𝑥𝑦 = ∫−𝑡⁄2 𝜏𝑥𝑦 𝑧𝑑𝑧 Equation 2-27

In-plane forces may occur along with the shell deformation, leading to a stress stiffening
effect. If tensile forces are induced, the flexural stiffness will increase. If compression
forces are induced, the flexural stiffness will decrease. This effect is similar to what the
belt pre-tension does and may influence the magnitude of the belt deflection.

Belt orthotropic properties

Unlike typical engineering materials such as steels, aluminium and coppers, conveyor
belts are a type of orthotropic material that is known as an anisotropic material. The
fundamental difference is that the belt properties are directional dependent and differ in
each of the perpendicular material axis directions. The elastic modulus of a belt in the
longitudinal direction can be much higher than that in the transverse direction, which
enables conveyor belts to sustain substantial forces and loads and still maintain the
flexibility to conform idler trough profiles.

An orthotropic material model basically requires nine coefficients to assemble the strain-
stress matrix. These essentially independent parameters are the Young’s moduli E1, E2
and E3, the in-plane shear moduli G12, G23 and G31 and the Poisson’s ratios V12, V23 and
V31. The subscripts of these parameters stand for the directions in the local material axes,
where axis 1 is the belt longitudinal direction; axis 2 is the transverse direction; axis 3 is
the plate normal direction. The relation of the strains and stresses is given by

52
1 𝑣21 𝑣31
− −
𝐸1 𝐸2 𝐸3
𝑣21 1 𝑣32
0 0 0
𝜀11 − − − 0 0 0 𝜎11
𝐸1 𝐸2 𝐸2
𝜀22 𝑣13 𝑣23 1 0 0 0 𝜎22
𝜀33 − − − 𝜎33
𝐸1 𝐸2 𝐸3
𝛾23 = 1
0 0
∙ 𝜏
23
Equation 2-28
𝛾31 0 0 0 𝐺23 𝜏31
1
(𝛾12 ) 0 0 0 0 0 ( 𝜏12 )
𝐺31
0 0 0 1
[ 0 0
𝐺12 ]

Where ε11, ε22, ε33 and γ23, γ31, γ12 are the strains caused by elastic and shear stresses in the
relevant directions and planes. σ11, σ22, σ33, τ23, τ31, τ12 are the associated stresses. The
compliance matrix should be symmetric and subject to the following restrictions.

𝑣𝑖𝑗 𝑣𝑗𝑖
= Equation 2-29
𝐸𝑖 𝐸𝑗

With respect to the overall dimension, the thickness of conveyor belts is negligibly small.
Based on Kirchhoff’s theory, the main stresses that may occur are the elastic stresses
σ11and σ22 along axis 1 and axis 2 respectively and the shear stress τ12 in plane 1-2. Other
variables including σ33, τ23 and τ31 can be ignored for simplicity. Moreover, γ23 and γ31
perpendicular to the belt surface plane are also assumed to be zero. Therefore, Equation
2-28 can be expressed in a concise form.

1 𝑣21
− 0
𝜀11 𝐸1 𝐸2 𝜎11
𝑣12 1
𝜀
( 22 ) = − 0 ∙ (𝜎22 ) Equation 2-30
𝐸1 𝐸2
𝛾12 1 𝜏12
[ 0 0 ]
𝐺12

According to Equation 2-29, the relationship between Poisson’s ratio υ12 and υ21 is
determined, which reduces the number of variables in Equation 2-30. In summary, by
knowing the values of the E1, E2, ν21 and G12, the behaviour of the relevant belt FE can
be adequately described.

53
Determinations of belt properties

In FEM analysis, it is crucial to determine the belt properties in order to build up the
constitutive equations for the mathematical model. The properties include Young’s
moduli, Shear moduli and Poisson’s ratios. As a combination of rubber and fabric, fabric
belts possess the characteristics of both materials, especially the hyper-elasticity and
hysteresis of rubbers and the orthotropy of fabrics. These features increase the complexity
of fabric belts and make them difficult to describe. Moreover, the behaviour of fabric
belts can vary according to different configurations including cover thickness, carcass
plies and the woven materials, etc. The product specifications from manufacturers only
give the capacities of conveyor belts and fail to provide the values of belt properties.

The measurements of the belt Young’s modulus rely significantly on the testing
approaches, procedures and data acquisition techniques. The three-point bending test is
one of the reliable methods and is commonly used to obtain the Young’s modulus. The
three-point test involves supporting a testing sample from the bottom near its ends and
applying a vertical load at its middle, as shown in Figure 2-7 (a). The Young’s modulus
is obtained from the relationship of the applied load and sample deflection.

Figure 2-7 Three-point test: (a) testing scheme; (b) testing with a belt sample on MTS machine

For this research six samples with a length of 65mm and a width of 20mm in both the belt
longitudinal and transverse directions (3 samples each) are prepared for each type of
54
conveyor belts. All the belt samples are tested on the MTS machine located in the
Mechanical Engineering Laboratory at the University of Newcastle, as shown in Figure
2-7 (b). The vertical load is applied in the middle of the samples via a moving upper
clamp driven by a hydraulic unit, while the lower clamp with are firmly fixed to provide
the supports. The distance of the two supporting knife edges is 50mm. Belt bending
occurs when the upper clamp moves downwards, from which the loads and displacements
of the upper clamp are recorded.

The measured displacements are a function of the applied forces. The obtained force and
displacement are processed using regression analysis to evaluate the slop.

The relevant Young’s modulus E is derived from.

𝐹∙𝑙3
𝑣𝑚𝑎𝑥 = Equation 2-31
48𝐸𝐼𝑋𝑋

Where IXX is the area moment of inertia of the belt samples and can be calculated by.

𝑏∙ℎ3
𝐼𝑋𝑋 = Equation 2-32
12

Furthermore, Poisson’s ratio νxy is assumed to be 0.45 that is similar to the value of pure
rubbers, as documented in [51-53]. This is because the rubber composition accounts for
the large portion of the belts. Thus, the Poisson’s ratio νyx can be calculated by Equation
2-29 correspondingly. The in-plane shear modulus Gxy can be estimated by

√𝐸𝑥 𝐸𝑦
𝐺𝑥𝑦 = Equation 2-33
2(1+√𝑣𝑥𝑦 𝑣𝑦𝑥 )

55
The density of the belt is determined by the measured weight and the volume of the belt
samples. From testing, the belt properties of the 6mm and 12mm thickness fabric belts
are obtained and summarized in Table 2-2.

Table 2-2 Parameters of fabric belt properties


Property names Values for 6mm belt Values for 12mm belt
Longitudinal Young’s modulus, Ex (N/mm ) 2
38.3 64.9
Transverse Young’s modulus, Ey (N/mm ) 2
18.8 40.2
Principle Poisson’s ratio, vxy 0.45 0.45
Associate Poisson’s ratio, vxy 0.23 0.28
2
In-plane shear Modulus, Gxy (N/mm ) 9.9 18.9
Density, ρ (kg/m )
3
1365 1365

Indeed, more comprehensive analysis of the material can improve the modelling accuracy
and lead to more correlation with the actual behaviour. However, the nonlinear material
properties, in particular, the hysteresis of rubber, is not considered in the belt FEM
modelling for simplification. High accuracy has been already achieved without
considering the belt nonlinearity, as presented in the following chapters.

Belt properties validation

Once the belt properties are obtained, it is advised to validate the values to ensure they
can represent realistic belt behaviour, thereby producing reliable results when used for
modelling. In this study, belt troughability tests are conducted experimentally and
numerically, from which the belt sags are obtained.

The troughability test involves measuring the deflection of a belt sample that is supported
at the edges without any friction and forces. As shown in Figure 2-8 (a), the belt sample
is clamped at the ends that are attached to four suspension wires of which the other ends
are hooked to two rigid horizontal beams. A plumb is used as a reference line to make
sure all suspending wires are vertical. The belt deflection is measured from the belt’s
lowest point to the belt ends.

56
Figure 2-8 Belt troughability test: (a) configuration of test rig; (b) on-site belt troughability test

According to the testing requirements, the belt samples are prepared longitudinally and
transversely with a length of 600mm and a width of 150mm. After conditioning the belt
sample under a standard temperature for 24 hours, they are fitted in the test rig. As shown
in Figure 2-8 (b), the suspension wires are adjusted to be parallel to the plumb line by
sliding along the beams. After being in steady state for 5 minutes, the belt deflection is
measured from the belt uppermost corner to the lowest point on the belt upside surface.
Tests are conducted three times for each sample, and the belt deflection is determined by
the average values.

The belt troughabiliy tests are replicated in the FEM using the Code_Aster software
package that will be introduced in the foregoing sections. The Code_Aster codes is
attached in Appendix A. The modelled belt sample is initially placed horizontally with
one end fixed and the other free to move only in the horizontal direction. By defining the
self-weight, the belt mesh will deform and produce a curved profile, which is similar to
the experiment. The modelled results are shown in Figure 2-9, from which the deflection
can be calculated. The belt deflection is represented by colours, where the red colour
indicates a zero displacement and the blue colour shows the maximum deflection. The
magnitude of belt deflection is given by the legend in each figure.

57
Figure 2-9 Belt troughability modelling results: longitudinal direction (a) 6mm (b)12mm belts; transverse
direction (c) 6mm (d) 12mm belts.

Table 2-3 displays the belt deflection results from the laboratory and simulations. Good
correlation is observed with the maximum deviation of 13% for the transverse sag of the
12mm thickness belt. The belt properties listed in Table 2-2 will be subsequently used for
the belt FEM modelling.

Table 2-3 Comparisons of test and simulation results of belt troughability


Belt samples Modelling Testing

6mm Longitudinal sag (mm) 138 129


thickness belt
Transverse sag (mm) 185 197
12mm Longitudinal sag (mm) 28 31
thickness belt
Transverse sag (mm) 45 52

2.4 Development of belt FEM model

This section presents the development of the FEM model for conveyor belts. The software
used for FEM analysis is introduced, followed by the proposed modelling procedures.

58
Based on the procedures, the Code_Aster command file is created, and simulations are
implemented accordingly.

Introduction of Code_Aster

Code_Aster is used as the FEM modelling program for this research. It was developed by
Research and Development department of (ÉlectricitéDe Française) EDF in 1989 and
integrated a wide range of solvers, such as linear statics, non-linear statics or dynamics
and thermal mechanics to deal with engineering problems. Code_Aster has become an
open source software since 2001 when it was placed under the GNU GPL license.

Code_Aster runs under open source operating systems like Unix or Linux systems. The
installation of Code_Aster can be very complicated as users may need to compile the
codes from scratch if they utilise custom functions. For general users, the Code_Aster
official website provides a package that can automatically install the software by a simple
terminal command. Several elementary libraries are required as prerequisites for the
installation. These libraries are gcc, cmake, python, python-dev, python-numpy, python-
qt4, tk, bison, flex, liblapack-dev, libblas-dev ou libopenblas-dev, zlib (named zlib1g-dev
on debian/ubuntu).

Figure 2-10 shows the modelling process. As the core of modelling, Code_Aster is
specific for FEM analysis including the FE model creation and resolution. It executes
FEM analysis by following a sequence of procedures that are prescribed in its command
file. Command files can be prepared in any kind of text editors like Gedit or a graphical
interface editor called Eficas. However, not all the Code_Aster commands are included
in Eficas, limiting the use of this graphical editor especially when Python programming
is involved.

59
Figure 2-10 Integration of overall FEM modelling [54]

Some third-party software is required when dealing with pre-processing and post-
processing. Pre-processing is the stage prior to the actual FE analysis. Its main task is to
create the geometry and mesh, from which FEs can be created to model the original
structure. Post-processing performed after FEM analysis is to visualize the simulation
results, based on which users can obtain a comprehensive understanding through graphs
or animations. Gmsh and Paraview are used for pre-processing and post-processing
respectively. Moreover, Gedit and Python are used as well. Gedit is the text editor for
writing the command scripts. Python is utilized to define functions and import external
libraries for Code_Aster programming. Regardless of various software versions available,
the software used in this study are Code_Aster stable 12.7; Gmsh 3.0.6; Paraview 5.0.1;
Gedit 3.18.3; Python 2.7.12.

As open source software, Code_Aster is generally free to use, distribute, and modify. This
feature attracts hundreds of thousands of users who in turn continuously debug the
software and suggest ways to improve it, making Code_Aster comparatively powerful
and effective to commercial software. Furthermore, the source codes of Code_Aster are
publicly available for engineers, researchers and communities. By accessing the source
codes, users can understand how it works and personalize Code_Aster as desired, which
provides an advanced way to integrate the FEM with other numerical methods, such as
the Discrete Element Method (DEM) and Computational Fluid Dynamics (CFD).

Code_Aster also has some disadvantages. First of all, Code_Aster does not provide any
friendly graphical interface for users to perform simulations. Manipulations that define
and solve a FE model are described by commands, and only a few prompt lines pop up in
the Linux terminal when running simulations. Thus, it is difficult to debug models. Even
60
a minor mistake, for instance, a typo in a command may lead to the failure of the
simulation. Furthermore, the learning curve of Code_Aster can be very steep due to the
high frequency of software updates. Since initially developed, codes are continuously
programmed to fix the existing bugs, resulting in different versions being released within
a short period of time. Commands and their functions may vary with the software
versions. Therefore, users have to learn the newly added commands and catch up with the
updates of Code_Aster.

Modelling procedures and implementations

The FEM modelling of conveyor belts follows the typical analysis procedures illustrated
in section 2.2. Figure 2-11 (a) shows the flow chart of how the belt is modelled in
Code_Aster. The procedures include the modelling environment initialization, creation
of the belt FE model, assignment of boundary conditions and loads, solver analysis and
result processing and output. Accordingly, the command file is coded to implement the
simulation, as shown in Figure 2-11 (b). Simulation codes can be found in Appendix B.
The use of each specific command is explained in the following sections.

Figure 2-11 The FEM analysis for belt deflection in Code_Aster: (a) flow chart of the modelling; (b)
modelling commands script.

61
2.4.2.1 FEM simulation environment settings
The first step of the belt FEM modelling is to set up the simulation environment, which
is known as initialization. At this stage, system paths are assigned, and several necessary
libraries including sys, Utilitai, re, math, subprocess, numpy and string are imported for
the use of Python programming in the modelling codes. Furthermore, a homogeneous
system of units is formed. Instead of the ISO units, the default engineering units are used,
in which length is given in millimetres; forces are in Newtons; time is in seconds; mass
is in tons; stresses are in Newton per square millimetres; and densities in expressed in ton
per square millimetres.

2.4.2.2 Geometry creation and meshing


Only a belt with one idler spacing length is modelled as the profile of the belt between
any two successive idler sets is assumed to be identical. By assigning appropriate
boundary conditions, the belt model can represent the whole conveyor belt. The belt
model is created using Gmsh by outlining the vertex of the trough belt, linking the vertex
to produce belt edges and looping the edges to build the belt surface. The created belt
model is essentially a curved surface which does not have thickness. The belt thickness
is further assigned by Code_Aster in the FEM analysis. The dimensions of the belt are
the same as those used for the experiments, as detailed in Table 5-1.

It is useful to name and group the belt elementary entities including points, lines, surfaces
and volumes. This allows boundary conditions and forces to act on specific groups in the
FEM simulations. As shown in Figure 2-12 (a), the belt model consists of five sections
including two wing belts, one central belt and two junction belts. The belt junctions have
a curve profile with an initial radius of 50mm. The right end of the belt is fully fixed,
whereas the other end is partially restrained and allowed to move longitudinally when
belt tensions are applied. The free edges are the belt side edges where there is no restraint.
Moreover, point 1 is named as “orienp” that is used to define the positive global Z
direction for the belt orientation. The whole belt surface is grouped as “belt” that contains
all the belt elements after meshing. The code for creating belt mesh can be found in
Appendix C.

62
Figure 2-12 Belt model in Gmsh (a) curved profile of belt geometry; (b) belt mesh model

The belt mesh is created by converting the belt geometry, which essentially involves
subdividing the belt elementary entities, as shown in Figure 2-12 (b). The characteristic
length is defined to describe the mesh size. The larger the characteristic length, the coarser
the produced mesh, and vice versa. In this study, the characteristic length is set to be
30mm that can not only reduce computer power but also produce accurate results. The
created belt meshes are saved in the format of MED that is readable in Code_Aster.
Meanwhile, the defined groups belonging to the belt geometry are also preserved in the
mesh file. The belt mesh will be subsequently imported into Code_Aster as an initial mesh
of the undeformed belt.

63
2.4.2.3 Belt finite element model
The creation of the belt FE model in Code_Aster includes the mesh insertion, definition
of element type and material and assignment of the element properties.

The belt mesh is inserted by reading the belt mesh file and retrieving the mesh groups. It
is important to orientate the mesh as the local axis of each mesh segments may vary due
to the different mesh generation procedures. If the mesh is not oriented, the boundary
conditions and applied loads can function in the opposite direction. The belt normal
direction is set to either correspond to or have a sharp angle with the positive global Z
direction.

The inserted belt mesh is essentially a topology entity at this stage. It is necessary to
transfer the mesh into the proper finite elements that Code_Aster can manipulate on. The
DKTG type finite elements are employed because they are suitable for 3D plate analysis,
especially when dealing with nonlinear mechanical problems. In addition, the element
thickness is assigned accordingly.

The orthotropic properties of the FEs can only be accessed by defining a composite
material in Code_Aster. Three layers of the composite material are defined, namely the
belt carcass, top and bottom rubber covers. For simplification, they are assumed to have
the same thickness and material properties. The longitudinal and transverse Young’s
moduli, in-plane shear modulus, Poisson’s ratio and density are assigned according to the
test results. The defined composite material is assigned to the FEs. Therefore, the belt
FEs are embedded with the orthotropic behaviour.

2.4.2.4 Boundary conditions and bulk material loads


The next step is to define the external conditions acting on the model, including the
boundary conditions and applied loads. It is advised that the external conditions should
64
be split and described in separate elementary commands as is logical. This is beneficial
when it is required to partially change or operate on the load and boundary conditions or
incrementally apply the loads for non-linear analysis.

The boundary conditions of the belt model contain two fixations for both belt ends. One
belt end is fully fixed, where all the degrees of freedom (d.o.f) of the nodes on this end
are set to be zero. For the other end, the translational d.o.f along the global Y axis is
released, allowing the belt to extend under pre-tension.

In terms of loading, three types of external loads are identified and defined separately.
They are the belt self-weight, pre-tension and bulk material forces. The self-weight can
be treated as evenly distributed vertical forces that take place by defining the acceleration
of gravity (9.8e4mm/s2) along the negative global Z direction. The magnitude of the self-
weight is determined by the density and dimension of the belt FE model. The pre-tension
on the restrained end of the belt is replicated by a distributed force acting on the belt edge.
The distributed force basically exerts on the nodes pertaining to the belt edge. Depending
on how big the belt pre-tension is, the nodal forces can be calculated by dividing the total
force by the node numbers. In this study, the applied pre-tensions are 5kN, 10kN and
15kN. The forces resulted from the bulk material are obtained from DEM modelling. The
force assignment can be complicated and challenging. The strategy of the assignment is
illustrated in section 2.4.3.1.

2.4.2.5 Non-linear analysis solution


Linear analysis is based on the assumptions of small displacements and rotations,
proportional relationship of stresses and strains and constant load directions with structure
deformation. Thus, equilibrium equations (Equation 2-5) are derived from the original
support conditions, stress-strain relations and structure configurations. However, these
assumptions may lead to errors in the modelling of conveyor belts. Displacements and
rotations may become large enough that a deformed configuration should be considered
instead of the original configuration. Furthermore, large rotations give rise to the

65
variations of the directions and magnitudes of the loads. To minimize the non-linearity
effects, non-linear static analysis (STAT _NON _LINE) is used as the solver for the belt
model. Therefore, the loads will be applied in a stepwise manner. The solver proceeds
after each step achieves convergence, and the final simulation results are obtained when
the last step is completed.

2.4.2.6 Results enhancement and output


After solving the FE belt model, Code_Aster produces the simulation results that contain
two fields. One field is the displacements at element nodes and the other is the stresses at
the element Gauss points. The deflection of the modelled belt can be obtained directly
based on the displacement field. While the stress field can be interpreted to produce the
stresses at element nodes and element nodal reaction forces. The result enhancements are
especially useful for checking the simulation results.

The obtained results are output as ASCII, RMED and BASE files. The ASCII file lists
the displacements of the nodes on the belt centre line and on the cross-section at the
maximum belt sag point. The RMED file records the deformed profile of the belt mesh
that can be graphically visualized in post-processing software, such as Gmsh, Salome and
Paraview. The BASE file saves all the simulation information and can be used as an initial
state for continued calculations.

Main modelling challenges

The main challenges are associated with applying the material loads and obtaining
convergent non-linear analysis solutions. An appropriate method of load assignment is
developed with the assistance of Python. Meanwhile, the theories of non-linear analysis
are presented, based on which the parameters of the non-linear solver are tuned to achieve
convergence.

66
2.4.3.1 Mapping bulk material loads
As illustrated in chapter 3, the material loads are derived from the summation of the
contact forces between particles and belt elements. The forces are recorded with respect
to each individual element. The DEM model exports the forces as stresses (forces/area)
in the output (VTK) files. Therefore, the most straightforward method to address the
material loads is to apply the stresses to each corresponding belt element. In such way,
the stresses obtained from the DEM can be used directly without any data calculation or
transformation. However, there are 2352 belt elements included in the belt mesh, making
it impractical to assign the stresses manually. Therefore, Python is employed to extract
the stresses from the DEM output data, identify the related belt elements and
automatically map the material loads.

Due to the software compatibility, a belt element may have different IDs in the FEM
(Code_Aster) and DEM (Liggghts) programs. To identify the elements and assign correct
stresses, an algorithm is developed. In Figure 2-13, for an arbitrary belt element, the
centroid can be calculated by averaging the coordinates of the element vertices. The
centroid coordinates are calculated in the DEM and FEM respectively, based on which
the element stress from the DEM will be assigned to the element in the FEM
correspondingly. A 5mm radial position tolerance is introduced to take into account the
round off effects of the software.

Figure 2-13 Mesh element identification based on the triangular centroid

67
To extract the data from the DEM, it is important to understand how the simulation results
are output from Liggghts. The typical data structure of the Liggghts output file is shown
in Figure 2-14, in which the vertex coordinates of elements are listed first. Following are
the corresponding element stresses. Specifically, the first 5 lines in Figure 2-14(a) are the
title of the file. Starting with the title “POINTS”, every three lines represent the vertex
coordinates of one single triangle element. For each vertex, the X, Y, Z coordinates are
displayed in the first, second and third columns respectively. Similarly, the element
stresses are given as vectors with components in the global X, Y and Z directions, as
shown in Figure 2-14(b).

Figure 2-14 Typical data structure of the Liggghts output files (VTK) recording the element loads

For the centroid calculations of the belt elements in Liggghts, a Python script is
programmed, as shown in Figure 2-15. The script first defines a function for locating the
indexes of the vertex coordinates and element stresses in the output file, then extracts the
corresponding data and finally averages the coordinates to calculate the element
centroids. Meanwhile, the stresses belonging to the elements are also extracted
accordingly. The values of centroid coordinates and element stresses are put into a Python
list for subsequent use.

68
Figure 2-15 Python script for the DEM data extraction and calculation

Figure 2-16 Python codes for calculating of FEM element centroids and mapping element loads

In the FEM, the belt mesh information including node coordinates, element IDs and
numbers can be acquired via the Python class MAIL_PY. The element centroids are
computed using a Python script, as shown in Figure 2-16. After matching the element
across the FEM and DEM codes, the associated stresses of each element are applied in
Code_Aster.

69
It is of advantage to check what loads are applied to the belt model. To display the loads,
a static calculation is performed, in which all the d.o.f of the belt nodes are fixed
regardless of the actual nodal conditions. Reaction forces of the elements are calculated,
and they are exactly the opposite of the applied loads. If element loads are addressed
incorrectly, they can be easily identified. Figure 2-17 shows the load checks for the belt
model. The total reaction forces are 317kN and 840kN for the coal and iron respectively,
which correlate to the total loads obtained from the DEM.

Figure 2-17 Applied loads check via element reaction forces: (a) coal; (b) iron ore

2.4.3.2 Non-linear analysis solution


In practice, non-convergent issues, to a large extent can occur when using non-linear static
analysis. To overcome this kind of problem, it is of great advantage to understand how
the solver works. The principle of the non-linear static solver, along with some tips that
assist in convergence are presented.

In general, non-linear problems can be classified into three categories which are
geometry, material and structural nonlinearities. Geometry nonlinearities refer to large
displacements and rotations that lead to the variations of the loads and boundary
conditions. In such case, the stiffness matrix should be determined by the deformed

70
geometry. Material nonlinearities occur with the presence of material uncertainties. For
instance, if a material undergoes a stress that is larger than its yield stress, the stress will
no longer be proportional to the strain. Structural nonlinearities mean the changes of the
overall structure due to the component contacts or cracks as a consequence of large
deformations. A component may start from a contactless initial state and end up coming
into contact with an adjacent body. This contact will lead to the change of boundary
conditions.

Instead of performing a single step analysis, a non-linear solver basically uses an iterative
algorithm that updates the geometry, stiffness matrix and boundary conditions at each
step. Turning a non-linear problem into a reduced degree of non-linearity is known as
stepping, as shown in Figure 2-18 (a) and (b). A series of pseudo timesteps are created,
in which the loads or displacements would be applied incrementally and eventually reach
the final values.

Figure 2-18 Parametrization of non-linear analysis from (a) high degree of non-linearity to (b) low degree
of non-linearity at each step; (c) Timesteps and iterations in the non-linear solver [54]

It is possible that non-linear calculations fail in the middle of a timestep. In this case, the
timesteps will be divided into finer steps and the non-linear analysis restarts with smaller
load increments, as shown in in Figure 2-18 (c). The subdivision may be relatively tedious
iterations. Fortunately, it can be automatically done in Code_Aster. The maximum
number of the sub steps within a timestep is set to be 500.

71
The Newton-Raphson method and the modified Newton-Raphson method are widely
employed to solve equilibrium equations in an iterative manner. Figure 2-19 (a) shows
that equilibrium iterations are performed by the Newton-Raphson method. The tangent
stiffness kta is used to calculate the displacement increment Δu=ePA/kta. The displacement
is updated by adding Δu to uA, giving a new point A'. In the following equilibrium
iteration, the new force imbalance is reduced to the vertical distance of A’ and a’ and the
new tangent stiffness at point a’ will be used for displacement calculations. The process
is repeated to minimize the force imbalance until it reaches a prescribed tolerance to the
actual load P1 at the current step. Then, the next step starts with the load increased to P2
and the equilibrium iterations perform analogously. After finishing the last timestep, the
actual curve can be approximated by connecting the established points of each timestep.
In contrast to the Newton-Raphson method, the modified Newton-Raphson method
calculates the tangent stiffness at the outset of each timestep. The tangent stiffness
remains constant for each iteration, as shown in Figure 2-19 (b). Although the number of
iterations within each step considerably increases, the modified Newton-Raphson method
is more computational efficient and is adopted in this modelling.

Figure 2-19 Iterative methods: (a) Newton-Raphson and (b) modified Newton-Raphson [50]

Equilibrium iterations for a given load step can proceed to the next step if the solution is
convergent. The convergence criteria is a relative basis and is given by

72
‖𝑒𝑝 ‖
𝜉= ‖𝑅‖
Equation 2-34

where ||ep|| is the square root of the sum of the squares of the load imbalances; ||R|| is the
square root of the sum of the squares of the external applied loads. ζ is the convergence
value which, in this case is defined as 1e-4.

Simulation implementation

The FEM analysis in Code_Aster is launched using the manager tool ASTK. The interface
of ASTK is illustrated in Figure 2-20 (a). The modelling directory is selected in the base
path on the top left of the window. Below is the information of input and output files,
such as the file types, servers, paths, names and units. The input file consists of the mesh
and command files. While the output files are the modelling message, results, deformed
mesh and archive files. Moreover, each file is related to a default unit given by the LU
column for identification.

Figure 2-20 Launch of the belt FEM modelling: (a) ASTK interface; (b) associated EXPORT file

Basically, what ASTK does is to create an associated EXPORT file based on the
information of the assigned files. For the belt FEM modelling, the EXPORT file generated
by ASTK is shown in Figure 2-20 (b). The EXPORT file can be used to directly invoke
Code_Aster through the Linux terminal, giving an alternative way to start the FEM

73
analysis. This feature is important for coupling the FEM and DEM simulations without
the intervention of ASTK. More detail can be found in Appendix D.

The modelling starts with reading the belt mesh from the mesh file, then the belt element
model is created with the desired dimensions and properties. One end of the belt model
is fixed, while the other is free to be tensioned. Following are the definitions of the applied
loads. The belt pre-tension is firstly applied, which extends the belt and provides extra
flexure stiffness to the model. After this, the belt self-weight takes effect, allowing the
belt to deflect under gravity. Lastly, the bulk material loads are extracted from the DEM
and mapped to the belt elements. The final deformed belt profile is calculated based on
these three types of loading effecting simultaneously. The static non-linear analysis solves
the model by steps with the same sequence illustrated above, where the calculations from
the previous step are the initial state for the following step. Simulations are performed for
the 6mm and 12mm thickness belts conveying the coal and iron ore materials. The
modelling results are demonstrated in the next section.

2.5 Results and discussions

The belt FEM simulations are performed with the pre-tension varying in the range of 5kN,
10kN and 15kN, based on which the longitudinal and transverse belt deflection is
investigated. The longitudinal deflection is the belt sag along the belt centre line, whereas
the transverse deflection is the deflection of the cross-section at the maximum belt sag
point. They are the main concerns in the design of conveyor belt systems as the belt
flexural resistance and stress are largely dependent on the magnitudes of both belt
deflections. Furthermore, the overall belt deflection is contoured and presented over the
idler spacing using Gmsh. The modelling results are demonstrated for each of the belts
and bulk materials.

74
Results of the 6mm-thickness belt

For the 6mm thickness belt loaded with the coal material, the longitudinal and transverse
deflection is shown in Figure 2-21 and Figure 2-22. In Figure 2-21, the horizontal axis
presents the belt positions over the idler spacing, and the vertical axis is the belt deflection
in the vertical direction. It is observed that the longitudinal belt deflection decreases with
the increase of the belt pre-tension. Moreover, it is clear that the longitudinal deflection
exhibits an asymmetric trend over the idler spacing, showing the second half deflection
larger than the first half deflection. Despite this, the maximum belt defection occurs
approximately in the middle of the idler spacing. The values are 21.4mm, 16.9mm and
13.9mm under the belt pre-tensions of 5kN, 10kN and 15kN respectively.

Figure 2-21 Longitudinal deflection of 6mm thickness belt with coal and pre-tensions of 5kN, 10kN and
15kN

In terms of the transverse deflection, half of the cross-section at the maximum sag point
is shown in Figure 2-22. The initial idler trough is represented by the black solid line. It
is observed that the central belt deflects as a curve shape; while the belt wing almost drops
parallel from the inclined trough idler. Furthermore, the central belt experiences larger
deflection than the belt wing, except at lowest belt tension (5kN) in which the belt wing
moves slightly outwards, giving a maximum belt wing deflection of 31mm at the edge.
This may be due to more belt flexibility under lower belt tension. For 10kN and 15kN
belt tensions, the maximum transverse deflection is 13.3mm and 10mm that occurs in the
middle of the belt wing section.
75
Figure 2-22 Transverse profile of 6mm thickness belt with coal and pre-tensions of 5kN, 10kN and 15kN
at maximum deflection point

Accordingly, the simulation results for the 6mm belt carrying the iron ore material are
shown in Figure 2-23 and Figure 2-24. Similar trends are observed in terms of the tension
and deflection relationship and the asymmetric longitudinal deflection. As shown in
Figure 2-23, larger values of the longitudinal belt deflection are obtained. This is due to
the higher bulk density of the iron ore. The maximum belt deflection occurs, without
exception in the middle idler spacing, and the values are 35.3mm, 25.5mm and 19.3mm
for 5kN, 10kN and 15kN belt tensions respectively.

Figure 2-23 Longitudinal deflection of 6mm thickness belt with iron ore and pre-tensions of 5kN, 10kN
and 15kN

76
In Figure 2-24, it is clear that the belt experiences substantially more transverse deflection
when conveying the iron ore material. The central belt exhibits higher deflection than the
belt over the wing idler rolls. The maximum values of the deflection on the belt side
sections are 30mm, 18.8mm and 13.8mm, all of which occur in the middle of the belt side
sections.

Figure 2-24 Transverse profile of 6mm thickness belt with iron ore and pre-tensions of 5kN, 10kN and
15kN at maximum deflection point

In addition, the belt deflection of the 6mm thickness belt is depicted over the idler spacing.
Figure 2-25 and Figure 2-26 show the overall contours for the coal and iron ore materials
respectively. The blue colour indicates the largest belt deflection, whereas the red
accounts for the area having minimal belt sag.

77
Figure 2-25 Belt deflection contour over one idler spacing (6mm belt and coal)

78
Figure 2-26 Belt deflection contour over one idler spacing (6mm belt and iron ore)

79
Results of the 12mm-thickness belt

Similarly, the simulation results of the 12mm thickness belt with the coal and iron ore
materials are presented in Figure 2-27 to Figure 2-30. It is clear that the 12mm belt
exhibits lower deflection compared to the 6mm belt due to the higher belt stiffness. Again,
identical trends are observed for the belt longitudinal deflection. However, the maximum
deflection on the belt wing shifts from the wing middle to the edge of the belt. This is
because the increased belt stiffness in the transverse direction drives the belt to maintain
a flat plate.

For the coal, the maximum longitudinal deflection is 6.7mm, 6mm and 5.4mm, and the
maximum transverse deflection is 14.7mm, 9.9mm and 7.7mm for the belt tensions of
5kN, 10kN and 15kN respectively, as shown in Figure 2-27 and Figure 2-28.

Figure 2-27 Longitudinal deflection of 12mm thickness belt with coal and pre-tensions of 5kN, 10kN and
15kN

80
Figure 2-28 Transverse profile of 12mm thickness belt with coal and pre-tensions of 5kN, 10kN and
15kN at maximum deflection point

As shown in Figure 2-29 and Figure 2-30, the maximum deflection for the iron ore
increases, with the longitudinal deflection of 13.8mm, 11.4mm and 9.5mm, and the
transverse deflection of 21.1mm, 11.5mm and 8.4mm for the belt tensions of 5kN, 10kN
and 15kN respectively.

Figure 2-29 Longitudinal deflection of 12mm thickness belt with iron ore and pre-tensions of 5kN, 10kN
and 15kN

81
Figure 2-30 Transverse profile of 12mm thickness belt with iron ore and pre-tensions of 5kN, 10kN and
15kN at maximum deflection point

The overall belt deflection contours for the 12mm thickness belt are plotted and shown in
Figure 2-31 and Figure 2-32.

82
Figure 2-31 Belt deflection contour over one idler spacing (12mm belt and iron ore)

83
Figure 2-32 Belt deflection contour over one idler spacing (12mm belt and iron ore)

It can be concluded that the belt tensions, properties (stiffness) and the loaded bulk
materials can influence on the belt deflection. While the higher belt tension and larger
belt stiffness may lead to lower belt deflection; the heavier bulk material can result in

84
greater deflection, which corresponds to typical site observations. More importantly, the
developed FEM belt model is capable of providing predictions of the belt deflection, at
least under static conditions.

2.6 Summary

The theories of the FEM analysis are reviewed with the emphasis on the Kirchhoff plate
model and orthotropic properties for simulating conveyor belts. Based on these theories,
the FEM belt model is developed using the open source software Code_Aster. To assign
the bulk material loads to each belt element, an algorithm is programmed by Python.
Moreover, non-linear static analysis, along with the methods for achieving convergence
is explained and employed for the solution of the belt model.

Two types of fabric belts loaded with the coal and iron ore materials are presented. The
properties of the belts are determined experimentally and validated prior to use for the
FEM model. Simulation results are presented and discussed, indicating the capability of
the developed FEM model for analysing belt deflection. However, this model is only
suitable for a static condition. The developed model will be further incorporated with a
bulk material DEM model that is illustrated in the next chapter to analyse the dynamic
flexure of belt conveyor systems.

85
CHAPTER 3: BULK MATERIAL DEM MODELLING

3.1 Introduction

In contrast to the classical continuum method (FEM), the Discrete Element Method
(DEM) considers a bulk material as an assembly of individual particles and analyses the
interactions of the particles and boundaries through a series of calculation cycles. It is
capable of representing the behaviour of a bulk material and thereby widely used in the
field of bulk material handling and processing.

The objective of this chapter is to introduce contact models incorporated in the DEM.
Specific tests are conducted, along with the DEM calibrations to characterise the material
properties and determine the input parameters for DEM modelling. Furthermore, a bulk
material DEM model is developed to investigate the forces resulted from the coal and
iron ore materials acting on a belt conveyor. Validation of the DEM model is presented,
and the obtained results are discussed.

3.2 Overview of DEM analysis

The DEM analysis is performed by cycling a small duration of time called timestep and
collectively describes the bulk material behaviour by integrating over these timesteps. A
typical DEM process includes identifying particles, detecting the particle contacts,
calculating the contact forces, determining the accelerations, integrating over the timestep
and updating the velocities and positions of particles. Therefore, every individual particle
is traced by knowing the particle contact forces, positions, velocities and accelerations.

Basics of the DEM

3.2.1.1 DEM modelling program-Liggghts


Depending on the DEM modelling packages, the adopted contact detection methods,
contact models and integration algorithms may vary. In this research, Liggghts is used for

86
the bulk material modelling. The DEM theories presented below are specific for the
Liggghts DEM program.

Liggghts is an open source DEM package compiled by C++ language based on Lammps
which is a classical molecular dynamics simulation code. It was originally developed by
Christian Doppler Laboratory at Johannes Kepler University. Liggghts stands for
Lammps Improved for General Granular and Granular Heat Transfer Simulations. It
provides the potentials for modelling soft materials, solid-state materials and coarse-
grained granular materials. The features include:

• The ability of importing complex geometry from other computer-aided design


programs, like Creo_Parametric.
• Linking parameters such as stiffness and damping in the contact model to material
properties, including Young’s modulus, Poisson’s ratio, coulomb and rolling
friction that can be determined by experimental tests and calibrations.
• The potential to model macroscopic cohesion of particles and adhesion between
particles and walls.

Mostly importantly, Liggghts enables users to access its source codes and modify them
as required. It also provides the possibility to wrap with other multiphase modelling
packages like the FEM and Computational Fluid Dynamics (CFD).

3.2.1.2 Contact detection


The algorithm used for detecting particle contact is of great importance as the number of
particles in a bulk handling system is generally extremely large. For some circumstance,
the contact detection can take up to 90% of the overall simulation time. For the sake of
saving computational power, neighbour list strategy is implemented in Liggghts to detect
the particle contacts. The basic principle of this strategy is to apply a neighbour list to
eliminate particles that are not interacting with the target particle

87
Figure 3-1 Neighbor list for contact detection

Figure 3-1 shows an example for a two-dimensional (2D) situation, in which the red dot
stands for the target particle; the blue circle is the cut-off radius and the green circle is
referred to as the buffer radius. Particles inside the cut-off radius constitute the neighbour
list. Only these particles will be included in the potential detections of particle contacts.
An issue may rise associated with the frequent update of neighbour list and becomes the
main drawback. To overcome this, a buffer radius greater than the cut-off radius is added
to the target particle, enabling the consideration of the particles initially in the neighbour
list then later travelling beyond the cut-off radius but still with the buffer radius.
Therefore, it is not necessary to frequently refresh the neighbour list. Typically, the larger
the buffer radius, the less often the neighbour lists need to be updated. However, more
particle pairs must be detected for potential contact in each timestep.

Once the particle contacts are detected, the contact forces can be calculated based on the
DEM contact models. The calculations of the resultant forces will be illustrated later in
section 3.2.2.

3.2.1.3 Integration algorithm


In order to calculate the motion of each particle, the contact forces are required to be
integrated. This can be very complicated as this procedure involves millions of particles
that move randomly. A numerical integration scheme is required to solve Newton’s
equations from which the positions and velocities of particles can be determined. The

88
Velocity-Verlet integration algorithm is adopted by Liggghts. For a single timestep ∆t,
the position and velocity of particle i can be derived by the Taylor formula.

1
𝑟𝑖 (𝑡 + ∆𝑡) ≈ 2𝑟𝑖 (𝑡) − 𝑟𝑖 (𝑡 − ∆𝑡) + 𝑚 𝐹𝑖 (𝑟𝑖 (𝑡))∆𝑡2 Equation 3-1
𝑖

1
𝑣𝑖 (𝑡) ≈ 2∆𝑡 [𝑟𝑖 (𝑡 + ∆𝑡) − 𝑟𝑖 (𝑡 − ∆𝑡) Equation 3-2

Equation 3-1 and Equation 3-2 are the iterative formulas for the particle position and
velocities respectively. The Fi(ri(t)) is the total force acting on particle i; mi is its mass.
The new particle position at time t is calculated based on its position at the previous
timestep t-∆t. The velocity cannot be solved until the particle position for the next
timestep t+∆t is acquired.

Furthermore, the truncation error of the Velocity-Verlet integration algorithm is of the


order ∆t4, which can be ignored due to the minor influence. Moreover, the global error is
of the order ∆t2. This means if the timestep ∆t goes down by ten times, the error would
reduce by hundred times. Therefore, the calculation error can be limited to a reasonable
deviation range by choosing an appropriate timestep value.

Liggghts DEM models

Particles simulated in Liggghts are typically assumed as perfectly smooth spheres with
infinite rigidity. This means there is only a single contact point between two particles
when they come into contact. Also, particles are not allowed to deform but are able to
overlap. The overlaps are used to determine the contact forces. The classical contact
model in Liggghts is the Hertz-Mindlin model [55] which is also adopted for the contacts
between particles and boundaries.

89
3.2.2.1 Hertz-Mindlin contact model
For two contact particles i and j, the contact forces are typically resolved into a normal
force and a tangential force, each of which has two components. The normal force is
independent of the tangential force. As shown in Figure 3-2(a), the normal contact force
consists of the forces resulted from a spring and a damper. Similarly, the tangential force
also contains a spring force (the shear force) and a damping force.

Figure 3-2 Hertz-Mindlin contact model [55]

Therefore, the resultant contact forces can be expressed as

𝐹 = (𝑘𝑛 𝛿𝑛𝑖𝑗 − 𝛾𝑛 𝑣𝑛𝑖𝑗 ) + (𝑘𝑡 𝛿𝑡𝑖𝑗 − 𝛾𝑡 𝑣𝑡𝑖𝑗 ) Equation3-3

Where, the first item is the particle normal force in which kn is the normal elastic
coefficient; γn is the viscoelastic damping coefficient; δn is the particle overlap; and νn is
the particle relative velocity in the normal direction. The second item is the particle
tangential force. The associated symbols have similar meanings as the symbols of the
normal force. The subscripted t is specific for the tangential force.

The normal particle overlap δn is given by

90
𝛿𝑛 = 𝑟 − 𝑑 Equation3-4

Where, r is the summation of the two particle radii; d is the distance of the two particle
centres.

The elastic coefficient for the normal contact kn is expressed as

𝑘𝑛 = 4
3
𝐸∗ √𝑅∗ 𝛿𝑛 Equation3-5

Where E* is the equivalent Young’s modulus; R* is the equivalent particle radius.

1 (1−𝑣1 2 ) (1−𝑣 2 )
𝐸∗
= 𝐸1
+ 𝐸2 Equation3-6
2

1
𝑅∗
= 𝑅1 + 𝑅1 Equation3-7
1 2

Where v1 and v2 are the Poisson ratios; R1 and R2 are the radii of the two particles.

The normal viscoelastic damping coefficient γn can be derived by

γn = −2√5
6
β√m∗ Sn ≥ 0 Equation3-8

Where β is a constant. m* is the equivalent mass; Sn is the normal stiffness.

𝛽 = 𝑙𝑛(𝑒)/𝑠𝑞𝑟𝑡(𝑙𝑛(𝑒) + 𝜋2 ) Equation3-9

91
𝑆𝑛 = 2𝐸∗ √𝑅∗ 𝛿𝑛 Equation3-10

1
𝑚∗
= 𝑚1 + 𝑚1 Equation3-11
1 2

Where, m1 and m2 are the particle masses.

It is worth noting that the tangential overlap of the two particles cannot be determined
directly. It is technically calculated by integrating the relative particle velocity in the
tangential direction over the duration of time. Due to this, the tangential force is
embedded into a history effect. In other words, the tangential force, to some extent is
determined based on the shear history. Liggghts provides a function to include or exclude
the shear history for the tangential force calculation. If the shear history is not considered,
the shear force (the spring force component) will be subtracted.

3.2.2.2 Rolling friction model


Material particles move, rotate and flow randomly during the process of bulk material
handling. Apart from the normal and tangential forces, particles may also experience
additional torque during rotating. For this reason, the rolling friction is incorporated into
the DEM models to describe the particle rotations and calculate the associated torque.
Moreover, the rolling friction is used to account for the effect of particle shapes [56] as
the modelled spheres in the DEM do not correspond to the real particle shapes. For
instance, irregular shape particles can be still modelled as spherical particles with a
comparatively higher rolling friction. This can reduce the contact points that need to
detect, thereby resulting in a shorter simulation time.

A number of different rolling friction models have been developed and incorporated into
the contact mechanics. The rolling friction model implemented in Liggghts is based on
an elastic plastic spring-dashpot (EPSD) model developed by Ai [57]. In this model, the
rolling resistance torque consists of two components resulting from a mechanical spring
and a viscous damper. The total rolling torque can be expressed as
92
𝑀𝑟 = 𝑀𝑘 𝑑
𝑟 + 𝑀𝑟 Equation3-12

where Mrk is the spring torque and can be calculated by

𝑘𝑟 = 2.25𝑘𝑛 𝜇2
𝑟𝑅
∗2 Equation3-13

∆𝑀𝑘
𝑟 = −𝑘𝑟 ∆𝜃𝑟 Equation3-14

𝑀𝑘 𝑡 𝑡
𝑟,𝑡+∆𝑡 = 𝑀𝑟,𝑡 + ∆𝑀𝑟 Equation3-15

|𝑀𝑘 𝑚
𝑟,𝑡+∆𝑡 | ≤ 𝑀𝑟 Equation3-16

𝑀𝑚 ∗
𝑟 = 𝜇𝑟 𝑅 𝐹𝑛 Equation3-17

Where kr is the rolling stiffness derived from the normal spring stiffness Sn; μr is the
coefficient of the rolling friction; R* is the particle equivalent radius. Δθr is the
incremental relative rotation between the two particles. Mrm is the full mobilisation torque
and is determined by multiplying the normal force by the rolling friction coefficient. It
caps the maximum value of the torque attributed to the spring.

The viscous damping torque Mrd is calculated by

−𝐶𝑟 𝜃′𝑟 𝑖𝑓|𝑀𝑘 𝑚


𝑟,𝑡+∆𝑡 | < 𝑀𝑟
𝑀𝑑
𝑟,𝑡+∆𝑡 = Equation3-18
{−𝑓𝐶𝑟 𝜃𝑟
′ 𝑖𝑓|𝑀𝑘 𝑚
𝑟,𝑡+∆𝑡 | = 𝑀𝑟

where θr’ is the particle angular velocity; Cr is the damping coefficient, which may be
expressed as:

𝐶𝑟 = 𝜂𝑟 𝐶𝑐𝑟𝑖𝑡
𝑟 Equation3-19

93
𝐶𝑐𝑟𝑖𝑡
𝑟 = 2√𝐼𝑟 𝑘𝑟 Equation3-20

1 1
𝐼𝑟 = ( + )−1 Equation3-21
𝐼𝑖 +𝑚𝑖 𝑟2
𝑖 𝐼𝑗 +𝑚𝑗 𝑟2
𝑗

Where Ii and Ij are the moment of inertia, while mi and mj are the masses of the particles.
If particles are under the state of full mobilisation, the damping will be disabled (f=0).

Similar to the abovementioned Ai’s EPSD model, an alternative rolling friction model
(simplified EPSD) developed by Iwashita and Oda [58] is also adopted and commonly
employed by Liggghts. In this model, the viscous damping torque Mrd is excluded. The
rolling stiffness kr is defined as

𝑘𝑟 = 𝑘𝑡 ∙ 𝑅∗2 Equation3-22

where kt is the tangential stiffness; R* is the equivalent particle radius.

Normal torsion may exist and lead to an increased amount of the rolling torque. As
default, normal torsion is excluded from the torque calculation in Liggghts. Nevertheless,
it is still possible to activate the full relative torsion.

3.2.2.3 Adhesive contact model


Due to the presence of moisture in a bulk material, additional forces may be induced to
maintain contacts. They are known as adhesive and cohesive forces in terms of particle
to boundary and particle contacts respectively. Liggghts simplifies these kinds of
attraction forces to only act in the normal direction. The simplified Johnson-Kendall-
Roberts (SJKR) model and the modified simplified JKR (MSJKR) model are commonly
used to calculate the adhesive or cohesive forces.

94
𝐹=𝑘∙𝐴 Equation3-23

Where, k is the adhesive and cohesion energy densities that need to be calibrated by
testing and defined by users. A is the contact area of particles or boundaries. For the SJKR
model, the contact area is calculated as

𝐴 = 𝜋/4 ∙ ((𝑑 − 𝑅𝑖 − 𝑅𝑗 ) ∙ (𝑑 + 𝑅𝑖 − 𝑅𝑗 ) ∙ (𝑑 − 𝑅𝑖 + 𝑅𝑗 ) ∙ (𝑑 + 𝑅𝑖 + 𝑅𝑗 ))/𝑑2

Equation3-24

For the MSJKR model, the contact area is calculated as

𝐴 = 2𝜋 ∙ 𝛿𝑛 ∙ (2𝑅∗ ) Equation3-25

The tangential force may increase as the adhesion and cohesion add additional
contributions to the normal contact force. As default, Liggghts takes this effect into
account. For specific modelling demands, the cohesive force can be also ignored, leading
to a relatively lower value when calculating the tangential force.

The bulk materials used in this study are coal and iron ore with minimal moisture content
and therefore minimal adhesion and cohesion. The associated adhesive and cohesive
forces are therefore neglected.

DEM modelling parameters

In order to accurately describe the behaviour of a bulk material in the DEM, several
parameters are required to be defined by users, some of which are involved in the DEM
model and describe the particle contact, while other parameters, including interparticle
friction, wall friction and rolling friction are related to the material inherent properties.
The material properties can be influenced by different conditions including the particle

95
size distribution, particle shapes and moisture and should be calibrated when used in
DEM modelling

3.2.3.1 Contact stiffness


The stiffness of contacts is referred to as the normal and tangential stiffness associated
with the particle contact model. Although some research outcomes have been published
by, Katterhagen et al.[59, 60], Ji et al [61], it is difficult to determine the actual particle
stiffness using DEM calibrations. Generally, the lower the stiffness values, the lager the
critical timestep and the shorter the calculation time. In view of practical applications,
Gröger [62] recommended that the contact stiffness should be set as large as the value
allowed by the DEM. Based on the research conducted by Wensrich [63], Rahman et al
[64]and Ilic[39], the contact stiffness used in the subsequent DEM modelling is chosen
to be 1e7.

3.2.3.2 Coefficient of friction


Static friction is referred to as the friction at which particles are going to slide; while
dynamic friction is for particles during sliding. In general, the dynamic friction is smaller
than the static friction. Liggghts assumes that the static friction is equal to the dynamic
friction. Therefore, the Coulomb friction involved in the DEM modelling can be classified
as the interparticle friction and wall (particle to boundaries) friction. These coefficients
need to be calibrated for different bulk materials.

3.2.3.3 Poisson’s ratio


The Poisson’s ratio is known as the ratio of elastic transverse strain to axial strain. For
common materials, Poisson’s ratio is usually in the range of 0~0.5. According to the
research done by Zhou et al [65-68], Li et al [69], Wensrich [56] and Ilic [39], Poisson’s
ratio is set as 0.3 for this study.

96
3.2.3.4 Coefficient of restitution
The restitution coefficient for a collision can be defined by the particle velocity before
contact vbef over the particle velocity after contact vaft.

𝑒 = 𝑣𝑏𝑒𝑓𝑜𝑟𝑒 /𝑣𝑎𝑓𝑡𝑒𝑟 Equation3-26

The restitution coefficient can be measured by dropping a particle onto another one.
However, it has been proven to be difficult to conduct this kind of tests in reality [61, 70].
Alternatively, an approximation is made by dropping a particle onto a wall. In this study,
a constant value of 0.2 is selected for the coefficient of restitution. The influence of the
coefficient of restitution in DEM simulation is beyond the scope of this thesis.

3.2.3.5 Timestep
For each timestep, the contact forces used to calculate the particle accelerations are
assumed to be constant. Particle positions and velocities are updated based on the
obtained accelerations and the duration of the timestep. If the timestep is large enough,
the DEM tends to overestimate the overlap of contact, resulting in a considerable
overestimate of contact forces. In the following timestep, the particles may scatter
significantly like an explosion. On other extremes, if the timestep is defined as very small
values, the simulation cycles and time will increase correspondingly. Therefore, there
should be a balance (critical timestep) that can describe the particle movement accurately
within an acceptable simulation time. The timestep defined in DEM modelling should not
exceed the critical timestep.

When contact occurs between particles, up to 70% energy consumption is attributed to


the Rayleigh wave [71]. The critical timestep is determined by the propagation velocity
of the Rayleigh wave. It is given by

97
𝑅 𝜌
∆𝑡𝑐𝑟𝑖𝑡 = 𝜋[0.163𝑣+0.877 √𝐺] Equation3-27

Where, R is the particle radius; v is the Poisson’s ratio; ρ represents the particle density;
G stands for the particle shear modulus.

In summary, a range of parameters for the DEM contact models is assumed based on our
previous research outcomes. As shown in Table 3-1, these parameters have been proven
to be suitable for coal and iron ore particles in DEM modelling. Some other parameters
regarding the properties of the specific bulk material are obtained by tests and
calibrations. This will be presented in the following section.

Table 3-1 DEM parameters used in Liggghts


Key parameters Values
Young’s Modulus, E (N/m ) 2
1e7
2
Shear Modulus, G (N/m ) 1e7
Poisson’s Ratio, ν 0.3
Coefficient of Restitution, εres 0.2
Timestep t 5e-5

3.3 Bulk material property tests and DEM calibrations

Material properties including the characteristics and flow properties of a bulk material are
essential when simulating the behaviour of the bulk material in DEM. The characteristics
are referred to as the physical macro features of the bulk material, such as the particle size
distributions and bulk density. The flow properties including the interparticle friction,
wall friction and rolling friction are related to the micro behaviour and interaction of the
bulk material. Despite analogous visualization, the properties of different bulk materials
or even for the same kind of material can vary. Therefore, it is necessary to conduct some
tests to obtain the material properties. Moreover, these tests are simulated by the DEM
calibrations to determine the input parameters related to the material properties. This
section presents the procedures of the material property tests and DEM calibrations.

98
Characteristics of bulk material

3.3.1.1 Bulk material particle size distribution


In a belt conveyor system, particle sizes of the bulk material can have a significant
influence on the particle interactions. The Lump particles tend to move upwards to the
surface whereas fine particles normally move down to the bottom during transportation
[72]. Finer particles can also attach to the apertures of the larger particles, which makes
the interaction of those particles more complicated. For the extreme circumstance, fine
particles can be considered as bonds that increase the cohesion of particles. In this study,
coal and iron ore that are commonly handled by belt conveying systems are used. The
bulk materials are screened, limiting the particle sizes in the range of 4-11.2mm,
representing a sized material.

After the coal and iron ore samples are prepared, a rotary sample divider is used to divide
the bulk materials into small sample volumes with uniform particle size distribution, after
which the Particle Size Distribution (PSD) tests are conducted for the sub-samples. Three
sieves having the aperture sizes of 4mm, 5.6mm and 8mm are stacked together with the
biggest one at the top and smallest one at the bottom. The material sub-sample is dumped
into the top sieve. Vibrations are applied to let the finer particles pass through the bigger
aperture. Therefore, the particles can sit on different sieves depending on the particle
sizes. The material weight remaining on each sieve is measured by a scale, from which
particle size distribution can be obtained. The final results are averaged by repeated the
test for three material sub-samples. Table 3-2 and Table 3-3 show the particle size
distribution for the coal and iron ore samples respectively.

Table 3-2 Particle size distribution for coal


Sieve sizes Mass of sieve Mass of sieve Mass Retained Percentage
(mm) (g) + material (g) (g) (%)
8~11.2 425 586 161 30
5.6~8 449 620 171 36
4~5.6 445 590 145 34

99
Table 3-3 Particle size distribution for iron ore
Sieve sizes Mass of sieve Mass of sieve Mass Retained Percentage
(mm) (g) + material (g) (g) (%)
8~11.2 425 545 120 28
5.6~8 449 623 174 40
4~5.6 445 583 138 32

3.3.1.2 Particle density


The particle density can be obtained by using a replacement pycnometer which can
measure the true volume calculated by dividing the particle volume by its mass.
Depending on different measured materials, air, water and nitrogen can be used in the
pycnometer. In this research, a gas pycnometer is employed. The measured particle
densities of the coal and iron ore are 1398kg/m3 and 3511kg/m3 respectively.

3.3.1.3 Loose poured bulk density


As an assembly of individual particles, a bulk material contains voids among the particles.
These voids may shrink due to compaction, leading to an increased bulk density. The
loose poured bulk density is the bulk material density without any compaction. For this
research, the bulk density is obtained by gradually pouring a material into a 10L
measurement bucket with a known mass. Each of the materials is poured slowly along
the bucket wall to eliminate the compaction that may be caused by the material falling.
After the bucket is filled up, the mass of the loaded material is measured, based on which
the bulk density is determined. The loose poured bulk density of the coal and iron ore are
803kg/m3 and 2014kg/m3 respectively.

Flow properties of bulk material

Flow properties are of particular importance to determine the behaviour and interaction
of a bulk material during operation. To investigate the flow properties, several tests are
typically used, including the Jenike direct shear test, angle of repose test, slump plane test
and inclining wall test.

100
3.3.2.1 Jenike direct shear test
The Jenike direct shear test [73] is designed to determine the strength of a bulk material.
As shown in Figure 3-3, the apparatus consists of two circular steel cells, a normal loading
system and a shearing force device. The test involves packing a bulk material into the two
steel rings and applying a consolidation load vertically to the material as well as a shear
load horizontally to the top ring.

Figure 3-3 Jenike direct shear test [73]

Based on the Jenike direct shear test, a diagram of the normal load versus shear force can
be drawn in Figure 3-4 (a), which indicates the major and minor Mohr circles, yield locus,
the effective and kinematic angle of internal friction. Based on these variables, the flow
function can be obtained, which levels the internal strength of a bulk material.

Figure 3-4 Instantaneous yield loci and flow function [73]

For a bulk material containing mixed sizes of particles, the internal strength of the
material depends on the content of the fine particles as the shearing normally occurs
across the fine particles. However, due to the dimension of the apparatus, Jenike direct
101
shear test is only designed for bulk materials with the particle sizes under 4mm. For the
coal and iron ore materials, it is not possible to apply the Jenike direct shear test accurately
as interlocking and rotations of the large particles may occur. Instead the angle of repose
and slump plane tests are introduced to approximate the internal angle of friction.

3.3.2.2 Angle of repose test


The angle of repose of a bulk material is the angle between the horizontal base and the
slope of the pile that is formed by the material that gravitationally flows from a cylinder
or a funnel [18]. For loose granular materials, this angle has been referred to as the angle
of internal friction [74]. Even though the angle of repose causes much debate in terms of
the accurate representation, it is extensively implemented in the field of bulk material
analysis, especially for DEM calibration of material properties.

The angle of repose test can be influenced by many factors, including the particle sizes
and shapes, the volume of the testing material, and the way in which the test is conducted.
Burkalow [75] stated that the angle of repose would decrease with the increase of particle
sizes. This influence was observed to be relatively weak when compared to the influence
attributed to the particle shapes and surface characteristics [74, 75]. The angle of repose
varies inversely with the roundness of the particles and roughness of the particle surfaces.

The control volume of the tested material is another important factor. A ratio of the
apparatus dimension to the particle size is introduced to describe the control volume.
Grasselli and Herrmann [76] found that the angle of repose with a ratio more than 180
was similar to the same material angle of a free pile. Burkalow [75] conducted the angle
of repose test with a confined box and proved that the box dimension to particle size ratio
of 6 was negligible when determining the angles of repose. To achieve consistent and
accurate results, the ratio should be larger than 10:1. In view of the used material particle
sizes, the dimension of the apparatus should be at least 120mm.

102
Kalman et al [77] observed that the friction of the base surface could also affect the angle
of repose. A surface of the same material should be laid on the base for the material pile
to sit on. By doing this, the friction between the material and base would be replaced by
the friction of particles. Moreover, slumping may occur in a small portion when a material
flows out, resulting in a curved top surface and an unsymmetrical profile of the material
cone. Considering the inconsistencies in cone formation, the angle of repose should be
averaged from the four sides of the cone.

The angle of repose test is conducted by pouring a bulk material into a funnel, then raising
the funnel to let the material flow out and finally measuring the slope angle of the formed
cone, as shown in Figure 3-5 (a). Specifically, a thin layer of the bulk material is initially
laid on the horizontal ground. A cylinder having a diameter of 140mm and height 500mm
is placed directly on the layer and gradually filled up with the material. Then, the cylinder
is manually raised up at an approximate rate of 50mm/s that is low enough to maintain a
choke flow. The process is recorded by videos. By knowing the vertical displacement of
the funnel (40mm) and time (8s), the lifting speed can be maintained. Lastly, the formed
cone is recorded by a camera from two orthotropic directions. The photos are analysed,
and the angle of repose is obtained by averaging the slope angles. Figure 3-5 shows the
site tests for the coal and iron ore materials. Three tests are conducted for each of the
materials, the averaged final angles of repose are 30.4°and 30.5°for the coal and iron ore
respectively.

Figure 3-5 Angle of repose test: (a) schematic diagram; test results for (b) coal and (c) iron ore

103
3.3.2.3 Slump plane angle test
The slump plane test can be used to determine the internal shear plane angle or the angle
of internal friction of a bulk material. It involves measuring the angle of the bulk material
after slumping. Although the validity of the slump plane test for determining material
internal friction was doubted. Carrigy [74] has done some research to validate that this
angle can be referred to as the angle of initial yield for free-flowing materials. Other
research done by Ilic [39] revealed this test could be arguably used for bulk materials
under low consolidation stress. Therefore, the slump plane test should be able to provide
reliable measurement results.

In this study, the apparatus employed is a 300mm square box with transparent Perspex
sides. Initially, the bulk material is loosely filled in the box, after which one side of the
box is removed to let the material flow out. The slumping angle is measured through the
transparent side of the box after the remaining material reaches a steady state, as shown
in Figure 3-6. By averaging the results of three tests, the slump plane angles for the coal
and iron ore are 43.2°and 43.8°respectively.

Figure 3-6 Slump plane test results for (a) coal and (b) iron ore

3.3.2.4 Inclining wall friction test


The inclining wall friction test is used to determine the friction between a bulk material
and a wall lining material. The bulk material is filled in the Jenike ring placed on the
tilting plane with a wall lining material attached. A consolidation load may be applied to

104
the bulk material. The inclining wall friction test involves measuring the angle at which
the bulk material commences sliding on the tilting wall plane.

In terms of the testing procedures used in this study, the bulk material is positioned on
the upside of the plate, followed by the loading of bulk material in the Jenike ring that is
placed on the belt. During the test, the plate rotates about its central axis from a horizontal
position with a constant speed if 0.1 rad/s. A metal sensor is employed at the top of the
ring to detect the separation that indicates sliding of the ring. Once the ring starts sliding,
the test ends and the plate angle is recognised as the friction angle of the belt and bulk
material. Testing is conducted at the laboratory of TUNRA Bulk Solids, as shown in
Figure 3-7. The shear ring is made of aluminium, which is lighter than steel ones, and
greases are applied around the shear ring. Therefore, the influence of the friction between
ring and wall can be significantly reduced. The obtained wall friction angles are 30˚ for
the coal and 34˚ for the iron ore.

Figure 3-7 Apparatus for inclining wall friction test

From previous studies, the sliding friction between the bulk material and belt is defined
as the wall friction that will be used directly as obtained from the inclining wall friction
test [78, 79]. Moreover, Ilic [39] also succeeded in matching the values of the wall friction
105
obtained from the tests and DEM simulations for a variety of bulk materials, including
gravel, river sand, magnetite, coal and iron ore. Therefore, the measured wall friction for
the coal and iron ore will be used directly for the subsequent DEM calibrations and
modelling.

DEM calibration simulations

As mentioned above, necessary idealization and simplification are critical for the DEM
to minimize modelling complexity while still producing reliable results. However, the
distinctions between the DEM parameters and actual bulk material properties may lead
to modelling deviation or even failure. For this reason, DEM calibrations are performed,
which bridges the macroscopic and the microscope by selecting modelling parameters
based on a certain degree of idealization. With the calibrated parameters, the DEM can
consistently represent the realistic material behaviour.

However, due to the complexity of a bulk material, it is not possible to calibrate all
parameters involved in DEM modelling. The calibration procedures and method vary
from different research groups and simulation packages. As a consequence, there still
remains much debate on the most practical way to perform DEM calibrations.

The main focus of the calibrations in this study is on the attainment of the inter-particle
friction and rolling friction that may significantly influence the behaviour regarding
sliding, rolling and internal strength. The angle of repose test and slump plane angle test
are replicated using Liggghts. Simulation procedures are briefly presented. Results are
obtained and compared to the test results, based on which the parameters of inter-particle
friction and rolling friction are selected.

3.3.3.1 The angle of repose simulation


Corresponding to the testing, the angle of repose test is simulated in Liggghts. A cylinder
having the same diameter and height is created in Creo_Parmetric and imported into
106
Ligggts as the boundary. Material particles are generated and filled into the cylinder by
gravity. Apart from the inter-particle friction and rolling friction, the particles properties
are set according to the obtained results. For the coal material, the particle size distribution
is assigned based on Table 3-2; the particle density is 1398kg/m3; and the wall friction is
0.6. For the iron ore material, the particle size distribution is set according to Table 3-3;
the particle density is 3511kg/m3; and the wall friction is 0.7. The particles are allowed
to settle down for a while, after which the cylinder raises at a constant rate of 0.05m/s.
The material particles flow out and form a pile on the ground. Once a stationary pile is
achieved, the angle of repose can be obtained based on the recorded coordinates of the
particle on the pile surface. The whole process is shown in Figure 3-8, in which (a) is for
the time at which the cylinder starts to raise and (b) is the final state of the angle of repose.

Figure 3-8 Angle of repose calibration modelling

The calibrations involve simulating a set of the angle of repose tests in an incremental
manner by increasingly changing the values of the inter-particle friction, μp, and rolling
friction, μr. Based on the previous research [39, 56, 80], the inter-particle friction is set to
vary in the range of 0.5-0.9, whereas the rolling friction increases from 0.4 to 0.8 with an
increment of 0.1. In total, 25 simulations are performed, each of which has a different
combination of the inter-particle and rolling friction. A python script is written to realise
the increments of the parameters and automatically run the simulations in a serial manner.
Furthermore, a restart file is created at the point before lifting the cylinder, so each
simulation can start from this point with updated particle coefficients. Therefore,

107
simulation time can be reduced dramatically. The simulation programs are attached in
Appendix E. The simulation results for the coal and iron ore are presented in Figure 3-9
(a) and (b) respectively, in which the test results are indicated by the dashed horizontal
lines.

Figure 3-9 Simulation results of the angle of repose: (a) coal; (b) iron ore

The simulation results for both materials indicate similar overall trends. It is observed that
the lower inter-particle friction and rolling friction tend to produce a lower angle of
repose. Vice versa, a higher angle of repose occurs for larger friction values. The angles
vary in the range of 30°- 42°and 25°- 40°for coal and iron ore respectively. Furthermore,
it is clear that more than one potential combination of parameters inevitably exists that
produce the results corresponding to the test results. Therefore, the slump plane test is
modelled to select the best combination of the inter-particle friction and rolling friction.

3.3.3.2 Slump plane simulation


The slump plane calibrations are performed in Ligggts as well. Due to the dimension of
the box, the particle numbers are much larger than the numbers for the angle of repose
simulations, leading to excessive computation time. To reduce the simulation time, only
half of the box is simulated. The fictitious wall in the middle is assigned with the particle
properties. In such way, the friction between the particles and wall is equal to the particle
internal friction.

108
Similar to the method in modelling the angle of repose test, a box with the same
dimensions of the test apparatus is created and imported into Liggghts. The material
particles are generated and loaded into the box. Then, the left side of the box is removed,
leading to the discharge of the material. The slump plane is formed after the particles
reach a steady state. A typical image of the slump plane angle taken from the Liggghts
simulations is shown in Figure 3-10.

Figure 3-10 Slump plane angle simulation

Again, a python script is written to modify the inter-particle friction and rolling friction,
and each simulation starts from the state preserved in the restart files. The simulation
programs are attached in Appendix E. The simulation results are displayed in Figure 3-11.
The slump plane angles for the coal and iron ore vary in the range of 41.5°- 48°and 38°-
48°respectively. As exhibited, the slump plane angle increases with the increase in either
the inter-particle friction or the rolling friction. Combining the results from the angle of
repose simulations, the best simulation parameters are selected. The inter-particle friction
and rolling friction should be selected as 0.6 and 0.5 for the coal. For the iron ore, the
inter-particle friction is 0.6 and the rolling friction is 0.7.

109
Figure 3-11 Simulation results of the slump plane angle: (a) coal; (b) iron ore

3.3.3.3 Summary of DEM parameters


Based on the angle of repose and slump plane calibrations, the inter-particle friction and
rolling friction are selected for the coal and iron ore materials. The values of parameters
specified in the DEM modelling are summarized in Table 3-4, based on which the belt
conveyor DEM modelling is conducted.

Table 3-4 Specifications of the material parameters in DEM


Parameters Coal Iron ore
Inter-particle friction, μp 0.6 0.6
Rolling friction, μr 0.5 0.7
Wall friction, μw 0.6 0.7
Particle density, ρp (kg/m ) 3
1398 3511

3.4 Bulk material DEM modelling

In this section, the typical Liggghts modelling procedures are introduced. A DEM model
is developed for simulating a bulk material on a conveyor belt. The implementations of
the simulation are illustrated, and the obtained results are used for the FEM calculations
in chapter 3.

110
DEM modelling procedures

As a variety of DEM modelling packages are available, the commands and manipulations
for performing modelling can differ significantly. Some of them are incorporated with
GUIs (commercial software), while others have to use scripts (open source or self-
developed software). Regardless of the modelling programs, DEM modelling, to some
extent follows a similar process, as shown in Figure 3-12 (a).

Figure 3-12 Execution of Liggghts: (a)flow chart; (b) input file

At the outset of the DEM modelling, the simulation environment needs to initialize, in
which some basic settings including the particle and boundary types, analysing
processors, simulation domain and units, timestep and many others are defined. Then,
particles with the specified properties are generated, along with the creation of boundaries
by either modelling in the DEM (simple entities) or importing from external resources
like CAD. If required, boundaries can be assigned with motions including translations,
rotations and periodical movements. Following is the definition of the detection method,
contact models and integration algorithm.

111
With the above settings defined, the DEM implements calculation by looping every
timestep. During each timestep, particle contacts are detected; the resultant contact forces
for each particle are calculated. Before moving into the next timestep, the positions,
velocities, forces and accelerations of particles are updated. When the DEM completes
the final timestep, the simulation results of the particles and boundaries are produced.
Therefore, the DEM modelling is essentially a series of calculations combined together
to replicate a continuous process of particle movement.

For Liggghts, it performs simulations using input files that consist of specific commands.
A typical input file is shown in Figure 3-12 (b). Unlike Code_Aster command files,
Liggghts input files can be executed directly through a Linux terminal prompt (for
example, Liggghts installation directory/auot_lmp < input files directory/ input file). It is
not necessary to import meshes as separate files since they are already assigned in the
Liggghts input files.

In terms of the syntax, Liggghts input files do not follow a strict order, but the command
order can have a logical impact on the working flow of the simulation. Generally, a
command starts with the name of the command defined by the program or users, followed
by a list of arguments giving the coefficients for the command actions. The basic parsing
rules are as follow.

• Each line with any word in the input file is considered as a command by Liggghts.
These commands are case sensitive, indicating the lower case and upper case can
be different actions. All the default commands in Liggghts are in lower case; while
uppercase commands can be defined by users.
• The symbols of ‘&’ and ‘#’ have special functions in Liggghts scripts. ‘&’, most
likely, at end of lines is used as a connection for the current line and the line after.
Thus, these two lines will be joined together as one command. While Liggghts
will skip the lines starting with ‘#’ and treats them as comment lines.

112
• ‘$’ sign can be used for user-defined variables. For a single character, it can
follow immediately behind the ‘$’ sign. While curly brackets can be used to
follow a ‘$’ sign when the variables are more than one character.

Liggghts simulation implementation

The DEM modelling of the coal and iron ore are conducted with the same settings; such
as geometry, boundary conditions, contact models and so on. The parameters regarding
the material properties are subjected to the values obtained previously. For each model,
the simulation is implemented as follow.

Firstly, the simulation is initialised. ISO units are used, and all particles are modelled as
spheres. The simulation domain is defined with a dimension of 0.6×1.2×0.5m (in x, y and
z) with the two faces perpendicular to the y direction set as periodical boundaries that
allow particles moving across one end to appear at the other end. In other directions,
particles passing through the boundaries will be removed from the simulation. A small
region (0.14×1.2×0.3m) is defined as the area for inserting particles. Moreover, the
timestep is set as 5e-5s. Other basic settings are defined as shown in Figure 3-12 (b).

Next is to create the particles corresponding to the related bulk material. Two sizes of
particles: 5.6mm and 9mm (diameter) are used. According to the particle distribution, the
percentages of the larger particles are set as 66% and 68% for the coal and iron ore
respectively. Meanwhile, the coefficients of Young’s modulus, Poisson ratio, inter-
particle friction, wall friction, rolling friction and restitution are assigned with the values
obtained in section 3.3. Cohesion is ignored in this case due to the absence of moisture in
the bulk materials. Particles are created in the simulation by packing them into the
previously defined small region, as shown in Figure 3-13. Each particle has its own
number for identification, and all information belonging to this number can be recorded
and exported in Liggghts’ output files.

113
Figure 3-13 Generation of bulk material particles

To maintain the consistency among the FEM, DEM and testing, the belt mesh created in
section 3.4.1 is converted from a format of MED to STL and used as the boundary in
Liggghts. Therefore, the DEM boundary contains the identical sub-elements as the FEM
belt mesh. These sub-elements allow contact forces between the material particles and
belt to be calculated and recorded.

A specific translational velocity is assigned to the belt surface, which enables the belt
surface to move rather than the actual physical movement of the whole belt. Particles
contacting with the belt will be subjected to the motion and travel on the belt. This
essentially replicates how a belt conveyor carries a bulk material. The particles created in
the packed region are allowed to flow under gravity and settle on the belt surface for 2
seconds, after which the belt starts to move and conveys the particles. The belt speed is
set as 1m/s that is the median value of the speed range investigated in this research. Figure
3-14 shows a steady state of the particles travelling on the belt.

114
Figure 3-14 Bulk material conveyed by the belt

Then, the Hertz Mindlin model is used to determine the pairwise potential of particles
themselves and particles to boundaries. The simplified EPSD model is employed to
consider the particle rolling effects. As mentioned above, the pairwise neighbour lists for
particle contact detections are created every timestep within the distance that is the sum
of the cut-off and buffer radii. The contact forces of particles, as well as the stresses of
the boundaries, can be calculated in each timestep. By using the Velocity-Verlet
integration algorithm, the positions and velocities of particles are computed and then
updated for the next timestep.

Lastly, the obtained quantities of variables can be dumped to the output files in the desired
directory. Three types of dump files are output in the DEM modelling: the atom dump
files, boundary dump files and restart files. The atom dump files contain all the
information of particles, including the particle IDs, radius, positions, velocities and
forces. The boundary dump files record the nodal coordinates of each boundary as well
as the boundary stresses. Restart files are used to restart simulations from the point where
modelling terminates. In this DEM model, the restart files are created at the point of 5
seconds when the particles form a steady cross-sectional profile and travel constantly at
the belt speed. This reduces the simulation time because the process of generating
particles can be skipped. Furthermore, as the DEM modelling will be performed with
diverse conditions for the subsequent FEM and DEM coupling, it is necessary to output

115
restart files for continuing simulations. For every thousand timesteps, the three types of
files are generated. The duration of each simulation is set to be 9s by which time the
particles should reach a steady state condition. The simulation programs are attached in
Appendix F.

For the belt deflection modelling, the attainment of stresses acting on the belt is the main
goal. Figure 3-15 presents the stresses obtained by the developed DEM model for the coal
material. The stresses acting on the belt elements are dissolved into the stress components
in the global X, Y and Z axes, as shown in Figure 3-15 (a), (b) and (c) respectively.
Furthermore, the magnitude of each element stress is shown in Figure 3-15 (d). Similarly,
the belt element stresses resulted from the iron ore material are presented in Figure 3-16.
These stresses can be further extracted by the FEM model in chapter 2 for modelling the
belt deformation. More discussions of the DEM modelling results will be presented in
section 3.5.

Figure 3-15 Conveyor belt stresses caused by the coal (Units: Pa)

116
Figure 3-16 Conveyor belt stresses caused by the iron ore (Units: Pa)

3.5 Results and discussions

Validation of the bulk material DEM model

Simulations may produce unrealistic results due to inappropriate mathematical models,


solution approximation and modelling errors. Thus, it is always practical to check the
results and validate the modelling by comparing to reality. For the developed DEM
model, the validation will focus on the area of cross-section, bulk density and total weight
of the bulk material. These three variables are of particular importance to determine the
acting forces on the conveyor belt.

3.5.1.1 Cross section


Based on the DEM modelling, a material slice is created by cutting the bulk material with
two planes perpendicular to the Y direction. The distance of the two planes is 10mm.
Thus, this profile of the material slice can be treated as the bulk material cross-section, as
shown in Figure 3-17 (a). The algorithm for calculating the area of cross-section is
illustrated in Figure 3-17 (b), in which the cross-section is divided by a number of

117
subsections with a width of Δl. The height of each subsection is determined by the most
upper particle that can be detected by simply comparing the Z coordinates of the particles
within this region. If the vertical distance between the highest particle and the belt surface
is Hn, then the corresponding height is the sum of the distance Hn and the particle radius
Rp. By reducing the Δl to a small value, the cross-section area can be obtained by
integrating the areas of all the subsections.

Figure 3-17 Algorithm of cross section calculation

The calculation of the area of the cross-section is implemented by a Python script. First,
the coordinates of the particle within the bulk slice are extracted from the output atom
file. Then, the highest particles in the subsections are detected. The width of the
subsections Δl is set to be 9mm that is equal to the largest particle diameter. Finally, the
area of the cross-section is calculated by summing the areas of the sub sections. For the
coal and iron ore materials, the cross-sectional areas are similar and equal to 0.034m3
which is approximately in line with the theoretical calculation of cross-sectional area
(0.035m3) based on Robert’s model [81]. The material surcharge angle is assumed to be
13°in the theoretical calculations.

Furthermore, the simulated bulk material cross sections are compared to the material
profiles in the tests, as shown in Figure 3-18. The top surfaces of the cross-section match
up precisely. Minor differences are exhibited around the troughed surface due to the photo
angle. It is impossible to image the real material cross-section during testing as some
particles are sitting on the belt in front of the actual cross-section. Overall, the

118
comparisons indicate good correlations of the cross-sectional profiles for both the coal
and iron ore materials.

Figure 3-18 Comparison of the bulk material cross sections form the simulation and experiment: (a) coal;
(b) iron ore

3.5.1.2 Total weight


The total weight is the weight of the bulk material within a length of one idler spacing. In
terms of the simulations, the total weight is calculated by summing the weight of each
particle. For the coal DEM modelling, the number of particles is 125686, in which the
large particles are 40040 and the small particles are 85646. Therefore, the total weight of
the coal material is 32.4kg, which is close to the material weight used in experiment
(35.6kg). For the iron ore DEM modelling, the number of particles on a 1.2m length belt
is 128973, in which the large particles are 43666 and the small particles are 85307. Thus,
the total weight of the iron ore material is 85.75kg, showing good agreement with
experimental value (85.2kg).

3.5.1.3 Bulk material density


The bulk density of belt conveyor systems is referred to as the loose poured bulk density
due to the relatively low compaction. It can be determined based on the total weight and
the volume of the bulk material. The volume can be calculated by timing the area of the

119
cross-section and the length of the idler spacing. The bulk densities of the coal and iron
obtained from the modelling are 774kg/m3 and 2050kg/m3 that correspond to the weights
of 803kg/m3 and 2014kg/m3 measured in the tests.

To sum up, the modelling and testing comparisons of the bulk material cross section, total
weight and density show good agreement, thereby validating the developed DEM model.
Therefore, the obtained material acting forces can be further used for the FEM analysis.

DEM modelling results

Liggghts exports the simulation data into binary files. However, it does not provide a
Graphical User Interface (GUI) for result visualizations. For post-processing, all the
output data files, as a series of simulation states are imported into Paraview and joined
together as an animation that presents the whole process of the simulation. By adjusting
the visualisation settings, it is possible to see the simulation details recorded in the output
files with precision. Each element (nodes, surfaces and volumes, etc), variable (Vx, Vy,
Vz, Fx, Fy, Fz, etc) and the associated quantity can be selected and displayed separately.

However, Paraview is not able to directly read the output atom files that in a format of
Liggghts. These files need to be converted into one of the formats that are supported by
Paraview. This can be done using a python wrapped application called Pizza available on
the Liggghts website. Alternatively, a plugin named Liggghts reader can be incorporated
into Paraview and read the atom files without any further processing of binary data. Thus,
it is not necessary to convert the format of results for each individual simulation.

3.5.2.1 Material acting forces versus time


For each material, the summation of the forces acting on the belt within one idler pitch is
obtained from the DEM modelling. The resultant forces are resolved into the components
in the global directions (Fx, Fy and Fz). The relationship of the force components versus
simulation time is presented in Figure 3-19 and Figure 3-20 in which the vertical
120
coordinate is the magnitudes of the force components, whereas the horizontal coordinate
is the simulation time.

Figure 3-19 Material forces acting on the belt versus time - coal

As shown in Figure 3-19, the total Fx and Fy of the coal fluctuate with the time,
nevertheless are neglectable compared to the force component in the vertical direction
(Fz). From the time 5s to 5.5s, the Fz increases from 319.4N to 331.7N and then remains
consistent for the rest of simulation duration (5.5s- 9s).

Figure 3-20 Material forces acting on the belt versus time – iron ore

121
Similarly, the magnitude of the vertical acting force (Fz) is significantly larger than those
of the Fx and Fy, as shown in Figure 3-20 for the iron ore. Therefore, the Fx and Fy are
ignored, and the total acting force is averaged 876.3N. Also, a similar increase is observed
from 5s to 5.5s, which is due to the loss of some tiny information of the previous timestep
when reading the restart files at t=5s.

3.5.2.2 Force distributions on idler rolls


The force distribution on the idler rolls can be obtained by summing the normal acting
forces based on the transverse belt positions. The belt is divided transversely into 12
sections with a width of 50mm. Figure 3-21 presents the force distribution of the coal
material, in which the vertical coordinate is the normal force acting on the idler rolls,
while the horizontal axis stands for the position on the idler rolls corresponding to the belt
location. The normal forces exerting on the centre and side idler rolls are coloured by blue
and orange respectively.

Figure 3-21 Normal force distribution on the idler roll - coal

It is observed that the forces acting on the centre idlers are higher than the forces of the
side idler rolls. The centre normal force increases and reaches the peak normal force at
the junction of the idler rolls. The decrease of the side normal force from the idler junction
to the belt edges is also evident.
122
Figure 3-22 Normal force distribution on the idler roll – iron ore

For the iron ore material, an almost identical trend of the force distribution is acquired in
Figure 3-22. The peak force is observed to occur at the idler junction and a drop in normal
force on the centre idler roll is also observed. The normal force on the side idler rolls
diminishes gradually to zero as approaching the belt edges.

According to Figure 3-21and Figure 3-22, the summation of the normal forces on the
centre and side idler rolls and total normal force can be calculated. The obtained results
are compared to the values measured by Ilic using a TekScanTM sensor which is a flexible
sensor pad used for pressure measurements. As shown in Figure 3-23 (a), the TekScanTM
is firmly attached to the upperside of the belt, after which the bulk material is loaded. The
pressure acting on the belt is recorded during operating. Typical results obtained from the
TekScanTM are presented in Figure 3-23 (b). Table 6-2 shows the comparisons, indicating
good correlations between the simulations and experiments, with only 8.4% and 1.6%
deviation for the coal and iron ore respectively.

123
Figure 3-23 Measurements of the belt load using TeckScanTM [39]: (a) testing rig setup; (b) typical
pressure results

Table 3-5 Comparisons between the modelling and experiments of the normal force on the idler rolls
Normal force on Coal Iron ore
(N) modelling testing modelling testing
Centre idler roll -285 286 754 693
Side idler roll(each) 55 73 152 191
Total 395 432 1058 1075

3.6 Summary

This chapter presents the theoretical fundamentals of the DEM modelling and reviews the
key parameters related to the DEM contact models and bulk material properties. The
angle of repose test and slump plane test are conducted. The DEM calibrations are
performed for determining the inter-particle friction and rolling friction for the used coal
and iron ore materials. Furthermore, a DEM model is developed using the open source
software Liggghts for simulating bulk materials carried on a conveyor belt. Simulation
methods and procedures are explained in detail, from which the results of the forces acting
on the belt are presented and discussed. Simple comparisons of the modelling and testing
results regarding the material cross-section, weight, bulk density are made, which indicate
the validation of the developed DEM model. The obtained material acting forces are
further used for the FEM model in Chapter 2 and 4.

124
CHAPTER 4: COUPLED FEM AND DEM MODELLING

4.1 Introduction

Numerical simulations are becoming more viable as computational power keeps


improving. It gradually takes the place of traditional theoretical analysis methods,
providing an easier and faster solution with relatively low cost. As mentioned previously,
the FEM originally based on the continuum theory and the DEM designed for modelling
particulate materials are the most common methods used in the bulk handling field.
Simple engineering problems can be simulated by using either the FEM or the DEM. In
chapter 2, the deflection of the conveyor belt can be modelled by the FEM with the known
external forces from the bulk material. Furthermore, the behaviour of the bulk material
and the resultant acting forces on the conveyor belt can be simulated using the DEM in
chapter 3. However, the interactions of the belts and bulk materials are not considered as
the FEM and DEM do not communicate with each other. In other words, the FEM and
DEM model the problems in separate regions and fail to provide the information at their
interface.

It is challenging to investigate belt deflection with the consideration of the associated


interactions under dynamic conditions. The belt deflection occurs when transporting the
bulk material through successive idler sets. While the belt weight and the loads resulting
from the bulk material determine the belt deflection, the interaction at the belt and
material interface can also have significant influences. Complexity is increased due to the
mutually interactive process where the belt deflection determines the material pressure
distribution which, in turn, affects how the belt deflects. Therefore, the conveyed bulk
material is agitated, and the belt profile fluctuates during the whole process. In addition,
the dynamic belt deflection can be affected by many other factors, including the properties
of the belt and bulk material, configuration of the idler sets, trough angle, idler spacing,
belt inclination, belt tension and the belt velocity, all of which make the belt deflection
more complicated.

125
For modelling the dynamic process of a conveyor belt carrying the bulk material, neither
the FEM nor the DEM is capable independently as the system involves both continuum
and discrete components. The coupling of the FEM and DEM should be employed, which
can take advantages of both numerical methods and mutually compensate for their
limitations.

This chapter presents the development of a coupled FEM and DEM model using the open
source software-Code_Aster and Liggghts. To achieve this, a suitable coupling strategy
is selected. Special efforts are made to develop the methods for the implementation of
data exchange, initialization of simulation iterations and continuation of the modelling.
Furthermore, an interface is programmed by Python to execute the coupling and control
the simulation workflow.

To investigate the dynamic belt deflection, a suite of simulations is performed for two
kinds of belts loaded by the coal and iron ore materials. Sensitivity analysis is also
conducted by varying the belt tension and velocity. Modelling results including the
longitudinal and transverse belt deflection as well as the forces resulting from the bulk
material are presented and discussed.

4.2 FEM and DEM coupling

Based on the basic principles of how the FEM and DEM are coupled, the coupling
strategies can be concluded as surface coupling, volume coupling, multiscale coupling
and contact coupling [82]. An overview of these coupling strategies is presented, from
which the appropriate coupling strategy for modelling belt conveyors is chosen. In terms
of the communication between the FEM and DEM, different methods depending on how
the FEM and DEM data is exchanged are discussed.

126
Coupling strategies

4.2.1.1 Surface coupling


Surface coupling is the most straightforward coupling method that subdivides the
problem into two separate domains and performs simulations by suitable methods in each
domain independently. In the region where particles and finite elements contact, an
interface is introduced in order to implement the exchange of data including forces and
deformation. The coupling process is shown in Figure 4-1. In terms of the data exchange,
the deformed geometries obtained from the FEM are imported into the DEM and used as
rigid boundaries. On the other hand, the forces acting on the particles and imported
boundaries are calculated in the DEM and in turn used by the FEM as external forces on
the finite elements. The simulation calculations will continue based on the new boundary
conditions and loads after the exchange is completed. Generally, the data exchange is in
an iterative manner that involves a series of steps as both the geometries and reacting
forces vary by time. The coupling will terminate when a convergent solution is obtained.

Figure 4-1 The principle of surface coupling [82]

4.2.1.2 Volume coupling


Volume coupling is implemented by assuming a transition zone resulting from the overlap
of the two subdomains. Based on the enforcement of compatibility conditions, volume
coupling can be classified into strong form and weak form of coupling. Figure 4-2 (a) and
(b) indicate the basic forms for strong volume coupling and weak volume coupling
respectively. While the strong coupling basically fixes the particles within the transition
zone to the finite elements by using either master-slave links or hanging nodes methods.
127
The weak coupling, known as the Arlequin method, is carried out in the transition zone
by integrating the contributions from both the FEM and DEM simulations. Two
weighting parameters, varying from 0 to 1, are used in order to value the influence of the
FEM and DEM contributions to the transition zone. Therefore, the transition zone is
theoretically independent on the two domains.

Figure 4-2 The principle of volume coupling [82]: (a) strong form; (b) week form

The volume coupling method is typically applied to the problems where fracture occurs
in a specific region of a part. The whole structure is modelled by the FEM with the small
potential cracked region being modelled by a volume of particles with predetermined
bonds using the DEM. The volume of particles enables more detail including crack
initiation and propagation to be captured, that is not possible by using the FEM alone.

4.2.1.3 Multiscale coupling


To extend the limit of the DEM when modelling a system with a large number of particles,
multiscale coupling is proposed, in which the bulk material of less interest is replaced by
a continuum media corresponding to the average particle physics. The continuum media
is modelled using the FEM in the macro scale. Meanwhile, the DEM models an assembly
of particles at each Gauss integration point of the FEM mesh in the micro scale. The DEM
assembly is known as the representative volume element (RVE). Figure 4-3 shows the
process of the multiscale coupling. The strain in the macro scale is transferred to RVEs
in the micro scale and is subsequently used as boundary conditions in the DEM to describe
the behaviour of the RVEs, from which the constitutive relation can be derived. The

128
constitutive relation consists of the stress and stiffness at each Gauss integration point and
is transferred back to the FEM for solving deformation as a boundary value problem
(BVP).

Figure 4-3 The principle of multiscale coupling [82]

For multiscale coupling, it is not necessary to provide any explicit expression of the
constitutive laws for the FEM calculations as the stress and stiffness are directly derived
from the RVEs in the micro scale. Furthermore, by setting appropriate characteristics for
the RVEs, such as nonlinear behaviour, multiscale coupling can be more effective for
modelling some certain problems. Thus, the multiscale coupling builds the bridge cross
the microscale information and the macroscale response, thereby being suitable for
handling cross-scale granular materials.

4.2.1.4 Contact coupling


As shown in Figure 4-4, some particles are made by very soft material that leads to
substantial deformation under contact. For a collection of a large number of soft particles,
the deformation of individual particles could significantly influence the way that the
particles move [83]. However, the DEM modelling considers particles as rigorously rigid
bodies and overlooks the particle deformation even though it might be extensive.
Meanwhile, the FEM modelling employs indirect element models instead of the particles
themselves for analysis, thereby being unable to simulate the behaviour of the particles.
129
These shortcomings lead to the development of contact coupling that utilises the FEM to
model the deformation of each individual particle and applies the DEM to govern the
entire assembly of the particles. The contact detection algorithm is borrowed from the
DEM and used for detecting the contacts of each finite element. Therefore, contact
coupling can be considered as a FEM approach combined with the DEM contact detection
algorithm and therefore is essentially opposite to multiscale coupling.

Figure 4-4 Deformation of soft particles due to contact [83]

Selection of coupling strategy

For this research the critical point of simulating the dynamic belt deflection is to capture
the nature and behaviour of the belt and the bulk material as well as the interaction
between them. In view of the fundamental principles of the FEM and DEM coupling
strategies, the surface coupling is used to combine the FEM and DEM. Therefore, the belt
and bulk material are modelled by the FEM and DEM respectively in their own
environment. The interaction can be retrieved by the communication between the two
programs when exchanging the modelling data.

Research has already been done in terms of adopting the FEM and DEM surface coupling
to investigate diverse engineering problems. A typical application is the evaluation of the
tractive performance of a vehicle tyre running over a granular terrain. Michael [48]
developed a coupled FEM and DEM model using the Fortune language, in which the tyre
comes into contact with the soil due to the weight; the driving force allows the tyre to roll

130
over the soil, leading to the sweep-away of the particles and the deformation of the tread
on the tyre. His research work successfully described the interaction between the tire and
granular material. However, the main drawback is that the tyre tread was analysed by a
linear elastic solver in the FEM, which may lead to errors when used for large deformation
analysis. Moreover, the calculation ability and functions of the coupled model are limited
due to the self-programmed FEM and DEM.

Another use of the surface coupling is documented by Villard [84]. He used the surface
coupling to improve the behaviour of geosynthetic sheets used for reinforcement of earth
structures for railways and roads. The behaviour of the granular soil and geosynthetic
sheet was considered in the DEM and FEM separately which were combined afterwards
to produce the results. Comparisons have been conducted, which showed good agreement
between the simulations and the theoretical analysis.

4.3 One-way FEM-DEM modelling

In terms of the surface coupling, it is inevitable to transfer the simulation data between
the FEM and DEM. This process is referred to as the data exchange or coupling
communication that can be one-way (unidirectional) and two-way (bidirectional). One-
way coupling means the simulation data obtained from the DEM would be transferred
into the FEM unidirectionally. It is not necessary to exchange the simulation data
mutually as the negligible deformation of parts would not affect the boundary conditions
in the DEM significantly. Therefore, coupling iterations would not be involved in the
whole simulation process. For example, if a transfer chute has the dimension of 10m, the
deformation of 10mm on the wall would not be significant for the particle modelling in
the DEM. As the variations of boundary conditions have minimum effect on the
subsequent calculations, one-way coupling should be sufficient to produce satisfying
results in this case. A number of researchers have applied the one-way coupling for a
wide range of applications, including shot peening [83], roll compaction process [85] and
many others.

131
At the first stage of this research, the author developed a one-way the FEM and DEM
coupled model using the commercial software Strand7 and Rocky DEM, as documented
in [43]. For the sake of reducing the computational time, only one half of the belt is
modelled. The coupling involved exporting the force data obtained from Rocky and
transferring it into Strand7 to calculate the belt deflection.

DEM modelling

To analyse the load resulting from the bulk solid, a DEM model that was developed by
Ilic [39] is used. The validation of the DEM model in predicting material loads has been
proven by comparing to experimental measurements. The DEM model consists of a belt
section that is divided into 28 independent boundaries, each of which has a width of
10mm and a length of 50mm. As the belt travelled across each idler set, the cross-section
of the belt conforms from an idler trough shape to a predetermined curved profile at the
maximum belt sag point, as shown in Figure 4-5. The movement of the belt is represented
by the collective profile of the boundaries that are assigned with translational and
rotational motion individually.

Figure 4-5 DEM model for calculating the bulk material loads based on Rocky [39]

Bulk material particles are generated above the belt and loaded by gravity. Extra particles
are removed by a fictitious scrape boundary, providing the same top surface for the belt
fully loaded profile. Several fictitious walls are used to hold particles on the belt
consistently. After the modelling starts, the particle forces acting on the belt section are
recorded by the 28 boundaries. With the location of each boundary known, the pressure
distributions on the belt can then be derived.

132
FEM modelling

In an extension to Ilic’s model the belt is modelled in Strand7 using uniform Quad4 plate
elements being 25mm in length and 20mm in width. The dimension of the belt is identical
to the belt slice and the configuration of the idler sets corresponds to the belt trough profile
in the DEM. As shown in Figure 4-6, the belt is initially placed at a height of 500 mm to
the central idler. The belt and idler contacts are essentially modelled as a collection of
point contacts. The idler rolls are replaced by a series of potential nodes that may contact
the belt. Master-slave links and compressible zero gap beams are created to link the
potential contact nodes to the nodes on the belt [41]. The master-slave links force these
nodes to share the same degrees of freedom, including displacements. While the zero gap
beams provide stiffness only when they come into contact, ensuring the belt can be
supported by the idler sets rather than penetrating them. Therefore, the belt tends to slide
in and conform to the trough profile when contacting the idler sets.

Figure 4-6 Point contacts between the belt and idlers

Three types of loads, including the self-weight of the belt, the pre-tension and the forces
due to the bulk material are assigned to the model. The belt self-weight is applied by
defining an acceleration of 9.81m/s in the reverse global Z direction as the gravity. The
pre-tension is defined as the edge pressure and acts on the end of the belt. The bulk
material loads are assigned manually to the belt elements. The obtained pressure is
applied correspondingly to the elements with the same transverse locations of the belt

133
boundaries in the DEM. A non-linear static analysis is employed to take into account the
large displacement of the belt. An example of the modelled belt deflection is displayed in
Figure 4-7. The modelling result is for a 6mm belt with coal sample operating at a belt
speed of 1m/s and tension of 5kN.

Figure 4-7 An example of the belt deflection with the coal material (idler spacing = 1200mm; belt
thickness = 6mm; belt tension = 5kN and belt speed = 1 m/s)

Disadvantages

There are several disadvantages associated with the one-way coupling model. In the
DEM, the belt boundaries change their translational and rotational velocities
instantaneously at the points of the idler trough and the maximum belt sag profile, which
is not coincident with the real belt motion as the acceleration is not considered.
Furthermore, the force data transformation from the DEM to the FEM is conducted
manually. This process will become extremely difficult if refined meshes are used. A new
method should be developed to automatically exchange and assign the data.

Most importantly, this model is a one-way coupling that does not transfer the FEM mesh
information back to the DEM. The force variation resulting from the belt deformation is
overlooked. Due to the relatively low belt stiffness, the deformation of the conveyor belt
is comparatively large with respect to its dimension. The substantial belt deformation will
have significant influences on the boundary conditions in the DEM. To model the

134
dynamic belt deflection, it is necessary to conduct the two-way coupling in which the
simulation data from both the FEM and DEM can be exchanged and the boundary
conditions in each simulation can be updated with time. This enables the belt and material
interactions to be comprehensively simulated. The modelling will be conducted in an
iterative manner until both simulations end up at a stable state.

4.4 Two-way FEM-DEM modelling

The two-way coupling exchanges the modelling data between the FEM and DEM
mutually. If the deformation leads to a dramatic variation of the boundary conditions in
the DEM, the particles will interact accordingly, resulting in different acting forces. In
such a circumstance, two-way coupling will be employed. The DEM data will be
transferred back to the FEM for further calculation. Compared to one-way coupling, the
two-way coupling can achieve higher accuracy but, on the other hand, is more
computationally intensive. In this study, the two-way coupling is more suitable as the
relatively large belt deformation occurs.

The two-way coupled FEM and DEM modelling for the dynamic belt deflection is
implemented using the open source software Code_Aster and Liggghts. Different from
commercial software, the open source software offers access to the source codes and the
flexibility to adapt simulations specifically for different requirements at the parameter
level. The developed model is based on the surface coupling which is achieved using
Python programming. The implementation of the two-way coupled modelling is
presented below.

Coupling scheme

Similar to the one-way coupling, the two-way coupling is also based on the surface
coupling, in which the FEM (Code_Aster) is utilised to calculate the belt deformation and
the DEM (Liggghts) is used to determine the loads from the bulk material. As integral
parts of the coupling, the FEM and DEM models are developed and explained in chapter

135
2 and chapter 3 respectively. Again, the coupling is implemented iteratively. For each
iteration, two types of data are exchanged: the deformed belt geometry calculated by the
FEM is used as the updated boundary condition in the DEM, while the bulk material loads
on the belt obtained from the DEM are the input for the FEM. The main challenge is how
to create the links between the two independent models. Rather than wrapping the two
simulation codes at a source level, a coupling interface is programmed by Python,
enabling the FEM and DEM to process the analysis independently and the simulation data
to be exchanged. The scheme of the FEM and DEM coupling is illustrated in Figure 4-8.

Figure 4-8 The FEM-DEM coupling scheme based on a Python programmed interface

Coupling procedures

Based on the FEM and DEM coupling scheme, the flow chart of a typical coupling
iteration is proposed and shown in Figure 4-9. A single iteration of coupling starts with
the DEM simulation. If it is the first iteration, the undeformed belt mesh will be utilized
as the boundary conditions. Otherwise, the belt boundary will be updated according to
the deformed mesh calculated by the FEM in the previous iteration. Then, the DEM
modelling is performed for the prescribed numbers of the DEM timesteps. The obtained
results of bulk material loads are averaged and transferred into the FEM via the coupling
interface. From this point, the DEM pauses and waits for the results from the FEM. For
the FEM simulation, the belt is firstly initialized, which restores the initial states of the

136
belt including the resulted stresses and displacement from the previous iteration. Then,
the loading conditions are renewed based on the DEM calculations, after which the FEM
analysis is conducted. The duration of the FEM modelling is defined as the FEM
timestep. A convergent check is introduced to indicate the variation of the belt deflection.
If the belt profile still changes to a large extent, the FEM results will be transferred back
to the DEM, and the coupling continues. If the belt deflection varies negligibly (≤ 0.5%)
with an increased iteration, the coupling will terminate, and the deformed belt mesh will
be output as the final results of the dynamic belt deflection.

Figure 4-9 The flow chart of a typical FEM-DEM coupling iteration

The two-way coupling of the FEM and DEM for dynamic belt deflection is essentially
based on the developed FEM and DEM model illustrated in chapter 2 and 3. For the belt
FEM modelling, Code_Aster reads either the undeformed initial belt mesh for the first
iteration or the deformed mesh from the previous calculation, based on which the finite
elements are created. The belt material is defined and assigned to the model according to
the belt properties presented in Table 2-2. Meanwhile, the mesh information is extracted
137
to compute the centroid corresponding to each finite element, followed by the assignment
of the bulk material loads using the matching and mapping method in section 4.4.3.1.
Furthermore, the belt pre-tension and self-weight are defined accordingly. The boundary
conditions are applied correspondingly. Lastly, the non-linear analysis solves the model
by dividing the external forces incrementally and applying them in the sequence of the
belt pre-tension, self-weight and bulk material loads. The FEM analysis ends up with the
solution of the deformed belt profile that is used subsequently for the DEM modelling.

In terms of the DEM modelling, the simulation restarts from the state that the bulk
material is loaded with a full burden profile and travelling at the speed that corresponds
to the belt boundary. The properties of the bulk material are retrieved, and the parameters
are summarized in Table 3-4. Then, the belt boundary is replaced by the newly calculated
geometry from the FEM. The variation of the belt profile induces the belt and material
interacting differently and leads to the change of the contact forces. Moreover, the
periodic boundaries are introduced at both ends of the belt to ensure a continuous
conveying process where particles that leave the far belt end will be automatically
reinserted from the other end. The DEM simulation is conducted for a number of
timesteps until the particles are settled and conveyed stably on the belt. The contact forces
acting on the belt are recalculated and exported for the following FEM calculation. The
particle information including the positions, velocities and overlaps is stored as a new
restart file for the next iteration.

Figure 4-10 illustrates the timeline of the coupling process that involves a series of
iterations between the FEM and DEM modelling [38]. The data of the bulk material loads,
and belt mesh used for exchange is in the format of VTK and STL respectively. For each
iteration, the DEM timestep ΔtDEM is dramatically smaller than the FEM timestep ΔtFEM.
Thus, the DEM will run for a certain number of timesteps, while the FEM simulation will
only be performed once. In this study, the DEM timestep ΔtDEM is set as 5e-5s, whereas
the FEM timestep ΔtFEM is 0.25s. This means the FEM timestep ΔtFEM is integrated by
five thousand of the DEM timesteps ΔtDEM. The FEM timestep is also known as the
coupling iteration.

138
Figure 4-10 The FEM-DEM coupling timeline [38]

Data exchange

Successful data exchange is essential to couple the FEM and DEM modelling. It involves
mutually extracting and assigning the FEM and DEM simulation data - the bulk material
loads and the belt mesh. With the assistance of Python programming, this process is
implemented automatically without the input of users.

4.4.3.1 Assignment of the bulk material loads in the FEM


For the FEM program, the bulk material loads are required to be assigned to the belt.
Liggghts outputs the VTK files that contain the forces (pressure) and nodal coordinates
of the belt elements with respect to the global X, Y, Z directions. For a single belt element,
the counterpart in Code_Aster is detected based on its spatial position, and the related
pressure is assigned to the element. The data exchange of the material loads is completed
by looping all the belt elements and mapping the pressure correspondingly.

However, this load assignment method is only feasible for the first iteration in which both
the FEM and DEM have the initial belt mesh without deformation. With the modelling
proceeding, the belt mesh in the DEM is updated and the nodal displacement is applied
to the belt mesh, leading to the deviations of the nodal coordinates between the FEM and
DEM. To overcome this, a new method is employed based on the belt element
identifications (IDs). Although the belt element IDs are different in the FEM and DEM,
139
the connections that link the FEM element’s ID to the corresponding ones in the DEM
can be created after the elements are matched in the first iteration. Therefore, for the
following iterations, the forces acting on the DEM belt elements can be assigned to the
correct FEM elements via these ID connections.

As mentioned previously, the force data of the belt elements is exchanged every five
thousand DEM timesteps. This is due to the fact that the bulk material may agitate
immediately after the belt geometry is updated, as shown in Figure 4-11. At the beginning
of the iteration, the belt geometry is updated with larger deformation. At t=0.02s, the
material particles contact with the belt surface around the belt ends where less belt sag
occurs, as shown in Figure 4-11 (a). The material pressure concentrates in the middle of
the belt at t=0.04s when all particles drop down and impact on the belt. From this point
on, the material particles are, to a very slight extent bouncing on the belt, and the loads
shift to the belt ends at t=0.06s. A relatively stable state of the bulk material is eventually
achieved at t=0.08s, as shown in Figure 4-11 (d).

Figure 4-11 The variation of the coal material pressure distribution after the update of the belt geometry
with larger belt sag for the current iteration (Units: Pa)

In contrast, the process of the belt and material interaction can be reversed if the updated
belt geometry has lower deflection compared to the previous iteration. As shown in Figure
4-12 (a) for t=0.02s after the belt geometry is updated, the material pressure exerting on

140
the middle of the belt increases as the particles in these areas instantaneously experience
more overlap with the belt. At the next moment (t=0.04s), the particles move upwards (Z-
direction) due to the reactive forces, leading to less pressure acting on the belt side
sections. The material particles become stable at t=0.06s and are conveyed stably at
t=0.08s as shown in Figure 4-12 (c) and (d) respectively.

Figure 4-12 The variation of the coal material pressure distribution after the update of the belt geometry
with lower belt sag for the current iteration

In summary, the update of the belt geometry can result in the variation of the bulk material
pressure distribution. Therefore, the bulk material load data is transferred to the FEM
after t=0.25s (five thousand DEM timesteps) which is long enough for the bulk material
to be conveyed on the belt in a stable state.

4.4.3.2 Update of the belt boundary in the DEM


In terms of the data exchange for the DEM, the deformed belt mesh obtained from the
FEM is inserted and defined as the new boundary after deleting the previous belt mesh.
This can be done by the “fix” command in the Liggghts script. However, conversions of
the belt mesh files are required as the Liggghts program can only import external
boundaries using STL files. On the other hand, Code_Aster does not provide the STL
format to output mesh files. The deformed meshes are exported as MSH files. Therefore,

141
Gmsh is used to read the MSH files and converted them into STL files. The conversion
is also conducted in an automatic manner using a Python script.

One restriction associated with the data transformation from the FEM to the DEM may
rise due to the loss of the contact shear history. The old belt boundary is totally replaced
by the new deformed belt. As a consequence, the contact information of the particles and
old belt boundary will not be preserved for the new simulation in the following iteration.
The normal component of the contact force can be restored immediately by reading the
particle positions and computing the contact overlaps accordingly. However, the shear
component of the contact force cannot be retrieved due to the history effect. The
tangential overlap is calculated by integrating the relative tangential velocity at the
contact point over time. This may also affect the particle internal contacts. Therefore, it
is necessary to investigate whether the shear history will have a significant influence on
the determination of the bulk material loads. The DEM simulations in chapter 3 are
replicated and performed with and without the consideration of the shear history. Special
attention is paid to the duration of the first 1.2s after restarting the bulk material DEM
model from the point t = 5s. For every 0.2s, the bulk material forces are exported for
comparisons. Both the coal and iron ore materials are considered, and the results are
presented in Figure 4-13 and Figure 4-14.

142
Figure 4-13 Effects of the shear history on the coal material acting force on the belt: (a)-(c) force
components Fx, Fy and Fz; (d) force components comparison

In Figure 4-13, the material force shown by the vertical axis is referred to as the
summation of the forces on the belt. It is dissolved into three force components in the
global X, Y and Z directions that are displayed separately in Figure 4-13 (a) - (c). The
blue dash lines stand for the simulations without the shear history, whereas the orange
solid lines are related to the modelling considering the shear history. As shown in Figure
4-13 (a) and (b), it is evident that the shear history leads to the variations of the X and Y
force components as neither same values nor similar trends can be observed. While Figure
4-13(c) presents a similar trend of the Z force component. The value of the Z force
component without the history effect is slightly larger than that with the history effect,
giving the maximum deviation of only 0.5%. Furthermore, the overall comparisons of all
the force components in Figure 4-13(d) indicates that the X and Y force components are
considerably smaller than the Z force component by approximately two orders of
magnitude. Therefore, it is reasonable to state that the absence of the shear history will
not significantly affect the calculation of the total material loads for the coal material.

143
Figure 4-14 Effects of the shear history on the iron ore material acting force on the belt: (a)-(c) force
components Fx, Fy and Fz; (d) force components comparison

As shown in Figure 4-14, similar trends and relationships of the material force
components are observed for the iron ore. Although the shear history affects the X and Y
force components, it has minimum influences on determining the material loads due to
the negligible contributions of the X and Y force components compared to that of the Z
force components.

It can be concluded that the loss of the shear history due to the update of a new belt
boundary will not result in significant influences on the calculation of the overall bulk
material loads in the DEM model used for this research. Therefore, the belt mesh data
exchange method is suitable and can provide relatively accurate simulation results of the
bulk material loads. Indeed, the feasibility of this method should be eventually validated
by comparing the belt deflection predicted by the coupled model to the experimental
measurements.

144
Coupling continuation

Unlike the one-way coupling that solves problems in one step, the two-way coupling of
the FEM and DEM consists of a series of iterations. In order to model the belt deflection
as a dynamic and continuous process, the involved iterations are required to be connected,
which means the results obtained from the current iteration can be used as initial
conditions for the next. Therefore, the modelling variants, values and states of the current
iteration need to be preserved and restored at the outset of the next iteration, and then the
next iteration can start from the point where the previous iteration ends. This procedure
is recognised as the iteration initialization that contains two aspects: the FEM and DEM
initialization.

4.4.4.1 FEM initialization


For the FEM initialization, an initial state that consists of the solutions from the previous
calculation can be defined for the non-linear analysis solver. The definition involves
reading the database created previously and extracting the results required from the
database. The initial state essentially includes the stress fields, displacements and local
variables that can be specified by either assigning individually via the keywords SIGM,
DEPL and VARI or reading from the simulation archives together via the keyword
EVOL_NOLI. The process of the FEM analysis integrated in the coupling can be shown
by the 2D graphs in Figure 4-15.

145
Figure 4-15 The process of the FEM analysis for belt deformation: (a) the first iteration; (b) the second
iteration; (c) the third iteration; (d) the final iteration

As shown in Figure 4-15, the solid line in each graph indicates the initial position of the
belt, whereas the dash line indicates the deformed belt in the current iteration. Figure 4-15
(a) shows the undeformed belt without any stresses at the beginning of the coupling. After
the bulk material loads, belt self-weight and pre-tension are applied, the belt deflects and
gives a displacement of D1 in the vertical direction. The belt reaches the equilibrium
where the internal stress increases to σ1 to balance the external forces. The following
iteration is illustrated in Figure 4-15 (b). The belt self-weight and pre-tension are
consistent with the first iteration, whereas the bulk material loading is obtained from the
corresponding DEM calculation and equal to P2 (P2= P1+ ΔP2). The FEM analysis is
performed with the displacement D1 and the stress σ1 based on the first iteration assigned
to the belt as the initial state. Therefore, the only imbalance force is the variation of the
bulk material loading ΔP2. The belt deforms accordingly, giving the displacement of
D2=D1+ΔD2 and stress of σ1= σ1+ Δσ2. Similarly, for the third iteration shown in Figure
146
4-15 (c), the results from the second iteration are defined as the initial state. The variations
of the displacement ΔD3 and stress Δσ3 correspond to the change of the bulk material
loading ΔP3. The coupling terminates at the final iteration n in Figure 4-15 (d) where the
FEM produces the displacement Dn that can be approximated as the displacement Dn-1
of the previous iteration, indicating the belt deformation is minor. Therefore, the final
dynamic belt profile can be obtained.

It is worth noting that the initial state is assigned to the belt mesh at the stage of the non-
linear analysis. This means it is not necessary to modify the belt mesh when importing
the mesh file in the FEM at the beginning of each iteration. Otherwise, the belt
deformations and stresses will be applied repeatedly. Furthermore, the commands of the
loading cases, iteration increments, belt mesh and calculated results defined by the FEM
program in each iteration should be removed after completing the analysis. This is
because these commands may conflict with those in the next iteration. The command
DETRUIRE can be used to perform this task.

4.4.4.2 DEM initialization


The initialization of the DEM is relatively straightforward. It can be achieved by utilizing
the RESTART and READ_RESTART commands in Liggghts. As mentioned previously,
the restart files store the necessary particle information as well as other basic information,
such as the group definitions, DEM settings and particle settings for continuing the
modelling. The DEM settings define the units and atom style, simulation box size and
shape and boundary settings. The particle settings specify the parameters of the particle
properties such as the densities, frictions, pair styles and other coefficients. Therefore,
these variables do not need to be specified again when a new iteration starts. However,
contact pair styles may not restart exactly due to the time difference when particle forces
are computed. For Liggghts modelling without interrupts, forces are calculated based on
the particle velocities at the middle of each DEM timestep. If the modelling stops and
restarts, forces will be initially evaluated with particles velocities given at the end of the
previous timestep. Fortunately, the variations of the forces due to this effect are not

147
significant. Therefore, the particle behaviour at the outset of the new iteration can be
idealised to be consistent with behaviour at the end of the previous iteration.

The primary concern associated with the initialization of the DEM is how to define the
simulation box boundaries. For the developed bulk material DEM model, the dimension
of the simulation box in the longitudinal direction is fixed and equal to the belt length
(1200mm). However, for the two-way coupling an error can be caused and terminate the
modelling as the belt extends in the Y direction due to the belt pre-tension. As a
consequence, the updated belt geometry will overload the simulation box. To overcome
this, two fictitious walls having the length of 150mm are added to the belt ends, as shown
in Figure 4-16. These walls are independent to the belt mesh and stay in the same positions
when the belt extends. Periodic boundaries are set at the farthest ends of the fictitious
walls. The overall dimension of the simulation box in the Y axis is set to be 1500mm.
Thus, particles that travel beyond the belt will be conveyed by the fictitious walls.
Moreover, the introduced fictitious walls can also mitigate the particle impacts acting on
the belt ends when exiting and entering the periodic boundaries and therefore be
considered as buffer zones for particles.

Figure 4-16 Boundary settings for the DEM modelling

148
Coupling interface

The coupled FEM and DEM model is implemented and controlled by a coupling interface
that is technically programmed by a Python script and mainly contains the functions of
creating the FEM and DEM command files, invoking simulations, controlling the
simulation process and exchanging the modelling data. Accordingly, four main modules
are incorporated into the interface. They are the command file creation module,
simulation invoking module, data exchanging module and simulation controlling module.

The command file creation module is responsible for creating simulation operands that
define the models in the FEM and DEM analysis. As the coupling is in an iterative
manner, the command files need to be created or modified for every iteration.
Specifically, the bulk material pressure files for the FEM and the belt mesh files for the
DEM are required to be updated in the command files. For this reason, this module is
activated at the outset of each iteration.

The simulation invoking module is developed based on the Python subprocess module
that can spawn new processes to call external programs. For the DEM model, the Liggghts
program can be simply invoked using a Linux terminal command, whereas starting the
FEM model is more complicated. The module has to create an input file (EXPORT file)
that specifies the FEM command and mesh files, output preferences and working
directory. The Code_Aster program can be called by the terminal using the input file.
This module allows one modelling program to run at a time while holding the other. In
other words, one program is invoked and operating whilst the other is waiting for the
results.

The data exchanging module is the core of the coupling interface. The Code_Aster and
Liggghts output are the belt mesh and bulk material load files that are in the formats of
MSH and VTK respectively. These output files cannot be accessed directly by the FEM
and DEM programs. Based on the methods presented in the section 4.4.3, this module is

149
programmed to convert the belt mesh into the format readable for Liggghts and assign the
loads to belt elements in Code_Aster, thereby achieving the bidirectional data exchange.

The simulation controlling module is created based on the procedures of the coupling. It
governs the process of the entire modelling and defines the necessary parameters for the
coupling including the FEM and DEM timesteps, program source bins, working
directories and how often the data would be exchanged. It is also considered as the frame
which other modules are incorporated. Appendix H shows the simulation codes.

4.5 Results and discussion

The coupled FEM and DEM model is used to analyse the deflection of the 6mm and
12mm thickness belts conveying the coal and iron ore bulk materials with parameters
identical to those presented in the previous chapters. While the belt speed is constant and
set to be 1m/s for each simulation, the belt tension is varied in the range of 5kN, 10kN
and 15kN. The obtained simulations results are presented below.

Coupling convergence

Due to the interaction of the belt and bulk material, the pressure acting on the belt may
vary and distribute differently with time, leading to the variation of the belt profile in each
coupling iteration. It may take a while for the belt to achieve a stable state where the belt
profile does not change significantly compared to the previous iteration. By then it can be
considered the coupling is convergent. The convergence criterion is based on the
maximum deflection of the longitudinal belt deflection. This is because the longitudinal
belt deflection not only has considerable effects on determining the belt conveyor
trampling resistance [40], but also is the crucial consideration when designing belt
conveyor systems [20, 24]. If the variation of the maximum longitudinal belt deflection
in the current iteration is under 0.5% of that in the previous iteration, the coupling will
terminate, and the final belt deflection is obtained.

150
Figure 4-17 shows the maximum deflection versus the coupling iterations. The maximum
deflection on the belt central section is represented by the solid lines, whereas the
maximum deflection on the belt side sections is shown by the dash lines. For abbreviation,
they are named as the central deflection and side deflection. The results for the belt
tensions of 5kN, 10kN and 15kN are presented by the blue circle, red square and green
triangle respectively. The horizontal axis stands for the coupling iterations. Convergence
criterion is applied to determine the termination of the coupled modelling for each case.

Figure 4-17 Maximum belt deflection versus coupling iteration: (a) 6mm thickness belt with coal; (b)
12mm thickness belt with coal; (c) 6mm thickness belt with iron ore; (d) 12mm thickness belt with iron
ore

As shown in Figure 4-17, the variation of the maximum central deflection in each iteration
is not distinct, and the maximum side deflection fluctuates relatively substantially. This
is because the belt exhibits more flexibility on the side sections where there are less
supports, especially when the belt tension is low. While the 6mm thickness belt with the
iron ore material shows the largest deflection on both the belt central and side sections,

151
the deflection of the 12mm thickness belt with the coal is minimum. Moreover, it is
evident that the difference between the maximum central and side deflection can be
mitigated with the increase of the belt tension.

For the modelling in Figure 4-17 (a), the coupling is ended at iteration 5, 5 and 6 for the
belt tensions of 5kN, 10kN and 15kN according to the convergence criterion. For each
tension, the belt exhibits greater maximum side deflection only under the lowest tension
case (5kN). As shown in Figure 4-17 (b), the modelling is ended at coupling iteration 6
for all belt tension cases. It is evident that the maximum side deflection is always larger
than the maximum central belt deflection. In Figure 4-17 (c), it is exhibited that the
deflection is more considerable compared to the same belt with the coal. This is due to
the higher material pressure resulting from the iron ore material. The coupling
convergence can be achieved at the iteration of 7, 5 and 6 for the belt tensions of 5kN,
10kN and 15kN. The maximum side deflection is always smaller than the central
deflection. The simulations in Figure 4-17 (d) for the 12mm belt thickness with the iron
ore are terminated at iterations of 5, 6 and 8 for 5kN, 10kN and 15kN belt tensions
respectively. The maximum central deflection is lower than the maximum side deflection
only for the belt tension of 5kN.

In summary, the coupled FEM and DEM modelling converges within eight iterations for
the belt and bulk material investigated. It can also be concluded that the magnitude of the
belt maximum deflection and the position where it occurs are dependent on the loaded
bulk material and the belt properties, as well as the applied belt tension.

Coupled simulation results

After the coupling is convergent, the particle movement and the belt deformation in the
last iteration are output and visualized using Paraview and Gmsh. Figure 4-18- Figure
4-21 show the simulation results, where the particle movement in the DEM is depicted
on the left and the deformation of the belt in the FEM is presented on the right. In terms
of the legend for the particle movement, the blue colour indicates a lower velocity
(0.99m/s) in the conveying direction (Y axis), while the red colour indicates the speed of
152
the belt (1m/s). For the belt deformation, larger nodal displacement on the belt mesh is
represented by the blue colour and the red colour stands for the area without deformation.
The legend range of the belt deformation is set to be from -40mm to 0mm.

Figure 4-18 Simulation results for 6mm thickness belt with coal: bulk material particle movement in the
DEM modelling for the belt tensions of (a) 5kN, (c) 10kN and (e) 15kN; belt deformation in the FEM
modelling for the belt tensions of (a) 5kN, (c) 10kN and (e) 15kN

153
Figure 4-19 Simulation results for 12mm thickness belt with coal: bulk material particle movement in the
DEM modelling for the belt tensions of (a) 5kN, (c) 10kN and (e) 15kN; belt deformation in the FEM
modelling for the belt tensions of (a) 5kN, (c) 10kN and (e) 15kN

154
Figure 4-20 Simulation results for 6mm thickness belt with iron ore: bulk material particle movement in
the DEM modelling for the belt tensions of (a) 5kN, (c) 10kN and (e) 15kN; belt deformation in the FEM
modelling for the belt tensions of (a) 5kN, (c) 10kN and (e) 15kN

155
Figure 4-21 Simulation results for 12mm thickness belt with iron ore: bulk material particle movement in
the DEM modelling for the belt tensions of (a) 5kN, (c) 10kN and (e) 15kN; belt deformation in the FEM
modelling for the belt tensions of (a) 5kN, (c) 10kN and (e) 15kN

From Figure 4-18 to Figure 4-21, it is evident that the particle velocities in the Y direction
vary with the deformation of the belt. With larger belt deformation, the material particles
travelling on the belt tend to have higher velocity component in the vertical direction (Z
axis). Since the magnitude of the particle velocities corresponds to the belt surface
velocity (1m/s), the velocity component in the Y direction is inevitably reduced.
Moreover, it is observed that the maximum belt deflection occurs approximately in the
middle of the idler spacing regardless of the modelling conditions. The belt deflection
decreases as the belt tension increases. Also, the increase of the belt tension can lead to

156
the position of the maximum belt deflection shifting from the belt edges to the central
line.

Longitudinal and transverse belt deflection

In order to better understand the simulation results presented in section 4.5.2, the
longitudinal and transverse belt deflection is extracted and shown in Figure 4-22- Figure
4-25. The longitudinal and transverse belt deflection is of most importance during the
stage of designing a belt conveyor system, especially in terms of minimising the flexure
resistance. The longitudinal belt deflection is represented by a series of nodes on the belt
central line, distributed in the Y direction with an increment of 60mm. The transverse belt
deflection is referred to as the curved cross-sectional profile at the maximum belt
deflection point. Due to the symmetry, results are presented for only one half of the belt
cross-section. The belt position corresponding to zero refers to the belt centre.

Figure 4-22 Results of 6mm thickness belt with coal: (a) longitudinal belt deflection; (b) transverse belt
cross-sectional profile

Figure 4-23 Results of 12mm thickness belt with coal: (a) longitudinal belt deflection; (b) transverse belt
cross-sectional profile

157
Figure 4-24 Results of 6mm thickness belt with iron ore: (a) longitudinal belt deflection; (b) transverse
belt cross-sectional profile

Figure 4-25 Results of 12mm thickness belt with iron ore: (a) longitudinal belt deflection; (b) transverse
belt cross-sectional profile

From comparative observation of the longitudinal belt deflection, several conclusions can
be drawn. First of all, the 6mm thickness belt exhibits more substantial deflection
compared to the 12mm thickness belt, and the iron ore can lead to more deflection than
the coal material. Furthermore, an asymmetric deflection is observed in each case with
the deflection for the first half of the idler spacing larger than that for the second half,
though the maximum deflection, without exception occurs in the middle spacing. Lastly,
the applied belt tension can have a significant influence on the longitudinal belt
deflection, which is more evident for the belt with low stiffness and loaded with the
heavier material. Furthermore, when the belt tension rises linearly, the decrease of the
belt deflection is not directly proportional.

158
For the transverse belt deflection, it is obvious that the cross-section of the belt deflects
almost parallel from the idler trough to the middle of the idler spacing. The belt deforms
downwards, maintaining the initial trough profile. The trend is more distinct for the belt
with light material and high tension. For 5kN belt tension, the belt is more likely to resume
a flat profile, resulting in the maximum side deflection occurring at the belt edges. For
other belt tensions, the maximum side deflection is observed in the middle of the side
sections, located at around 190mm in the belt transverse position.

Bulk material load distribution on the belt

As mentioned previously, the belt deflection corresponds to the loads resulting from the
carried bulk material. It is of advantage to get insight into the loads acting on the belt.
The bulk material loads (forces) are calculated longitudinally and transversely, based on
which the load distribution on the belt is plotted, as shown in Figure 4-26 - Figure 4-29.
For the calculation of the longitudinal loads, the belt is divided into six subsections in the
belt longitudinal direction with an equal length of 200mm. The force presented on each
subsection is the cumulative totals of the forces on all elements included in this subsection
area. Similarly, the belt is divided transversely into 12 subsections with a width of 50mm
to calculate the loads distributing in the transverse direction. Again, the load of each
subsection is the summation of the forces acting on the elements within the corresponding
subsection. The calculated longitudinal and transverse forces are averaged over the
iterations of the coupling.

Figure 4-26 Coal load distribution on 6mm belt: (a) longitudinal and (b) transverse directions

159
Figure 4-27 Coal load distribution on 12mm belt: (a) longitudinal and (b) transverse directions

Figure 4-28 Iron ore load distribution on 6mm belt: (a) longitudinal and (b) transverse directions

Figure 4-29 Iron ore load distribution on 12mm belt: (a) longitudinal and (b) transverse directions

From Figure 4-26 - Figure 4-29, it is evident that the forces fluctuate in the longitudinal
direction. Nevertheless, an increasing trend can be observed, indicating the forces of the
second idler spacing half are more considerable than that of the first half. This is due to
the active and passive stress states induced inside the bulk material. The maximum forces
are found to be inevitably located on the subsection (600-800mm) straight after the middle
spacing. Moreover, the belt tension barely affects the longitudinal load distribution as its
variation is minor.

160
Regarding the transverse load distribution, the main forces are observed acting on the
central belt and belt junctions (from -150 to 150mm), while the forces on the belt side
sections taper and eventually come to zero at the belt edges. Again, the influence resulted
from the belt tension is not significant. It is worth noting that the transverse loads on the
belt are different from the loads distributed on the idlers. As the belt around the idler
junction cannot contact the idlers, the material forces acting on these belt sections will
shift bilaterally to the adjacent areas, leading to the load peaks at the idler ends close to
the junctions. Typical load distribution for a troughed idler set is shown in Figure 4-30.

Figure 4-30 Bulk material pressure distribution on the idlers measured by Grabner et al [86]

Sensitivity analysis

To determine the influence of the belt speed and tension on the dynamic belt deflection,
simulations are conducted over a range of belt speeds and tensions using the same bulk
materials and conveyor belts. The modelling settings are consistent with those used in the
previous simulations. The belt speed is varied from 0.5m/s to 1.5m/s in 0.5m/s
increments, by altering the belt surface velocity in the DEM modelling. The belt tension
is varied from 5kN to 15kN in 5kN increments.

Based on the simulation results, the sensitivity analysis is performed, giving the
maximum deflection on the belt central and side sections with respect to the belt tension
and speed, as shown in Figure 4-31 and Figure 4-32. The horizontal axis represents the
161
belt speed and the vertical axis stands for the magnitude of the maximum belt deflection.
The belt tensions of 5kN, 10kN and 15kN are indicated by the blue short dash, red long
dash and black solid lines respectively.

As shown in Figure 4-31, for the belts and materials investigated, the maximum deflection
on the central belt is approximately consistent when varying the belt tension, whereas the
higher belt tension is more likely to reduce the belt deflection. Therefore, it is reasonable
to concluded that the deflection on the central belt is purely affected by the belt tension.

Figure 4-31 Maximum deflection on the central belt vs velocity: (a) 6mm belt with coal; (b) 12mm belt
with coal; (c) 6mm belt with iron ore; (d) 12mm belt with iron ore

As for the belt side sections shown in Figure 4-32, it is observed that both the belt tension
and speed can lead to the variation of the side deflection. With an increased belt speed,
the belt exhibits less deflection on the side sections. This seems counter intuitive as a
higher belt speed tends to increase the particle accelerations in the vertical direction and
thereby enlarging the resultant forces on the belt. Although the reason behind is

162
unexplored, one assumption is that the increase of the belt speed may lead to more
material loads shifting towards the belt junctions. Nevertheless, the influence of the belt
tension on the side deflection is more significant than of the belt speed.

Figure 4-32 Maximum deflection on the side belt vs velocity: (a) 6mm belt with coal; (b) 12mm belt with
coal; (c) 6mm belt with iron ore; (d) 12mm belt with iron ore

Therefore, it can be concluded that the belt tension is the main factor resulting in the
variation of the belt deflection. When compared to the belt tension, the influence on the
belt deflection attributed to the belt speed can be negligible.

4.6 Summary

Two of the most widely used methods in the field of bulk material processing and
handling, the FEM and DEM are coupled to represent the interaction of the belt and bulk
material and analyse the dynamic deflection of the belt. The existing coupling strategies

163
are reviewed and in view of the features of the bulk material and belt interactions, the
surface coupling method is utilized, based on which the coupling scheme and process are
proposed. The DEM is used to model the motion and forces of the material particles and
the FEM provides the analysis of the resultant belt deformation attributed to the acting
forces. A one-way coupling model is developed using the commercial software (Strand7
for FEM and Rocky for DEM). Furthermore, considering the disadvantages of the one-
way coupling, an upgraded two-way coupled model is developed, enabling the
bidirectional data exchange between the FEM and DEM. For this purpose, the open
source software, namely Code_Aster for the FEM and Liggghts for the DEM are
employed, in conjunction with Python for programming the interface that is considered
as integral parts of the coupling to exchange data and control the modelling process. The
main challenges associated with the coupling including the data exchange and
continuation of the modelling are illustrated and the relevant solutions are explained.

The coupled FEM and DEM model is successfully applied for predicting the dynamic
deflection of the 6mm and 12mm thickness belts with the coal and iron ore bulk materials
under an equivalent speed of 1m/s. In order to investigate the factors affecting the belt
deflection, a series of simulations are performed with altering the belt tension (5kN, 10kN
and 15kN) and belt velocity (0.5m/s, 1.0m/s and 1.5m/s). The analysis shows that the belt
deflection is more sensitive to the belt tension rather than the belt speeds.

The developed two-way coupling is considered as a “quasi” dynamic coupling as the


exchange of the material loads and belt deformation is activated every 5000 DEM
timesteps (equal to a FEM timestep). Meanwhile, both the FEM and DEM simulations
are paused during the data exchange. For more precise coupling, the data exchange could
be conducted for every DEM timestep. Also, the belt geometry should be updated by
moving the nodes on the belt mesh with the DEM timesteps, so that the belt can
continuously deform with time without losing the contact with particles and the shear
history. Nevertheless, the simulated belt deflection will be compared to the experimental
measurements obtained with the identical conditions, from which the coupled FEM and
DEM model can be validated. The dynamic belt deflection measurements, in conjunction

164
with the validation of the modelling will be conducted and presented in the subsequent
chapter.

165
CHAPTER 5: EXPERIMENTAL INVESTIGATION AND VALIDATION

5.1 Introduction

Dynamic belt deflection is dependent on the properties of the belt and bulk material, belt
and material interaction and the configuration of the belt conveyor. This chapter focuses
on experimentally investigating the influences of operational conditions including the belt
tension and speed on the dynamic belt deflection. To achieve this, a specially designed
test facility that replicates the relative movement of a belt and idlers by moving several
idler sets underneath a stationary belt is constructed. The main components of the test
facility are described, along with the challenges encountered during the design process.
This test rig allows several belt related tests to be conducted that were previously
impossible with a moving belt. Furthermore, a range of dynamic variables can be adjusted
in the test rig, such as the idler configuration, belt tension and speed. Corresponding to
the modelling, the 6mm and 12mm thickness belts with the coal and iron ore materials
are investigated in the experiments. The dynamic belt deflection is measured for the belt
tensions of 5kN, 10kN and 15kN. The belt speed varies in the range of 0.25m/s, 0.5m/s,
0.75m/s, 1m/s, 1.25m/s and 1.5m/s.

The procedures for measuring the dynamic belt deflection are presented. A new
experimental approach based on the photogrammetry technique is adopted. This method
essentially involves converting 2D belt photos into a 3D belt profile in space.
PhotomodelerTM is the software for processing the photos and analysing the dynamic belt
deflection. Due to the large number of photos needed to be analysed, Dynamic Data
Exchange (DDE) interface is invoked with the assistance of Python, enabling photos to
be processed automatically. Another Python program is developed to analyse the belt
profile obtained from PhotomodelerTM and to extract both the longitudinal and transverse
belt deflection.

Experimental results, including the longitudinal and transverse belt deflection are
presented and discussed. The trend of the belt deflection is analysed with variations of
the belt tension and speed, from which the impact factors of the dynamic belt deflection

166
are summarized. Also, the experimental results are compared to the simulation results to
validate the coupled FEM and DEM model. Comparisons show good correlations
between the testing and modelling, indicating that the developed model can provide
accurate predictions of dynamic belt deflection.

5.2 Dynamic belt deflection measurement methodology

Measurement facility

To measure the dynamic belt deflection, a new experimental test facility referred to as a
recirculating idler test rig was designed and constructed at TUNRA Bulk Solids, The
University of Newcastle, Australia as shown in Figure 5-1. The original concept of the
test facility was proposed by Conveyor Dynamics Inc., USA and Laing O’Rourke,
Australia to analyse the attrition of bulk materials being transported on belt conveyors.

Figure 5-1 The recirculating idler test rig at TUNRA

The facility consists of a stationary belt with idler sets that translate underneath the belt.
A fixed belt means that the bulk material remains in the loaded profile for the duration of
a test, while the translating idler sets facilitate the real movement of the belt. This special
design allows for measuring equipment, such as sensors and pressure measurement pads
to be mounted on the belt to perform measurements without any risk of being damaged.
167
Most importantly, high-quality photos of the belt profile can be captured by cameras,
which was previously impossible with a moving belt.

Figure 5-2 Front view of the recirculating idler test facility

The main components of the test facility include a belt, base frame, drive system, belt
tension device, supporting frame and eight idler roll sets, as shown in Figure 5-2. The
description of each component is presented as follow:

a) The endless loop of conveyor belt. It is configured to circulate when required by


manually turning a pulley. This is beneficial when it comes to unloading material
from the belt. In addition, the total length of the complete belt loop permits up to
three types of belts to be connected by clips and installed on the test facility,
allowing for belt dependent tests to be conducted.

b) The drive system consists of three sprockets distributed at each end of the test
facility and conveyor chains used to drive the idler sets, as shown in Figure 5-3
(a). A purposely designed linkage mechanism is adopted for the connection of the
chains and idler sets. A motor controlled by variable speed drive is incorporated
into the system to provide the desired speeds.

c) The belt tensioning device shown in Figure 5-2 (a) and detailed in Figure 5-3 (b),
consists of a supporting frame with guides, a pulley and two threaded bars with
168
strain gauges. The pulley is connected to the two threaded bars through two blocks
which can only slide along the guides. By rotating the thread bars, the length of
the belt can be extended, which provides additional tension. The actual applied
tension is recorded by the strain gauges. A minimum 5kN belt tension is applied,
which would be sufficient to hold the belt stationary during testing.

d) The supporting frame is shown in Figure 5-1. On the top of the frame, a platform
is constructed and used for bulk material loading.

e) Eight idler sets travel underneath the conveyor belt. The idler troughing profile is
formed by installing three idler rolls on a specially designed frame. The idler
diameters and trough angle are interchangeable if necessary. These idler sets are
attached to the conveyor chains which enable them to recirculate underneath the
belt. The spacing of the idler sets can be adjusted according to the test
requirements.

Figure 5-3 Details of the test rig components: (a) driving system; (b) tensioning device

The arrangement and dimensions of the machine components are selected to imitate a
conventional conveyor system. The configuration parameters of the test facility are
identical to the modelling and listed in Table 5-1. The eight idler sets having a trough
angle of 35°and idler diameter of 100mm are mounted to the driving chains with an idler
spacing of 1200mm. At least two idler sets are in contact with the testable length of the
belt at all times during testing. The belt tension can be adjusted through the tensioning

169
device at one end of the belt. The idler diameters and trough angle are interchangeable if
necessary. The configurations of the facility can be easily replaced, making it ideal for
performing dynamic belt deflection measurements for a range of operational variables.

Table 5-1 Test facility parameters


Parameter Description Value
Belt Width, mm 600
Belt thickness, mm 6 and 12
Idler spacing, mm 1200
Idler roll diameter, mm 100
Idler roll length, mm 200
Idler trough angle, ° 35
Idler speed range, m/s 0~3
Belt pre-tension range, kN 0~ 50

The main challenge associated with the test facility design is the drive system, especially
regarding the moving idler sets. As the idler frames move from travelling horizontally to
travelling around the sprockets, the idler frames transfer from having zero angular
velocity to maximum angular velocity of the sprockets, almost instantaneously. This
instantaneous acceleration imposes a force which is potentially damaging to components.
A specially designed mechanism attaches the idler frames to the conveyor chain, which
keeps the idler sets upright as they travel around the sprockets and along the return track.
This decreases the acceleration of the idler sets as they move around the sprockets, as
well as removing the motion associated with rotating the idler sets upside-down which
could cause negative flow-on effects. Moreover, the specially designed linking
mechanism connecting the idler sets to the conveyor chain is attached to the centre of the
idler set to keep the distance between the belt and the chain drive to a minimum, whilst
still allowing clearance for all moving parts. This reduces any rocking motion the idler
sets may otherwise experience.

It is difficult to ensure that all the idler sets are at a constant height when contacting with
the belt due to the sag of the chains. To overcome this, guide rails are used, which support
the idler sets at a certain height. Wheels are installed on the idler frames to reduce the
friction when the idler sets slide in the guide rails. These guide rails can also improve the
170
alignment of the belt and moving idlers. Thus, the conveyor chains only provide the drive
force. Both ends of each guide rail are designed to be curved, which allows lower impact
when the idler sets are about to meet the rails. Furthermore, the use of the guide rails also
enables at least two idler sets to be in contact with the testable length of the belt at all
times during testing.

Measuring technique

As documented by Ilic [39] and Dratt [36], 3D laser scanners have been adopted to
measure the belt deflection for static conditions. Generally, a laser scanner pulses a laser
to the object and measures the pulse that reflects back. By calculating the time difference,
the positions of the points hit by the laser pulse can be calculated. Due to the limited
scanning range of the laser, the object has to remain static until the laser completes a full
scan. As the belt profile varies with time, it is impossible for laser scanners to measure
the dynamic belt deflection. For dynamic conditions, the ability to capture the data
instantaneously is necessary, and a new photogrammetry technique is required. Shen [87]
have successfully taken advantage of the photogrammetry technique for measuring static
belt deflection, however, the adoption of dynamic conditions has not been conducted.

The photogrammetry technique provides several advantages compared to the traditional


methods like the laser scanning techniques. In particular, its speed of data capture,
portability and ease-of-use, a broad range of object sizes, non-contact measurements and
low cost. The accuracy of a photogrammetric measurement can be varied dramatically by
the quantity and quality of photo graphs, the location of cameras when taking photos and
the modelling system scale. In some circumstances, the photogrammetry technique even
offers more accurate solutions than the laser scan.

The photogrammetry technique is utilized in a broad variety of fields. The applications


can be classified into two categories, namely geographic and close-range applications [88,
89]. The geographic applications are generally based on aerial and satellite image
technology and used for large-scale metrology, including topographic mapping,

171
geographic information systems (GIS) and 3D city modelling. On the other hand, the
close-range applications focus on relatively small objectives and cover the areas of
architecture, engineering, archaeology and medicine. With the development of digital
photography and image processing, the photogrammetry technique is becoming more
advanced and will continue to develop into various industries.

5.2.2.1 Principle of photogrammetry


The principle of the photogrammetry technique is triangulation [90-92]. It constructs a
3D target point in space by intersecting at least two projected lines based on the positions
of the target from 2D images. As shown in Figure 5-4, an epipolar plane (shown shaded
in blue) is generated by two projected lines n1C1 and n2C2. C1 and C2 are the camera
optical centres, and N is a 3D target in the global coordinate system O-XYZ. The positions
of the target in image 1 and 2 are n1 and n2 respectively. The related epipolar lines e1 and
e2 are defined by the intersecting lines of image planes and the epipolar plane.

Z Y

O N (X, Y, Z)
X
Epipolar line e1 Epipolar line e2

n1 (x, y)
n2 (x’, y’)
Image plane 1
Image plane 2

C1 C2

Figure 5-4 Principle of the triangulation [92]

The coordinate of the 3D target N is assumed as X=[X, Y, Z] T, the coordinates of n1, n2 in


images are x=[x, y] T and x’=[x’, y’] T. The 3D target and its images are restricted by the
epipolar constraint, as given by:

172
𝑥 ′𝑇 𝐹𝑥 = 0 Equation 5-1
Where F is the 3×3 fundamental matrix that is the algebraic representation of the epipolar
geometry. It can be expressed as

𝐹 = [𝑒 ′ ] × 𝑃′ 𝑃+ Equation 5-2

Where e’ stands for the projection of the first camera centre, known as the epipole in
image 2. P+ is the pseudo-inverse of P. P and P’ are the camera projective matrices of the
two cameras, which give the relationship of the target in space and its images:

𝑥 = 𝑃𝑋
{ ′ Equation 5-3
𝑥 = 𝑃′ 𝑋

For the first camera, the projective matrix can be given by

𝑃 = 𝐾[𝑅|𝑡] Equation 5-4

Where R is the matrix representing the rotation of the local coordinate with respect to
global coordinate and t is the position vector of the camera centre in the global coordinate
system. K is the matrix containing the camera intrinsic parameters.

𝑓𝑥 𝑠 𝑢0
𝐾 = [0 𝑓𝑦 𝑣0 ] Equation 5-5
0 0 1

Where fx and fy are the horizontal and vertical camera focal length measured in width of
pixels; s is the skew factor of the camera; (u0, v0) account for the coordinates of the image
principle point. These parameters can be determined by the camera calibration, as detailed
in section 5.3.1.

173
According to Nister [93], the 3D coordinates of the targets can be calculated by images
from at least two different viewpoints. The process of minimizing the sum of the squares
of errors over targets is defined as the bundle adjustment which is typically based on the
Levenberg–Marquardt algorithm [94]. Hartley [90, 95, 96] also provided an algorithm to
deal with issues related to the deviations caused by noise. Similarly, the principle and
algorithms are used by PhotomodelerTM to analyse the conveyor belt images.

5.2.2.2 PhotomodelerTM software


There are various photogrammetry programs available. Some programs are open sourced,
such as Regard3D, COLMAP and SMVS, whereas others are commercial programs. The
commercial software used in this study is PhotomodelerTM Scanner that is a cost-effective
tool for accurate 3D measuring and modelling.

PhotomodelerTM provides the Dense Surface Modeling (DSM), automated targets,


manual modelling, camera calibration and shape-based modules aimed at different project
requirements. The modelling process may vary with the module being used. For the
automated targets module used in this study, it includes importing images, assigning used
cameras, orientating images, marking feature points, referencing feature points,
calculating point coordinates and structuring and visualizing models, as shown in Figure
5-5. The measured objects can be accurately represented by points, lines, curves, surfaces
and meshes. The created 3D models can be exported as txt, stl, csv and many other file
formats for further analysis. Furthermore, the camera stations where images are taken,
can also be calculated and displayed as well.

174
Figure 5-5 Basic process of 3D modelling in Photomodeler TM

The accuracy of solved projects in PhotomodelerTM can be assessed by the internal quality
feedback and external checks. The internal quality feedback mainly contains the
information of the total error, residuals and precision values that indicate the quality of
projects in a comparative way. This means the values of these variables do not represent
the actual accuracy of measurements. The total error describes the correlation of model
data, such as camera parameters, marked points in images and 3D point coordinates.
Residuals indicate the deviation (by pixels) of point locations in images and in the 3D
model. Precision values stand for the degree of similarity of repeated measurements. The
PhotomodelerTM manual recommends a list of critical variable values for high-quality
projects. Nevertheless, the project accuracy dominantly relies on the external checks. An
external check involves comparing the data from the external source with that from the
internal source. For example, one external check can be done by comparing the distance
between two points measured by the external devices like laser trackers or even tape
measures, with the distance calculated by the model in PhotomodelerTM. The less the
deviation the more accurate the project.

175
5.3 Dynamic belt deflection measurements

To measure the dynamic belt deflection accurately, automated targets are used for this
project, in which a series of feature points that collectively represent the dynamic belt
profile is required to be attached to the belts. Prior to the actual belt deflection testing, the
cameras used are required to be calibrated, so that the camera’s intrinsic parameters can
be obtained for the calculation of the target positions. Firstly, the test rig is setup which
involves placing the targets on the belt and mounting the cameras on the facility. Then,
the test rig is operated with a variety of dynamic conditions, during which the
measurements are conducted with the belt photos being taken for each condition. The
obtained photos are analysed in the PhotomodelerTM software, after which the dynamic
belt profiles are modelled correspondingly. Lastly, the modelling data is further
processed, giving the dynamic longitudinal and transverse belt deflection.

Figure 5-6 Dynamic belt deflection measurement procedures and workflow

Two types of bulk materials and belts are used in this study. The belt tension is applied at
values of 5kN, 10kN and 15kN, while the idler roll sets are driven at six different speeds,
giving the equivalent belt speeds of 0.25m/s, 0.5m/s, 0.75m/s, 1m/s, 1.25m/s and 1.5m/s.
176
The main test procedures are described in Figure 5-6. These procedures are repeated for
the belts and bulk materials investigated.

Camera calibration

The cameras are distributed underneath the measured belt, as shown in Figure 5-7. Due
to the arrangement of the drive system, the space under the belt is limited, giving a
maximum distance of 1000mm between the cameras and belt. It is therefore difficult to
capture the belt images for the whole idler spacing. To overcome this issue, a wide field
range camera is required to record images within a very short distance. Considering both
budget and camera quality, three GoPro Hero 4 cameras are employed to perform the
task.

Figure 5-7 Distributions of three testing Cameras for belt image capture.

Moreover, instead of a zoomed len, GoPro cameras have a fixed focal length that cannot
be adjusted according to the objective distances. Thus, once the camera’s focal length is
calculated through calibration, it can be used for all measurements. Another advantage of
GoPro cameras is their speed of capturing images. Aimed at extreme sports, GoPro
cameras can record images and videos for high-speed objectives with excellent quality.
Moreover, the application of the Bluetooth technique for the GoPro cameras enables

177
multiple cameras to be connected wirelessly and release shutters simultaneously. All the
above features make the GoPro cameras suitable for imaging dynamic belt profiles.

5.3.1.1 Calibration procedure


Camera calibration is necessary for high accuracy projects to obtain the camera’s inherent
parameters including; the focal length, lens distortion and principle point, and many
others. This is especially important for GoPro cameras used in this study because they
generally have large lens distortions due to the wide field range. Considering the size of
the measured belt, a multi-sheet calibration designed for the objective size larger than
500mm was employed. It basically consists of a series of sheets covered with specially
designed targets marked with unique numbers. For each of the three cameras, the
calibration mainly involves acquiring multi-sheet images, processing and analysing
images and storing obtained parameters as a camera library.

In terms of the calibration process, fifteen multi-sheets are first laid out on the ground in
a 3×5 configuration. In order to improve the calibration accuracy, two sheets at each end
of the layout are set at upper heights, and cameras are placed at the same distance for
measuring the belt deflection. For each side of the overall sheet layout, one photo is taken
in the landscape orientation and another two photos are taken after rotating the camera
+90 degrees and -90 degrees respectively (in the portrait orientation). In total, twelve
photos are created from the four directions. For better calibration quality, good coverage
across all photos is important. Thus, the calibration sheets should fill as much of the frame
of the photos as possible. Moreover, each target is required to be at least 10 pixels across
the photos. An example of the photos for one of the camera calibrations is shown in Figure
5-8.

178
Figure 5-8 Photos for camera calibration using multi-sheet in PhotomodelerTM

The calibration photos are imported into PhotomodelerTM. PhotomodelerTM contains a


calibration module for modelling multi-sheets and automatically calculates the intrinsic
parameters of the camera. Taking the calibration of camera 1 for example, Figure 5-9
shows the camera calibration interface. The analysed images are displayed to the left-
hand side, whereas the 3D model of the multi-sheets is shown on the right. The locations
of the cameras when the images are taken are presented by twelves blocks. Based on this
model, the intrinsic parameters of the camera are solved and recorded in the project status
report.

Figure 5-9 Modelling the multi sheets for the calibration of camera 1

179
5.3.1.2 Calibration summary
The project status report provides information about the calibration process, in which the
precision/standard deviation section lists the relative values of the solved camera
parameters, including the focal length, principal point x and y, format width and height,
radial distortion and decentring distortion. These intrinsic parameters are shown in Table
5-2.

Table 5-2 Intrinsic parameters for the involved cameras

Intrinsic parameters Camera 1 Camera 2 Camera 3

Focal length (mm) 2.03 3.16 2.39

Principal point X (mm) 1.62 2.53 1.92

Principal point Y (mm) 1.30 2.02 1.53

Format width (mm) 3.44 5.36 4.06

Format height (mm) 2.60 4.05 3.07

Radial distortion 6.54e-2 2.60e-2 4.52e-2

Decentering distortion 2.07e-4 1.18e-4 1.46e-4

Table 5-3 lists the values of the key parameters describing how accurate the calibration
is, such as the total error and point marking residuals, including the overall Root Means
Squared (RMS) residual, maximum residual and minimum residual. The relevant default
values that are required by PhotomodelerTM as minimums are also shown in Table 5-3.
The total error of each calibrated camera is larger than the recommended value. This may
be due to either a slight movement of the calibration sheets, or blurred targets in images.
It is necessary to conduct external accuracy checks to calculate the absolute errors. In this
process, the real dimensions of the multi-sheets are compared to the values given by the
model for each calibration. Results show the maximum deviation is less than 1mm with
respect to the dimension of 2500mm, indicating accuracy for this research. The camera
parameters listed in Table 5-2 can therefore be stored in the PhotomodelerTM library and
used for the subsequent belt deflection measurements.

180
Table 5-3 Camera calibration quality summary

Calibration quality Camera 1 Camera 2 Camera 3 Recommended


indicators values

Total error 2.36 3.83 3.6 ≤1

Overall RMS residuals 0.24 0.37 0.35 ≤ 0.5


(pixel)

Maximum residuals 0.93 1.42 1.33 ≤ 1.5


(pixel)

Minimum residuals 0.24 0.36 0.34 ≤ 1.5


(pixel)

Test facility setup

The setup of the test facility involves assembling the test belts, positioning the feature
points on the belts, loading the bulk material and installing the measuring cameras. All
tasks are performed by the author and detailed as follows.

5.3.2.1 Positioning targets


The feature points, referred to as coded targets, can be easily identified and automatically
processed. A coded target is a contrast dot surrounded by a specific ring standing for its
number, as shown in Figure 5-10. This shape form makes coded targets the most accurate,
robust and efficient modelling method. Generally, the standard coded targets are stickers
that are numbered from 1 to 999. Users can customize their own targets if necessary. To
ensure high accuracy, all coded targets used should be clearly displayed in images. The
central dot diameter of the coded targets used is 12.3mm, that is calculated the
consideration of the size of the belt, and the filming distance.

Figure 5-10 Coded targets in Photomodeler

181
The target positioning involves firmly attaching 75 coded targets to the belt surface,
covering an area length of one idler spacing. In order to mitigate the influence of the test
rig configuration at each end, the targets are positioned in the middle of the rig. The
distance between any adjoining targets longitudinally and transversely is 75mm. The
alignment of the targets to the belt is achieved by drawing datum lines prior to positioning.
Lastly, a coordinate system made by four coded targets on the test rig frame is established
for defining the system scale and orientation. The final setup is displayed in Figure 5-11.

Figure 5-11 The positioning of coded targets

5.3.2.2 Bulk material loading


The coal and iron ore bulk materials are loaded to form a burden profile of a full capacity
over the entire length of the test rig, as shown in Figure 5-12 (a) and (b) respectively.

Figure 5-12 Bulk material burden profiles on the test facility: (a) and (c) coal; (b) and (d) iron ore

182
The burden profile is mainly governed by three key parameters, namely the material
surcharge angle, head height and contact length with the belt side sections. They are set
at 13°, 120mm and 145mm respectively for both materials. The top surfaces take the form
of a parabola with the burden profiles shown in Figure 5-12 (c) and (d) for the coal and
iron ore respectively. During testing, the profiles of bulk materials are manually
maintained to a burden profile for the full capacity.

5.3.2.3 Cameras setup and control


A specially designed mount that is independent to the test facility is employed to avoid
induced vibrations, as shown in Figure 5-13. A wooden plate with five slots, each 150
mm long, is fixed to the top of the mount. The cameras are connected to three threaded
bars by screws that also give the freedom to pivot cameras at the joints. These threaded
bars can be fixed in the slots at any height. Therefore, the cameras can be adjusted to any
desired position by shifting the cameras to different slots, sliding and rotating the threaded
bars and pivoting the cameras along the joint screws.

Figure 5-13 Camera setup on the mount frame

To measure the dynamic belt deflection, the cameras are required to release the shutters
simultaneously to capture the belt profile at a specific moment. Therefore, a remote is
employed to connect the cameras and control them wirelessly. However, slight time
183
delays may exist for the cameras to respond to the control signals. As shown in Figure
5-14, three simple tests are conducted to investigate the response delay of the cameras.
The tests involve taking photos of a stopwatch by firing the cameras through the remote.
The response delay refers to the time difference shown in the photos. The maximum time
differences for test 1, 2 and 3 are 0.05s, 0.18s and 0.08s respectively. Therefore, when
analysing the deflection measurements with the maximum equivalent belt speed of
1.5m/s, the target deviations resulted from the time difference can be as much as 270mm,
which is not acceptable.

Figure 5-14 Tests on the response delay of the cameras: (a) test 1; (b) test 2; (c) test 3

This problem is solved by introducing a stopwatch to record the time when the belt photos
are taken, as shown in Figure 5-11. Furthermore, the burst mode is utilized in each
camera. This mode enables 30 continuous photos to be taken within a second, giving a
time interval of 0.02s between each photo, which is accurate enough for the three cameras
to produce photos having the same time. Therefore, only the photos with the same record
time are imported into PhotomodelerTM for analysis.

184
Experimental measurements

The dynamic belt deflection measurements are conducted according to the procedures
shown in Figure 5-6. For each case, the idler sets run for a specific period of time, enabling
the interaction with the belt to be stable. Following this, the cameras are released to
capture the instantaneous belt photos three times, from which three belt profiles are
modelled. The dynamic belt deflection is obtained by averaging the values of the three
belt profiles.

For the convenience of processing belt data afterwards, a project directory is created. Due
to the large number amount, the obtained photos need to be classified into groups based
on the information of the belt thickness, material types, belt tension and speeds.
Therefore, 324 photo groups derived from 2 belts × 3 materials × 3 tension cases × 6
speeds × 3 imaging shots are built up in total. According to the groups, a series of
subfolders are created. The file structure of the project directory is displayed in Figure
5-15. From the top to the bottom, the file levels are the belt types, material types, belt
tension, belt speeds, attempt shots and photo sources.

Figure 5-15 Structure of the belt photo files

One challenge is related to the timing for firing the cameras. As the idler roll sets travel
continuously underneath the belt, it is difficult to shoot the belt photos at the moment
when one of the idler sets is exactly at the beginning of the target coverage area. As shown
185
in Figure 5-16, this is especially the case for relatively high idler speeds. The use of the
camera burst mode for photo acquisition, along with an estimation method detailed in
section 5.3.5 for data processing can overcome this issue. With 30 photos taken each
second, the idler roll sets would only translate 50mm between each photo frame for the
maximum equivalent belt speed of 1.5m/s. One of the photos should capture the idler roll
sets right in the position of the first target. Several attempts are necessary to acquire
suitable belt photos.

Figure 5-16 Idler roll set running through the beginning of the coded targets covering area at a speed of
1.5m/s: (a) approaching; (b) sitting on and (c) passing by

Another problem is related to the migration of the bulk material during testing. The bulk
material on the conveyor belt would progress towards one end of the test facility due to
the vibration of the belt, making it impossible to maintain the material burden profile
consistent during the whole testing duration. Therefore, the bulk material needs to be
profiled manually when changing the belt dynamic conditions.

Dynamic belt profile modelling

The coded targets are processed as Ringed Automatically Detected (RAD) projects in
PhotomodelerTM. A coordinate system (O’-X’Y’Z’) is required to be defined before
importing the belt photos for modelling. The system is considered as the local coordinate
system that provides the reference for calculating the coded target positions in the 3D
space. The system definition can be done by setting the translate, scale and rotate sections
in the preference tab. As shown in Figure 5-17, the system unit scale is defined by coded
target 1 and 2, with a distance of 75 millimetres between each other. Also, coded target 1

186
is assigned as the origin of the coordinate. While the system X’ axis is defined as the
direction from coded target 1 to coded target 2, the Y’ axis is along the direction from
coded target 1 to coded target 3.

Figure 5-17 Definition of the coordinate system for belt modelling

After defining the local coordinates, photos are imported into PhotomodelerTM. The
analysis of the belt photos for each dynamic condition is essentially similar, which
includes identifying and marking the target points, referencing the points across the
photos, orientating according to the system coordinates and calculating the point’s 3D
position. Based on these points, a best fit curved plane can be generated to represent the
dynamic profile of the belt.

An example of the 6mm thickness belt deflection with the coal for 10kN belt tension and
1m/s belt speed is given to illustrate the modelling process in detail. Figure 5-18 shows
the PhotomodelerTM interface that consists of the photo list and properties section on the
left side, photo window in the middle and 3D view window on the right side. Specifically,
the properties section contains the basic information such as IDs, types and coordinates
of entities in the model. These entities include the points, lines and surfaces. The photo
window gives the detailed views of the belt images where editing can be undertaken. The
3D view window displays the modelled points, along with the locations of the cameras.
It is worth noting that some targets near the edges of the belt might not be recognised due
187
to the excessive deformation of the coded target shapes. In this case, manual marking and
referencing of the targets are performed in the photo window, followed by the target
position calculations. The missing points can then be modelled and displayed in the 3D
view window.

Figure 5-18 PhotomodelerTM interface displaying 3D positions of coded targets on the belt underside

In order to maintain consistency, the local coordinate system O’-X’Y’Z’ is transposed to


the global coordinate system O-XYZ used in the coupled modelling. The origin is situated
in the middle of the centre idler roll. Based on the calculated point positions, a best fit
surface is created to represent the related dynamic belt profile, as shown in Figure 5-19.
By repeating the modelling procedures for all the photo groups, 324 projects are created
and solved, giving the dynamic belt profiles. The modelled belt profiles are stored in the
project folders for subsequent analysis of the dynamic longitudinal and transverse belt
deflection.

188
Figure 5-19 Measured dynamic belt profile for 10kN belt tension and 1m/s belt speed

The accuracy of the belt modelling in PhotomodelerTM is dependent on a number of


impact factors including; the photo resolution, camera calibration, shooting angles
between photos, photo orientation, photo redundancy and target types. A high resolution
of the images is more likely to precisely identify and locate the targets on the belt. Proper
camera calibrations can provide more accurate camera intrinsic parameters that are the
foundation of the photogrammetry algorithm. Angles between photos are the collections
of the subtended angles of all projective lines produced by the two photos. The accuracy
will decline with the decrease of the projective line angle. Photo orientation is closely
associated with each camera position, including the location and angle of the camera,
thereby contributing substantially to the project accuracy. Photo redundancy refers to the
overlap of targets across photos. Target positions are generally well computed when they
appear on multiple photos, instead of only two photos. Lastly, the types of targets
determine how accurate targets can be marked in the photos. Obviously, a clear visible
target is more likely to be identified and marked, resulting in a high overall accuracy of a
project.

189
Figure 5-20 Project accuracy assessment according to the impact factors

The PhotomodelerTM projects can be approximately grouped into three accuracy levels in
Figure 5-20. The accuracy indicator of each level is the one sigma standard deviation
accuracy ratio. Based on the impact factors of the accuracy, the level of the belt projects
should be in the middle of low accuracy and average accuracy. In order to determine the
actual accuracies of the belt projects, external accuracy checks are carried out, which
imply that the maximum deviation is less than 10mm for the belt length of 1200mm,
giving an accuracy of 99.17%. The maximum deflection of the testing belt is expected to
be within the range of 30mm. Thus, the maximum deviation that may occur is less than
0.25mm, which is tolerable in this study.

Modelling data processing

For each modelled dynamic belt profile, the target coordinates are exported as a txt file
as shown in Figure 5-21. The first column is the number of the targets and the following
columns give the local X, Y and Z coordinates of targets. Thus, these coordinates are
required to be converted into the global coordinate system for the determination of the
dynamic belt deflection.

190
Figure 5-21 Structure of the exported data of target coordinates from Photomodeler

Due to the large number of the belt projects (324), it is impractical to extract and convert
the desired target coordinates in the txt files manually. Instead, Python programming
provides a shortcut to achieve this more efficiently and effectively. The python code for
extracting data is attached in Appendix I. The working procedures are summarized as
follows.

• Search the numbers of the targets along the belt centreline sequentially. According
to the target positioning, the target numbers from left to the right are 67, 97, 98,
78, 77, 90, 89, 91, 92, 79, 80, 55, 56, 31, 32, 24, 23.
• Extract the relevant local coordinates of the targets and record.
• Convert the local coordinates into the global coordinates.
• Create a blank file and input the converted data for the longitudinal belt deflection.
• The steps above are performed to extract the transverse belt deflection.
• Loop all the txt files in the project folders to complete the data extraction.

The conversion of the local and global coordinate systems is challenging as the global
coordinate origin cannot be measured directly. Like other points located in the area where
the belt and idler contact, it is not possible to image the coded targets. To calculate the
positions of the target over the idlers, an estimation is made, in which the idlers are
assumed to be located at only two positions when the belt photos are taken. One position
is the idlers directly over the targets and the other is the idlers in the middle of the targets,
191
as shown in Figure 5-22. Regardless of the idler positions, the targets that cannot be
calculated and modelled by software are marked as red. Where the idlers are located is
determined by how many targets are imaged within the idler spacing. Figure 5-22 (a)
shows the first position where there are only 15 targets displayed for the idler spacing,
while Figure 5-22 (b) displays the other position where there are 16 targets for the idler
spacing. However, as the targets 2 and 17 are too close to the idlers, they cannot be
modelled either.

The coordinates of the red targets are approximated and derived from their adjacent target
positions. As the belt deflection around the idlers is relatively low, it is assumed the
displacement of the first three targets from the idlers have a linear relationship. This
means if the vertical displacement of target 2 is Δ, the displacement of target 3 is
estimated as 2Δ in Figure 5-22 (a), whereas the displacement of 1.5Δ is calculated for
target 3 in Figure 5-22 (b). As target 3 has already been calculated in Photomodeler, the
origin coordinates of the global coordinate system can be determined, and the local target
coordinates can be calculated by referring to the global coordinate origin.

Figure 5-22 Estimation of the target positions nearby the idler rolls

For each operational condition, the dynamic longitudinal belt deflection is represented by
a curve fitting to the solved target positions. Figure 5-23 shows an example of longitudinal
192
deflection for the 6mm thickness belt loaded with coal at the belt speed of 1.25m/s and
tension of 10kN. The square, triangle and round marks present the target positions in test
1, 2 and 3 respectively. A second or third order polynomial trendline derived from the
least square method is generated. It is considered as the associated dynamic longitudinal
deflection.

Figure 5-23 Dynamic longitudinal belt deflection based on the measured target positions (6mm belt
thickness, coal, 1.25m/s belt speed, 10kN tension)

The maximum belt sag point may occur in the middle of the predefined targets, making
the transverse deflection difficult to describe. For example, according to the curve fit
equation in Figure 5-23, the maximum deflection value is located at x= 607.58 mm, where
none of the targets are positioned. For simplification, the transverse deflection is assumed
to be approximately at the targets nearest the middle idler spacing. Moreover, there are
only 5 targets on half of the belt’s cross-section, which is not sufficient to plot a curve fit.
Instead, a straight line is used to connect each target based on the averaged coordinates
from the three tests. This represents the transverse deflection, as shown in Figure 5-24.

193
Figure 5-24 Dynamic transverse deflection based on the measured target positions (6mm belt thickness,
coal, 1.25m/s belt speed, 10kN tension)

With a similar approach, dynamic longitudinal and transverse belt deflection for other
belt speeds, tensions, belt thickness and bulk materials are computed, the results will be
presented and discussed in detail in the following section.

5.4 Results and discussions

As presented in section 5.3, the measurements of the dynamic belt deflection are
conducted for the 6mm and 12mm thickness belts with coal and iron ore bulk materials
under variable belt speed and tension conditions. The measurement results are obtained,
from which the longitudinal and transverse belt deflection for each case are presented in
Appendix J. The results of the belt deflection with different belt speeds and tensions are
compared. The factors that lead to the variation of the belt deflection are of particular
interest.

Furthermore, the experimental results are compared to the results obtained from the
simulations. The comparisons are made in terms of both the dynamic longitudinal and
transverse belt deflection, facilitating the validation of the coupled FEM and DEM model.

194
Influences of the operational conditions

The belt speed and tension are investigated in this study to consider their influences on
the dynamic belt deflection. Generally, a higher belt speed can lead to larger transverse
and vertical accelerations of the material on the belt and increased transition frequency of
the bulk materials active and passive stress states. This may affect the forces acting on
the belt, thereby resulting in variation of the belt deflection. However, this relationship is
less intuitive due to the complexity of the belt and bulk material interaction.

Moreover, the belt tension also plays a significant role in determining the belt deflection.
Roberts [23, 81] derived the theoretical calculation to estimate the belt deflection, as
shown in Equation 5-6.

𝑞𝑔𝑥 2 𝑞𝑔𝑎
𝑦(𝑥) = + [1 − cosh (√𝑇⁄𝐸𝐼 𝑥)] Equation 5-6
2𝑇 𝑎√𝑇⁄𝐸𝐼
2T√𝑇 ⁄𝐸𝐼 𝑠𝑖𝑛ℎ( )
2

Where a is the idler spacing; E is belt young’s modulus; I is the moment of inertia of belt
section; T represents belt tension; q is the total mass per unit length; g represents the
acceleration of belt element; x is the coordinate of the point on the belt in the longitudinal
direction. The magnitude of y(x) is dominantly dependent on the first item of Equation
5-6. Therefore, as the belt tension increases linearly, the belt deflection should decrease
inversely proportionally.

For each combination of the belt and bulk material, Figure 5-25 shows the maximum belt
deflection varying with the belt speed for the belt tensions of 5kN, 10kN and 15kN.

195
Figure 5-25 Measured maximum dynamic belt deflection versus speed: (a) 6mm belt with coal; (b) 6mm
belt with iron ore; (c) 12mm belt with coal; (d) 12mm belt with iron ore

It is observed that the maixmum belt deflection slightly fluctuates with the belt speed
increasing from 0.25m/s to 1.5m/s, indicating the independence of the belt deflection on
the belt speed. The maximum and minimum of maximum deflection for each tension case
occur randomly at any arbitrary belt speeds. Furthermore, it is evident that the deflection
of 12mm thickness belt is more likely to be independent on the belt speed compared to
the 6mm thickness, although both belts show minor variations of the deflection.

While the belt speed has minimal impact on the degree of the belt deflection, the increase
of the belt tension leads to the significant decrease of the deflection. It is reasonable to
conclude that the belt speed has limited influence on the degree of the belt deflection as
the maximum dynamic belt deflection remains consistent over the range of belt speeds
tested for each belt tension case.

196
Longitudinal and transverse belt deflection

As noted above, the effect of the belt speed when analysing the belt deflection is minimal
over the range of belt speeds tested. Therefore, the measured target coordinates are
integrated regardless of the belt speed and classified based on the belt tension. As
mentioned in section 5.3.5, the longitudinal deflection is represented by curve-fit
generated based on the measured target positions, while the transverse deflection is
represented by the straight line linking the targets.

The longitudinal and transverse belt deflection are presented in Figure 5-26, showing the
variation with the belt tension for the 6mm and 12mm thickness belts conveying coal and
iron ore. In Figure 5-26 (a), (b), (c) and (d), the longitudinal deflection is placed at the
left and the transverse deflection is shown to the right, with the belt tensions of 5kN, 10kN
and 15kN marked as blue, red and black respectively.

197
Figure 5-26 Experimental measurements of the dynamic belt deflection: (a) 6mm belt with coal; (b)
12mm belt with coal; (c) 6mm belt with iron ore; (d) 12mm belt with iron ore

As shown in Figure 5-26, the belt exhibits approximately a symmetric longitudinal


deflection over the idler spacing, whereas the transverse belt deflection shows a curved
profile. The maximum longitudinal belt deflection is observed to occur in approximately
198
the middle of the idler roll spacing. In terms of the transverse deflection, a certain amount
of deflection is observed around the idler junction, which is contrary to the assumption
introduced by Krause and Hettler [64] and Spaans [90] that presumed the belt sides flap
like wings with the idler junction as the pivot points. The obtained belt cross-sectional
profile was also observed and confirmed by Ilic [39] who investigated the belt profiles
for static conditions.

It is also evident that dynamic belt deflection is largely dependent on the belt tension. For
each combination of the belt and bulk material, the dynamic belt deflection decreases
with a nonlinear trend as the belt tension increases linearly. This trend is more distinct for
the longitudinal belt deflection than the transverse deflection as the magnitude of the belt
deflection is substantially less than the overall geometry of the belt profile.

Furthermore, it is found that the properties of the conveyor belts and bulk materials can
have some effect on how the belt deforms during operation. The maximum belt deflection
is observed for the 6mm thickness belt with the iron ore. It is most likely that lower bulk
density and higher belt stiffness will lead to less dynamic belt deflection.

5.5 Validation of the coupled FEM and DEM model

The experimental results of the belt deflection are used to validate the coupled FEM and
DEM model developed in chapter 4. Both the measured longitudinal and transverse
deflection are compared to the simulated results obtained from the model with the same
belt, bulk material and tension. The belt speed is not considered, and all the simulation
results are based on a belt speed of 1m/s. The comparisons are presented below.

Comparison of the longitudinal belt deflection

The experiment and simulation comparisons of the longitudinal belt deflection are shown
in Figure 5-27 where each graph presents the comparison for different belts and materials.

199
The blue, red and black colours represent the belt tension of 5kN, 10kN and 15kN. The
solid lines represent the experimental measurements, whereas the dash lines represent the
simulation results.

Figure 5-27 Comparison of the experiment and simulation results of the longitudinal deflection for (a)
6mm belt with coal; (b) 12mm belt with coal; (c) 6mm belt with iron ore; (d) 12mm belt with iron ore

200
From Figure 5-27, it is evident that good overall correlation between the experiments and
simulations can be observed. It is suggested that the deviation of the longitudinal
deflection is minimal, with the maximum deviation of 3.12mm occurring for the 6mm
thickness belt with the iron ore under the belt tension of 5kN. With respect to the
magnitude of the related longitudinal belt deflection (34mm), the deviation can be
considered relatively negligble.

However, some discrepancy is exhibited between the simulations and experiments,


especially for the first half of the idler spacing (0-600mm) in Figure 5-27 (b), the middle
idler spacing (450-900mm) in Figure 5-27 (c) and the second half of the idler spacing
(600-1200mm) in Figure 5-27 (d). This may be due to the fact that the bulk material is
slightly forced to migrate to the direction that the idlers move, resulting in a minor change
of the bulk material burden profile which cannot be perfectly maintain by hand during
each experiment interval. Nevertheless, it can be concluded that good accuracy can be
achieved in the simulations, indicating that the coupled FEM and DEM is capable of
predicting the dynamic longitudinal belt deflection for the belts and bulk materials
investigated in this study.

Comparison of the transverse belt deflection

Comparisons of the dynamic belt deflection are presented in Figure 5-28. The comparison
for each belt tension is separated in three graphs for better visualization. For the 6mm belt
shown in Figure 5-28 (a) and (c), the simulations show good agreement with the
measurement except for the belt side edges where the deflection calculated by the
modelling is consistently greater than that from the experiments. The deviation may result
from the method of applying the belt tension. The belt tension is applied through two
pulleys at both ends of the test rig, which may lead to the tension not evenly distributed
along the belt width. The stress at the belt edges may be more substantial than that in the
middle of the belt. Moreover, the absence of effective transition zones used for the belt
deforming from the troughed profile on the idlers to the flat profile at each end of the rig
may contribute further to the stress concentration at the belt edges.

201
For the 12mm belt shown in Figure 5-28 (b) and (d), it is evident that good correlation is
achieved between the experiments and simulation results. Some discrepancy is observed
around the sections of the belt sides and idler junctions. However, the discrepancy is less
distinct compared to the 6mm belt and is considered acceptable.

Figure 5-28 Comparison of the experiment and simulation results of the transverse deflection for (a) 6mm
belt with coal; (b) 12mm belt with coal; (c) 6mm belt with iron ore; (d) 12mm belt with iron ore
202
In conclusion, the comparisons indicate the validation of the coupled FEM and DEM
model and suggest the coupled model can provide accurate analysis for the dynamic belt
deflection including both the longitudinal and transverse deflection.

5.6 Summary

This chapter describes an innovative test rig that takes the place of a conventional belt
conveyor by moving a series of idler sets underneath a fixed belt. This rig serves as a
useful research tool due to the ability to work with a stationary belt during dynamic
simulated motion. The test rig, in conjunction with the photogrammetry technique, has
proven to be an effective method to measure the belt deflection for dynamic conditions.

Using a variety of belts and bulk materials with different properties, a series of
experimental measurements of the belt deflection is undertaken over a range of belt
speeds and tensions to investigate the influences of the operating conditions. Due to the
large amount of data obtained from the measurements, Python programming codes are
developed to process and analyse the experimental results. The results presented clearly
demonstrate the influence of the belt speed and tension on the dynamic belt deflection.
For each test case with different types of belt and bulk material, a significant decrease in
the deflection is observed with an increase in the belt tension, but limited variation due to
the belt speed.

To validate the coupled FEM and DEM model, the experimental results are compared to
the simulations, in which the simulated deflection correlates well with the measured
values. A high degree of overlap in terms of the longitudinal and transverse belt deflection
is presented, showing a good correlation between the simulations and experiments.
Furthermore, the experimental results show good agreement with the variation in belt
tensions, verifying the deflection trends identified by the coupled model. Overall, the

203
trends simulated with the variation in the belt speeds and tensions as well as different
kinds of belts and materials are reflected in the experimental values.

It is expected that the outcome of this chapter can be directly used as technical support
for the design of belt conveyor systems. The findings include:

• The purposely designed recircuiting belt test facility, developed at the University
of Newcastle, is capable of being utilised to carry out dynamic belt deflection
measurements.
• The measuring method derived from the photogrammetry technique can be
utilised to investigate the belt deflection for dynamic conditions.
• The experimental measurements suggest that for the range of speeds investigated
the belt deflection is not significantly influenced by the belt speed. As expected
the increased belt tension led to a decrease in belt deflection, although the
deflection is not linearly proportional to the belt tension. Moreover, the properties
of the belt and bulk material inevitably contribute to the magnitude of the belt
deflection.
• The comparisons of the longitudinal and transverse belt deflection show good
correlation between the measurements and the simulations, indicating the
validation of the developed FEM and DEM coupled model for accurately
analysing belt deflection under dynamic conditions.

204
CHAPTER 6: APPLICATION OF THE COUPLED FEM AND DEM MODEL IN
PREDICTING FLEXURE RESISTANCE AND FUTURE WORK

The preceding chapters have presented a coupled FEM-DEM model and experimental
measurement method to analyses dynamic deflection of conveyor belts. The developed
coupled FEM-DEM model allows the deflection to be predicted based on the
configuration of a belt conveyor, properties of belt and bulk material and operational
conditions. In addition, the coupled model can be used to describe the interaction of the
belt and bulk material and provide the forces acting on the belt. Further research should
focus on how the coupled FEM-DEM model developed integrates into conveyor design
and how accurate this model can be. This chapter presents the application of the coupled
FEM-DEM model in quantifying the flexure resistance of a belt conveyor system. This
aims to benefit engineers during the conveyor design stage. By optimising the belt
conveyor design parameters, the flexure resistance can be minimized and the contribution
to the main resistance can be reduced.

Furthermore, recommendations are offered to where the author believes further research
may be undertaken.

6.1 Introduction

The flexure resistance is induced as a conveyor belt and carried bulk material experience
sag between successive idler roll sets. It consists of the belt and bulk material flexure
resistances, both of which are not possible to isolate and measure independently. Thus, it
is extremely difficult to accurately predict the contribution of the flexure resistance to the
main resistance. While the belt flexure resistance is determined by the belt properties,
including the rigidity and hysteresis, the bulk material flexure resistance is dominated by
the volume flow being conveyed and the internal friction of the bulk material.

205
Limited research has been conducted in terms of the flexure resistance. Moreover,
constraints on comprehensively understanding the belt and bulk material properties lead
to these variables being in some instances overlooked. For informed design, the belt and
bulk material properties, along with the belt and bulk material interaction should be
considered, thereby offering potential reduction of the main resistance. This section
presents the definitions and theoretical calculation models of the belt and bulk material
flexure resistances.

Belt flexure resistance

The belt flexure resistance occurs due to the cyclic longitudinal and transverse deflection
of the belt over each successive idler roll set. The asymmetric belt deflection, in
conjunction with the hysteresis losses that are associated with the induced belt bending,
leads to the presence of the belt flexure resistance.

Some work has been done in order to quantify the belt flexure resistance. Lachmann [97]
investigated the energy loss due to the hysteresis and bending of a flat rubber belt by
introducing an experimentally determined damping factor. Spaans [40, 98] developed a
theoretical model to approximate the belt flexure resistance of a flat belt. In Spaans’
model, the longitudinal belt deflection was modelled as two separate radii of curvature,
one at the idler roll and the other at the maximum sag point. The flexure resistance per
idler set is approximated by

𝑀1 𝑀2
𝐹𝑏𝑒𝑙𝑡_𝑓𝑙𝑒𝑥 = 𝜓𝑏 ( + ) Equation 6-1
𝑟1 𝑟2

Where ψb is the hysteresis loss factor of the belt, and measured under a dynamic bending
moment, with ψb = 0.6 commonly used. M1 and M2 are the bending moments of the belt
above the idler roll and at the maximum sag point respectively. r1 and r2 are the radii of
curvature over the idler roll and at the point of maximum sag respectively.

206
However, the above approximations were restricted to flat belts. In view of this limitation,
Wheeler [17] provided a model to predict the deflection of a troughed belt that was
subjected to a non-uniform pressure distribution based on the induced bending moments
determined using a finite difference method. The total flexure resistance was calculated
by summing the flexure resistance occurring at each node along the length of the conveyor
belt, which is given by

(𝑀𝑥 )𝑚,𝑛 ∆𝑥𝑦


𝐹𝑏𝑒𝑙𝑡_𝑓𝑙𝑒𝑥 = 𝜓𝑏 ∑𝑛𝑚𝑎𝑥 𝑚𝑚𝑎𝑥
𝑛=1 ∑𝑚=1 Equation 6-2
(𝑟)𝑚,𝑛

The belt flexure resistance is highly dependent on the belt properties, especially the belt
rigidity and bending modulus. A low belt rigidity will lead to the belt being subjected to
small bending moments and therefore a low belt flexure resistance. Nevertheless, the
magnitude of the belt flexure resistance is negligible due to the small overall contribution
in comparison to the bulk material flexure resistance. The flexure resistance is dominated
by the bulk material flexure resistance, especially in the case of wide belts with large
volumes of bulk materials. Our main focus is on the prediction of the bulk material flexure
resistance rather than the belt flexure resistance.

Bulk material flexure resistance

The bulk material flexure resistance occurs because the bulk material conforms to the
movement of the deformed conveyor belt, and undergoes complex interactions with the
belt that opens and closes transversely, and displaces upwards and downwards over
successive idler spacings. Flexure resistance results from the internal friction of the bulk
material and friction at the interface of the belt and bulk material.

To calculate the bulk material flexure resistance, the relative movement of the bulk
material is required to be resolved with the consideration of the properties of the bulk
material. The belt deflection, troughing configuration and belt speed may considerably
influence the magnitude of bulk material flexure. Additionally, the properties of the bulk

207
material, such as the bulk density, material surcharge angle, internal friction and friction
between the belt and bulk material determine the pressure distribution acting on the belt,
and therefore the bulk material flexure resistance.

Several researchers have conducted investigations into the bulk material flexure
resistance using the analytical approaches [24, 30, 99], experimental investigations [100,
101], and combined experimental and numerical methods [25]. Harrison et al. [102]
introduced an experimental method to measure the bulk material flexure resistance by
measuring the force to pull an idler set over a belt with and without bulk material. Spaans
[40] developed a theoretical model for calculating the bulk material flexure resistance
based on the calculation of the difference between the work done during the active and
passive stress states as the material moves between consecutive idler sets. Wheeler [17]
combined the approach of Spaans with his finite difference belt model and provided a
more accurate numerical approach to quantify the bulk material flexure resistance.

6.2 Calculation of bulk material flexure resistance

For the calculation of the bulk material flexure resistance, two models developed by
Spaans and Wheeler are presented. While the model of Spaans is widely adopted by
conveyor designers as a directive estimation of the bulk material flexure resistance,
Wheeler’s model allows more variables to be considered.

Spaans’ theoretical calculation model

Spaans’ model considers compressive forces that the bulk material undergoes during the
active and passive stress states as it travels from one idler set to the next. Due to internal
friction, energy is absorbed in the bulk material. For the longitudinal bulk material flexure
resistance, Spaans assumes an elemental volume of bulk material constrained by vertical
borders over the belt central section that is simplified as a flat belt. For the passive stress
state as shown in Figure 6-1, the elemental material volume is subjected to horizontal
compressive forces that bend the volume with an angular rotation of dφ. Correspondingly,

208
the energy will be released for the active stress state. Therefore, the loss due to the flexure
resistance during this process can be calculated.

Figure 6-1 Longitudinal bulk material flexure resistance calculation model [40]

For the calculation of the transverse bulk material flexure resistance, the belt is assumed
to pivot at the belt junctions with the same sag magnitude of the central belt, as shown in
Figure 6-2. The forces acting on the sides can be obtained from the model of Krause and
Hettler [29]. Thus, the transverse bulk material flexure resistance can be quantified based
on the losses during the belt opening and closing.

Figure 6-2 Transverse bulk material flexure resistance calculation model [40]

Spaans notes that the transverse bulk material flexure resistance is considerably smaller
than the longitudinal component. The bulk material flexure resistance is dominated by
the longitudinal deflection, rather than the transverse deflection of the belt. For simplicity,
the longitudinal bulk material flexure Fm,flex is derived as

209
𝐹𝑚 (𝐹𝑏 +𝐹𝑚 ) 4𝑠𝑖𝑛∅𝑖 ℎ2
𝐹𝑚,𝑓𝑙𝑒𝑥 = ( ) 𝑒 −𝜔𝑥 Equation 6-3
√𝑇∙𝐸𝐼 𝑐𝑜𝑠∅2 12𝑎
𝑖

Where Fm and Fb are the normal forces due to the weight of the bulk material and belt
respectively; EI is the belt flexural rigidity; T is the belt tension; Øi is the internal friction
angle; h is the average height of the bulk material; a is the idler spacing; 𝜔 = √𝑇/𝐸𝐼; x
is the distance from the idler roll set where the stiff trough-shaped belt transitions into a
slack one and where the radius of curvature is smallest.

Based on Equation 6-3, the influence of bulk material internal friction, idler spacing and
belt sag ratio can be analysed. As shown in Figure 6-3 for a 1.2m wide belt with a bulk
material density of 1000kg/m3, the bulk material flexure resistance per unit length
increases with increasing internal angle of friction and belt sag ratio, and decreases with
increasing idler spacing.

Figure 6-3 Bulk material flexure resistance versus internal friction angle and sag ratio (belt width= 1.2m,
bulk density= 1000kg/m3): (a) sag ratio= 1%; (b) internal friction angle= 35°[40]

Wheeler’s 3D FEM model

While a similar approach to that of Spaans is adopted to calculate the bulk solid flexure
resistance, Wheeler improved the calculation by integrating with his finite difference
model of belt deflection. In Wheeler’s approach, the belt is subdivided into a series of
elements, for which the prediction of the bulk material flexure resistance is conducted in
210
a finite element wise approach. Therefore, this model can fully consider the troughed
profile of the belt and accurately describe the relative movement of a bulk material.
Additionally, the influence of belt speeds on the flexure resistance also can be
investigated by Wheeler’s model.

As detailed in section 1.2.2, the forces acting on the belt side sections can be derived from
the modified Coulomb Wedge theory. The volume of a bulk material supported by the
belt side section is governed by the internal failure plane of the material. With the side
belt sag calculated by the finite difference model, the work (w)m,n displacing the bulk
material can be calculated by multiplying the normal force acting per unit segment
(Fz_bsol)m,n with the sag of the bulk material (w)m,n.

(𝑤)𝑚,𝑛 = (𝐹𝑧𝑏𝑠𝑜𝑙 )𝑚,𝑛 (𝑤)𝑚,𝑛 = (𝑝𝑧𝑏𝑠𝑜𝑙 )𝑚,𝑛 (∆𝑥𝑦)2 (𝑤)𝑚,𝑛 𝑤ℎ𝑒𝑟𝑒, 𝑛𝑗𝑢𝑛𝑐𝑡 < 𝑛 ≤ 𝑛𝑚𝑎𝑥 Equation 6-4

Therefore, the transverse bulk material flexure resistance can be approximated by the
difference between the work done in deflecting the bulk material during the active and
passive stress states.

2 𝑛𝑚𝑎𝑥∑ 𝑚𝑚𝑎𝑥∑
𝐹𝑡𝑟𝑎𝑛𝑠_𝑓𝑙𝑒𝑥_𝑏𝑠𝑜𝑙 = ∑𝑛=𝑛𝑗𝑢𝑛𝑐𝑡+1 (∑𝑚=𝑚𝑡𝑟𝑎𝑛𝑠(𝑃𝑧_𝑏𝑠𝑜𝑙 )𝑚,𝑛 (𝛥𝑥𝑦)2 (𝑤)𝑚,𝑛 −
𝑎

∑𝑚𝑡𝑟𝑎𝑛𝑠−1
𝑚=1 (𝑃𝑧_𝑏𝑠𝑜𝑙 ) (𝛥𝑥𝑦)2 (𝑤)𝑚,𝑛 ) Equation 6-5
𝑚,𝑛

Similarly, the longitudinal bulk material flexure resistance is derived from the difference
between the work done in displacing the material over the centre idler roll from the active
to passive stress state. Based on Rankine’s theory, the horizontal pressure inside the
volume of the bulk material can be calculated according to the vertical pressure
distribution. For the passive stress state, the horizontal pressure is given by

(𝑃𝑥_𝑏𝑠𝑜𝑙 )𝑚,𝑛 = 𝐾𝑙𝑝 (𝑃𝑧_𝑏𝑠𝑜𝑙 )𝑚,𝑛 Equation 6-6

211
For the active stress state, the horizontal pressure is given by

(𝑃𝑥_𝑏𝑠𝑜𝑙 )𝑚,𝑛 = 𝐾𝑙𝑎 (𝑃𝑧_𝑏𝑠𝑜𝑙 )𝑚,𝑛 Equation 6-7

where Klp and Kla are the longitudinal passive and active pressure factors respectively,
which can be expressed as

1+𝑠𝑖𝑛 𝜑𝑖
𝐾𝑙𝑝 = 𝑓𝑜𝑟 1 ≤ 𝑚 ≤ 𝑚𝑡𝑟𝑎𝑛𝑠
1−𝑠𝑖𝑛 𝜑𝑖
{ 1−𝑠𝑖𝑛 𝜑𝑖
Equation 6-8
𝐾𝑙𝑎 = 𝑓𝑜𝑟 𝑚𝑡𝑟𝑎𝑛𝑠 ≤ 𝑚 ≤ 𝑚𝑚𝑎𝑥
1+𝑠𝑖𝑛 𝜑𝑖

The horizontal pressure acting on a segment of the bulk material on the central section of
the belt is detailed in Figure 6-4 (a), (b) and (c) with the pressure bounded by the top
surface and the failure plane respectively.

(a) (b) (c)

Figure 6-4 Cross-sectional area considered for longitudinal bulk material flexure resistance [17]

The angular rotation (η)m,n is calculated from the radius of curvature of the belt (r)m,n.

212
𝛥𝑥𝑦
(𝜂)𝑚,𝑛 = Equation 6-9
(𝑟) 𝑚,𝑛

Therefore, the work required to deform the volume of the segment of the bulk material
for each finite element can be expressed as

ℎ𝑏𝑠𝑜𝑙 −𝑧
𝑑(𝑊)𝑚,𝑛 = ( ) (𝑃𝑧_𝑏𝑠𝑜𝑙 )𝑚,𝑛 𝐾1 𝛥𝑥𝑦(𝜂)𝑚,𝑛 𝑧 ⋅ 𝑑𝑧 Equation 6-10
ℎ𝑏𝑠𝑜𝑙

Correspondingly, the longitudinal bulk material flexure resistance is given by

1 (ℎ′𝑏𝑠𝑜𝑙 )𝑚,𝑛
∑𝑚𝑚𝑎𝑥
𝑚=𝑚𝑡𝑟𝑎𝑛𝑠 (𝑃𝑧𝑏𝑠𝑜𝑙 ) 𝐾 𝛥𝑥𝑦(𝜂)𝑚,𝑛 (ℎ′𝑏𝑠𝑜𝑙 )2𝑚,𝑛 [ − ]
2 𝑚,𝑛 𝑙𝑝 2 3(ℎ𝑏𝑠𝑜𝑙 )𝑚,𝑛
𝐹𝑙𝑜𝑛𝑔_𝑓𝑙𝑒𝑥_𝑏𝑠𝑜𝑙 = ∑𝑛𝑗𝑢𝑛𝑐𝑡 { }
𝑎 𝑛=1 1 (ℎ′𝑏𝑠𝑜𝑙 )𝑚,𝑛
− ∑𝑚𝑡𝑟𝑎𝑛𝑠−1
𝑚=1 (𝑃𝑧𝑏𝑠𝑜𝑙 ) 𝐾𝑙𝑎 𝛥𝑥𝑦(𝜂)𝑚,𝑛 (ℎ′𝑏𝑠𝑜𝑙 )2𝑚,𝑛 [ − ]
𝑚,𝑛 2 3(ℎ𝑏𝑠𝑜𝑙 )𝑚,𝑛

Equation 6-11

Where (hbsol)m,n and (h’bsol)m,n are given by Equation 1-18, being the heights of the bulk
solid bounded by the top surface and the failure plane on the node (m,n) of the belt central
section respectively. Therefore, the total flexure resistance of the bulk material can be
calculated by summing the transverse and longitudinal components.

6.3 Coupled FEM-DEM flexure resistance model

One application of the coupled FEM-DEM model is to calculate the flexure resistance of
a bulk material. Different from the models of Spaans and Wheeler that calculate the bulk
material acting forces using theoretical calculations, the coupled model directly provides
the forces acting on each element based on the DEM which offers the advantage of
simulating each particle’s behaviour and not requiring the assumption of the transition of
the active and passive stress states. The energy loss attributable to the bulk material
flexure resistance can be calculated in a similar way to that of Wheeler. The calculation

213
involves computing the work done by the volume of the bulk material on each finite
element and summing the work difference during the active and passive stress states.

To predict the magnitude of the flexure resistance, a series of simulations are conducted
based on the coupled FEM-DEM model, using a variety of belt speeds to highlight the
influence on the resistance. Simulations are performed for gravel and coal at varying idler
spacings using the 6mm thickness fabric belt. The simulation programs are attached in
Appendix K. The results presented clearly demonstrate the influence of the bulk material
properties and belt speed on the flexure resistance and correlate well to existing models.

Bulk flexure resistance modelling

The configuration of the belt conveyor system is set to be the same as the previous
coupled model in Chapter 5, except for the idler spacing being varied from 1050mm to
1250mm for the gravel and coal respectively. The main dimensions are listed in Table
5-1.

The gravel and coal used have similar boundary friction angles with the fabric belt (wall
friction angles), but significantly different internal friction angles and bulk densities. The
properties of the bulk material, including the internal friction angle, wall friction angle
and the bulk density are measured, while the bulk material surcharge angle is measured
during testing using the same gravel and coal. The measured properties of the bulk
material are shown in Table 6-1.

Table 6-1 Properties of the bulk material used in the coupled FEM-DEM simulations for predicting the
bulk material flexure resistance
Bulk material Gravel Coal
Internal friction angle, (°) 45 37
Wall friction angle, (°) 32 30
Bulk density, (kg/m3) 1400 800
Surcharge angle, (°) 25 25

214
As illustrated in section 3.3.3, DEM calibration is performed for the gravel and coal to
determine the key parameters used in the coupled FDM-DEM simulations. The values of
the internal particle friction, particle to wall friction and particle rolling friction are
summarized in Table 6-2.

Table 6-2 DEM simulation key parameters for the used bulk materials
Bulk material Gravel Coal
Internal particle friction, μp 0.5 0.2
Particle to wall friction, μw 0.62 0.57
Particle rolling friction, μr 0.8 0.5
2
Young’s modulus, E, (N/m ) 1e7 1e7
Poissons ratio, v 0.3 0.3
Coefficient of restitution, εres 0.2 0.2

The 6mm thickness fabric belt that generally led to higher belt deflection is used to
amplify the bulk material flexure resistance for this research. The main parameters of the
belt are presented in Table 2-2. The belt tension is set as 7.5kN to be consistent with the
calculations of Wheeler and facilitate the comparisons of the results. The belt speed is
varied in the range from 0.5m/s to 3.5m/s, with an increment of 0.5m/s, once again to
compare to Wheeler’s results.

From the coupling, the pressure distribution on the belt resulting from the bulk material
interaction can also be obtained. The pressure acting on each belt element is significant
in terms of calculating the flexure resistance. As examples, the pressure distribution of
the gravel and coal at a belt speed of 2m/s are presented in Figure 6-5 (a) and (b)
respectively, where the bulk material is travelling from left to right.

215
Figure 6-5 Bulk material pressure distribution obtained from the coupled FEM-DEM model (Units: Pa):
(a) gravel with 3m/s belt speed over 1050mm idler spacing; (b) coal with 2m/s belt speed over 1250mm
idler spacing

As shown in Figure 6-5, it can be observed that the bulk material forces acting on the first
half of the belt are lower than those on the second half. This is because the active and
passive stress states are induced when the bulk material is being conveyed. While
considerably higher forces are found at the location where the bulk material approaches
the idler rolls, only minimal forces are acting on the position immediately after the idler
rolls. The bulk material, to a certain degree, is impacting the belt before the idler roll sets
and lifted up after. This trend is also confirmed by Dratt’s research work [36, 37].

Result discussion

The bulk material flexure resistance is calculated once the coupled FEM-DEM
simulations reach a convergent state. As shown in Figure 6-6, the calculated bulk material
216
flexure resistance is plotted against the belt speed. Furthermore, comparisons are made to
the flexure resistance values obtained from the models of Wheeler and Spaans, which are
based on the same conditions, including the properties bulk material and belt, belt
conveyor configuration and speeds.

Figure 6-6 Comparisons of the calculated flexure resistance based on the models of FEM-DEM coupling,
Wheeler and Spaans at a range of belt speeds for: (a) gravel with 3m/s belt speed over 1050mm idler
spacing; (b) coal with 3m/s belt speed over 1250mm idler spacing

As shown in Figure 6-6 (a) for the case of gravel, the bulk material flexure resistance
calculated by the coupled model increases with varied rates with increasing belt speed. It
is believed that the increase of the flexure resistance with belt speed is attributable to the
increased loading acting the second belt half where higher accelerations of the material
occur due to the larger speeds. Another reason behind may be due to the shift of the belt
deflection profile with the transition of the active and passive stress states moving closer
towards the approaching idler roll set. However, due to the small deflection variation, the
assumption is difficult to investigate.

A similar increasing trend of the flexure resistance is observed for the flexure resistance
obtained from Wheeler’s model with the rate of increase remaining consistent. While
deviation of the flexure resistance from the coupled and Wheeler’s models is found to be
around 20%, comparison between the coupled and Spaans’ models suggests a reasonable
correlation.

217
For the coal, the flexure resistance from the coupled model shown in Figure 6-6 (b) also
exhibits an increasing trend with increased belt speed, although the overall magnitude is
comparatively small in comparison to the gravel. The coupled FEM-DEM provides lower
amount of flexure resistance than Wheeler’s model at lower belt speeds, but larger values
for speed over 3m/s. The deviation of the resistance is considered acceptable. Moreover,
the flexure resistance calculated by Spaans is also within the range of values predicted by
the coupled FEM-DEM model.

Furthermore, it is evident that the properties of the bulk material can influence the flexure
resistances. The higher bulk material density the greater the resistance magnitudes for all
speed cases. Additionally, the higher internal friction angle the greater the magnitude of
the bulk material flexure resistance.

Summary

The coupled model enables many of the factors that influence the flexure resistance to be
varied. A set of simulations has been performed with varied belt speeds and idler spacings
for coal and gravel materials that have different properties. The coupled simulation results
compare well with the theoretical analysis, with the trends with varying belt speeds being
generally reflected by Wheeler’s model. In addition, the flexure resistance calculated by
Spaans’ model is found in the range of the simulation results, showing good agreement
with well-established methods.

Furthermore, the results obtained from the coupled FEM-DEM model highlight the
influence of the bulk material properties and belt speeds. In general, higher internal
friction angles and bulk densities will lead to larger flexure resistance, while higher belt
speeds tend to slightly increase the magnitude of the flexure resistance.

218
6.4 Recommendation and future work

This thesis develops a coupled FEM and DEM model to analyse the interaction of the belt
and bulk material, from which the dynamic belt deflection is mainly investigated.
Experimental measurements of the belt deflection and applications of the developed
model in predicting the bulk material flexure resistance are also presented. The author
believes this thesis could be extended to a number of different areas where further
research may be undertaken.

Optimization of the coupled FEM-DEM model

Due to the complexity of the belt and bulk material interaction, some idealizations and
simplifications, in both the FEM and DEM apsects are made in the coupled model. While
the analysis provides comparatively high accuracy, further investigation of the belt and
bulk material properties is possible to improve the existing model.

In terms of the conveyor belts used, the properties, including the Young’s modulus, shear
modulus, Poisson’s ratio are tested by treating the belt covers and carcass as a whole to
determine their average values. In reality, the belt properties would be dependent on the
strain that the belt sustains, with a non-linear relationship. The rubber covers may
dominate the belt properties under very low tension and the belt carcass will contribute
more when the tension increases to a certain magnitude. To obtain the actual strain and
stress curve, the belt covers and carcass need to be measured separately. Knowing the
actual belt properties may allow the FEM model to consider the non-linear effects of the
belts and therefore model the belt behavior more accurately.

Due to the particle size limitation in the DEM to limit the computational time, the DEM
simulations only consider particles in the range of 4-11.2mm. However, fines exist in a
real bulk material and can play a significant role in determing the behaviour of the bulk
material. For example, fines particles behave, to a certain extent like a glue among large
particles and contribute substantially to particle cohesion in some cases. Considerations

219
of fine particles will be essential to obtain more reliable results, which will be certainly
achieved with the improvement of DEM computational ability in the near future.

Further development of the coupled FEM-DEM model should enable more complicated
interactions of the belt and bulk material to be considered, including migration and
breakage of particles and adhesion and cohesion from the DEM perspective, and wear of
belts from the FEM point of view. Moreover, the coupled FEM-DEM model could be
developed and applied for a diverse range of conveying systems, such as pipe conveyors.

Investigation of idler configurations and operational conditions

The author suggests research should be conducted numerically and experimentally for
different idler configurations. While the coupled FEM- DEM analyses the belt and bulk
material flexure and associated flexure resistance, the influence of the idler spacing, idler
roll diameter, idler offset and idler trough angle is also able to be investigated. A
comprehensive understanding of the belt flexure varying with idler configuration allows
engineers to design belt conveyors with optimised configurations in light of budget while
still meeting the requirement of the belt sag ratio.

Furthermore, the belt and bulk material flexure is investigated under specific ranges of
the belt speeds (up to 1.5m/s) and tensions (up to 15kN) due to the capacity of the test
rig. In practice, the belt speed and tension can be much higher than these limits. Therefore,
the belt speeds and tensions should be extended in future research. In order to achieve
this, not only the drive system but also the tensioning device of the existing test facility
needs to be upgraded. High-quality cameras may also be required in order to capture belt
photos at higher speeds without distortion.

Belt flexure resistance

The investigation of the belt flexure resistance is not possible in this study since the fabric
belts used have low flexural rigidity due to their relatively small bending moduli and
220
thickness. A low flexural rigidity leads to the belt being subjected to a comparatively small
bending moment and thereby a low belt flexure resistance. However, for thick belts having
high flexural rigidity, such as steel cord and solid woven belts, the belt flexure resistance
should not be ignored. In future research, a calculation model should be developed and
integrated into the coupled FEM-DEM model. By doing this, the contribution of the belt
flexure resistance to the overall flexure resistance can be quantified.

Optimal belt design

The natural progression from the current analysis is to apply the developed model to
optimise the main resistances of a belt conveyor. This means the coupled model needs to
be integrated with other models that calculate the indentation rolling resistance and idler
rotating resistace. The integration of the main resistance models can be difficult as the
interdependence between the main resistances is complex. For instance, the decrease of
idler spacing can lead to less belt deflection and therefore lower flexure resistance but
may result in increasing idler rolling resistance over the entire length of the belt. Also, if
the belt deflection becomes larger, the belt is more likely to deflect over the idler rolls and
have greater contact area, which may lead to a decrease in the indentation rolling resistance
as the pressure reduces.

From a maintenance point of view, the belt life is a main concern during the belt conveyor
design stage. Lost production due to the failure of belts can result in significant financial
losses in the mining industry. The stress analysis of the belt, especially the belt carcasses
is essential to reduce or even avoid the risk of prematune belt failure.

New work that is currently being undertaken involves stress and strain measurements of
the belt. High elastic strain gauges (KYOWA FFEM-2-120-C1) have been purchased and
will be used to monitor the belt stresses during operation. Figure 6-7 shows the
distribution and installation of the strain gauges. Due to the symmetrical structure, gauges
are distributed on one half of the belt width. Thus, the stresses on the central and inclined
side sections of the belt can be investigated. Moreover, as shown in Figure 6-7 (b), each

221
strain gauge cell consists of four strain gauges that measure the belt stresses in both the
longitudinal and transverse directions at different depths.

Figure 6-7 Distribution and installation of strain gauges

222
REFERENCE
[1] A. Roberts, "Review of Belt Conveyor Design Procedures," Centre for Bulk Solids
and Particulate Technologies, University of Newcastle, Australia, 1982.
[2] P. Vierling, "Zum dynamischen verhalten von Gummifördergurte mit
Gewebeeinlagen," Doctorate thesis, University of Hannover, 1961.
[3] K.-J. Grimmer and F. Kessler, "The design of belt conveyors with horizontal
curves," Bulk Solids Handling, vol. 12, pp. 557-557, 1992.
[4] R. Alles, "Conveyor Belt System Design, Continental AG, 3," Revised Edition,
1988.
[5] P. Sörbom, Transport Technology and Social Change: Symposium 1979 (no. 2).
Tekniska mus., 1980.
[6] K. R. Price, "Industrial conveyor belts," ed: Google Patents, 1972.
[7] M. Howe and W. Schwarz, "Plate belt conveyor," ed: Google Patents, 1987.
[8] A. Greune and M. Hager, "The Energy-Saving Design of Belt Conveyors," Bulk
Solids Handling, vol. 10, no. 3, pp. 245-250, 1990.
[9] A. Harrison, "Conveying Technology-Belt Conveyor Research 1980-2000," Bulk
Solids Handling, vol. 21, no. 2, pp. 159-166, 2001.
[10] A. Roberts, "Bulk solid and conveyor belt interactions for efficient transportation
without spillage," Bulk Solids Handling, vol. 18, no. 1, pp. 49-58, 1998.
[11] L. Nordell, "The channer 20km overland-a flagship of modern belt conveyor
technology," bulk solids handling, vol. 11, no. 4, pp. 781-792, 1991.
[12] L. Nordell and Z. Ciozda, "Transient belt stresses during starting and stopping:
Elastic response simulated by finite element methods," bulk solids handling, vol.
4, no. 1, pp. 93-98, 1984.
[13] A. Harrison, J. Hayes, and A. Roberts, "The feasibility of high speed narrow belt
conveyors for bulk solids handling," Mechanical Engineering Transactions, vol.
3, pp. 190-200, 1982.
[14] A. Harrison, "Criteria for minimising transient stress in conveyor belts,"
Mechanics eng. Trans. IE Aust, vol. 8, no. 3, pp. 129-134, 1983.
[15] H. Lachmann, "A Survey on Present-Day Conveyor Belt Technology,"
CONVEYOR BELT TECHNOLOGY, 1987.
[16] M. Alspaugh, "Latest developments in belt conveyor technology," MINExp200,
LasVegas, NV, USA, 2004.
[17] C. Wheeler, "Analysis of the main resistances of belt conveyors," University of
Newcastle, 2003.
[18] A. W. Roberts, Basic principles of bulk solids storage, flow and handling. Institute
for Bulk Materials Handling Research, 1993.
[19] A. Roberts, J. Wiche, D. Ilic, and S. Plint, "Flow dynamics and wear
considerations in transfer chute design," in Proceedings of the ICBMH’04–8th
International Conference on Bulk Materials Storage, Handling & Transportation,
2004, pp. 05-08.07.
[20] ISO5048, "Continuous Mechanical Handling Equipment – Belt Conveyors with
Carrying Idlers –Calculation of Operating Power and Tensile Forces,"
International Organization for Standardization, 1989.
[21] H. Colijn, Mechanical conveyors for bulk solids. Elsevier Science Ltd, 1985.
[22] C. Wheeler, "Predicting the main resistance of belt conveyors," in Proceedings of
Beltcon, vol. 12, 2003.

223
[23] C. A. Wheeler, A. W. Roberts, and M. G. Jones, "Calculating the Flexure
Resistance of Bulk Solids Transported on Belt Conveyors," Particle & Particle
Systems Characterization, vol. 21, no. 4, pp. 340-347, 2004.
[24] DIN22101, "Continuous Mechanical Handling Equipment, Belt Conveyors for
Bulk Materials," Bases for Calculation and Design, Deutsche Norm, 1984.
[25] M. Hager and A. Hintz, "The energy-saving design of belts for long conveyor
systems," bulk solids handling, vol. 13, pp. 749-749, 1993.
[26] A. V. Reicks, "Conveyor Models as Quantitative Platforms for Belt Conveyor
Energy Options," Bulk Solids Europe, Conference Proceedings (CD), Vogel
Business Media, 2012.
[27] J. Antoniak, "Theoretical basis and industrial applications of energy–saving and
increased durability belt conveyors," Acta Montanistica Slovaca, Rocnik, vol. 8,
pp. 2-3, 2003.
[28] I. G. Mulani, Engineering Science and Application Design for Belt Conveyors.
Madhu I. Mulani, 2002.
[29] F. Krause, Hettler, W., "Die Belastung der Tragrollen von Gurtbandförderern mit
dreiteiligen Tragrollenstationen infolge Fördergut unter Beachtung des
Fördervorganges und der Schüttguteigenschaften," Wissenschaftliche Zeitscrift
der Technischen Hochschule, vol. 18, pp. 667-674, 1974.
[30] C. E. M. A. (CEMA), "Belt Conveyors for Bulk Materials 6th Edition," 2005.
[31] C. E. M. A. E. Conference, Belt conveyors for bulk materials. Conveyor
Equipment Manufacturers Association, 1997.
[32] D. Ilic, "Bulk solid interactions in belt conveying systems," ed.
[33] X. Liu, Y. Pang, and G. Lodewijks, "Theoretical and experimental determination
of the pressure distribution on a loaded conveyor belt," Measurement, vol. 77, pp.
307-316, 1// 2016.
[34] X. Liu, Y. Pang, and G. Lodewijks, "A stress discontinuity approach to model the
stress profile on a loaded conveyor belt," Powder Technology, vol. 273, pp. 102-
110, 3// 2015.
[35] B. Couch, "A coupled model for material flexure resistance in belt conveyor
systems," ed.
[36] M. Dratt, A. Katterfeld, and C. A. Wheeler, "Prediction of conveyor belt
deflection by coupling of FEM and DEM simulations," Bulk Solids Handling,
Article vol. 30, no. 7, pp. 380-384, 2010.
[37] M. Dratt, A. Katterfeld, and C. Wheeler, "Determination of the bulk flexure
resistance via coupled FEM-DEM simulation," in 8th International Conference
on Conveying and Handling of Particulate Solids (CHOPS 2015, 2015.
[38] M. Dratt and A. Katterfeld, "Coupling of FEM and DEM simulations to consider
dynamic deformations under particle load," Granular Matter, Article vol. 19, no.
3, 2017, Art. no. 49.
[39] D. Ilic, "Bulk Solid Interactions in Belt Conveying Systems(PhD Thesis) " The
University of Newcastle, Australia, 2013.
[40] C. Spaans, "The calculation of the main resistance of belt conveyors," Bulk Solids
Handling, vol. 11, no. 4, pp. 1-16, 1991.
[41] P. Munzenberger and C. Wheeler, "Laboratory measurement of the indentation
rolling resistance of conveyor belts," Measurement, vol. 94, pp. 909-918,
2016/12/01/ 2016.
[42] T. Choon, "Modeling conveyor belt deflections using FEA," FYP Thesis,
University of Newcastle, Australia, 2007.

224
[43] J. Shen, C. Wheeler, J. O'Shea, and D. Ilic, "Investigation of the dynamic
deflection of conveyor belts via experimental and modelling methods,"
Measurement, 2018.
[44] G. Lodewijks, "Dynamics of Belt Systems," Ph.D. thesis, Delft University of
Technology, Universiteitsdrukkerij, Delft, 1996.
[45] G. G. Mustoe and R. BinT, "Discrete Element Modeling of Sag Energy Losses in
a Conveyor Belt System."
[46] D. Ilic, "Bulk solid interactions in belt conveying systems," 2013.
[47] H. Nakashima and A. Oida, "Algorithm and implementation of soil–tire contact
analysis code based on dynamic FE–DE method," Journal of Terramechanics,
vol. 41, no. 2-3, pp. 127-137, 2004.
[48] M. Michael, F. Vogel, and B. Peters, "DEM–FEM coupling simulations of the
interactions between a tire tread and granular terrain," Computer Methods in
Applied Mechanics and Engineering, vol. 289, pp. 227-248, 2015/06/01/ 2015.
[49] K.-J. Bathe, Finite element procedures. Klaus-Jurgen Bathe, 2006.
[50] R. D. Cook, Finite element modeling for stress analysis. Wiley, 1994.
[51] Y.-c. Guo, S. Wang, K. Hu, and D.-y. Li, "Optimization and experimental study
of transport section lateral pressure of pipe belt conveyor," Advanced Powder
Technology, vol. 27, no. 4, pp. 1318-1324, 2016/07/01/ 2016.
[52] D. Marasová, Ľ. Ambriško, M. Andrejiová, and A. Grinčová, "Examination of the
process of damaging the top covering layer of a conveyor belt applying the FEM,"
Measurement, vol. 112, no. Supplement C, pp. 47-52, 2017/12/01/ 2017.
[53] Q. J. Zheng, M. H. Xu, K. W. Chu, R. H. Pan, and A. B. Yu, "A coupled
FEM/DEM model for pipe conveyor systems: Analysis of the contact forces on
belt," Powder Technology, vol. 314, pp. 480-489, 6/1/ 2017.
[54] Code_Aster, www.code-aster.org.
[55] K. L. Johnson and K. L. Johnson, Contact mechanics. Cambridge university press,
1987.
[56] C. M. Wensrich and A. Katterfeld, "Rolling friction as a technique for modelling
particle shape in DEM," Powder Technology, Article vol. 217, pp. 409-417, 2012.
[57] J. Ai, J.-F. Chen, J. M. Rotter, and J. Y. Ooi, "Assessment of rolling resistance
models in discrete element simulations," Powder Technology, vol. 206, no. 3, pp.
269-282, 2011.
[58] K. Iwashita and M. Oda, "Rolling resistance at contacts in simulation of shear
band development by DEM," Journal of engineering mechanics, vol. 124, no. 3,
pp. 285-292, 1998.
[59] A. Katterfeld, T. Donohue, and D. Ilic, "Application of the discrete element
method in mechanical conveying of bulk materials," in Plenary paper presented
at 7th International Conference for Conveying and Handling of Particulate Solids
(CHOPS), Germany, 2012.
[60] W. R. Ketterhagen, J. S. Curtis, and C. R. Wassgren, "Stress results from two-
dimensional granular shear flow simulations using various collision models,"
Physical Review E, vol. 71, no. 6, p. 061307, 2005.
[61] S. Ji, D. M. Hanes, and H. H. Shen, "Comparisons of physical experiment and
discrete element simulations of sheared granular materials in an annular shear
cell," Mechanics of materials, vol. 41, no. 6, pp. 764-776, 2009.
[62] F. Kesler and M. Prener, "DEM: Simulation of conveyor transfer chutes," FME
Transactions, vol. 37, no. 4, pp. 185-192, 2009.
[63] C. Wensrich and A. Katterfeld, "Rolling friction as a technique for modelling
particle shape in DEM," Powder Technology, vol. 217, pp. 409-417, 2012.
225
[64] M. Rahman, A. Katterfeld, D. Schott, and G. Lodewijks, "Influence of the
Software on the Calibration Process of DEM simulations," Bulk Solids Europe,
pp. 9-10, 2010.
[65] C. Zhou and J. Y. Ooi, "Numerical investigation of progressive development of
granular pile with spherical and non-spherical particles," Mechanics of Materials,
vol. 41, no. 6, pp. 707-714, 2009.
[66] Y. Zhou, B. H. Xu, A.-B. Yu, and P. Zulli, "An experimental and numerical study
of the angle of repose of coarse spheres," Powder technology, vol. 125, no. 1, pp.
45-54, 2002.
[67] Y. Zhou, B. Wright, R. Yang, B. H. Xu, and A.-B. Yu, "Rolling friction in the
dynamic simulation of sandpile formation," Physica A: Statistical Mechanics and
its Applications, vol. 269, no. 2-4, pp. 536-553, 1999.
[68] Y. Zhou, B. Xu, A. Yu, and P. Zulli, "Numerical investigation of the angle of
repose of monosized spheres," Physical Review E, vol. 64, no. 2, p. 021301, 2001.
[69] Y. Li, Y. Xu, and C. Thornton, "A comparison of discrete element simulations
and experiments for ‘sandpiles’ composed of spherical particles," Powder
Technology, vol. 160, no. 3, pp. 219-228, 2005.
[70] A. P. Grima and P. W. Wypych, "Development and validation of calibration
methods for discrete element modelling," Granular Matter, vol. 13, no. 2, pp. 127-
132, 2011.
[71] S. Enayatpour, R. Khaledialidusti, and T. Patzek, "Assessment of Thermal
Fracturing in Tight Hydrocarbon Formation Using DEM," in 48th US Rock
Mechanics/Geomechanics Symposium, 2014: American Rock Mechanics
Association.
[72] A. Waters and R. Mikka, "Segregation of fines in lump ore due to vibration on a
conveyor belt," in Third International Conference on Bulk Materials, Storage,
Handling and Transportation: Preprints of Papers, 1989, p. 89: Institution of
Engineers, Australia.
[73] A. W. Jenike, "Gravity flow of bulk solids," Bulletin No. 108, Utah State
University, 1961.
[74] M. A. Carrigy, "Experiments on the angles of repose of granular materials 1,"
Sedimentology, vol. 14, no. 3‐4, pp. 147-158, 1970.
[75] A. Van Burkalow, "Angle of repose and angle of sliding friction: an experimental
study," Geological Society of America Bulletin, vol. 56, no. 6, pp. 669-707, 1945.
[76] Y. Grasselli and H. J. Herrmann, "On the angles of dry granular heaps," Physica
A: Statistical Mechanics and its Applications, vol. 246, no. 3-4, pp. 301-312,
1997.
[77] H. Kalman, D. Goder, M. Rivkin, and G. Ben-Dor, "The effect of the particle-
surface friction coefficient on the angle of repose," Bulk Solids Handling, vol. 13,
pp. 123-123, 1993.
[78] A. Katterfeld and T. Gröger, "Simulation based wear prediction of transfer
chutes," Bulk Solids Handling.[Online][Zacytowano: 30 01 2013.] http://www.
bulk-solids-handling. com/whitepaper/downloads/13, vol. 651, 2008.
[79] A. Katterfeld, T. Groger, M. Hachmann, and G. Becker, "Usage of DEM
simulations for the development of a new chute design in underground mining,"
in 6th International Conference for Conveying and Handling of Particulate
Solids: 3-7 August 2009, Brisbane Convention & Exhibition Centre, Queensland,
Australia, 2009, p. 90: Engineers Australia.

226
[80] D. Ilic and C. Wheeler, "Measurement and simulation of the bulk solid load on a
conveyor belt during transportation," Powder Technology, vol. 307, pp. 190-202,
2/1/ 2017.
[81] A. Roberts and O. Scott, "Flow of bulk solids through transfer chutes of variable
geometry and profile," Bulk Solids Handling, vol. 1, 1981.
[82] J. Stransky, OPEN SOURCE DEM–FEM COUPLING. 2013.
[83] K. Murugaratnam, S. Utili, and N. Petrinic, "A combined DEM–FEM numerical
method for Shot Peening parameter optimisation," Advances in Engineering
Software, vol. 79, pp. 13-26, 2015/01/01/ 2015.
[84] P. Villard, B. Chevalier, B. Le Hello, and G. Combe, "Coupling between finite
and discrete element methods for the modelling of earth structures reinforced by
geosynthetic," Computers and Geotechnics, vol. 36, no. 5, pp. 709-717,
2009/06/01/ 2009.
[85] A. Mazor, L. Orefice, A. Michrafy, A. de Ryck, and J. G. Khinast, "A combined
DEM & FEM approach for modelling roll compaction process," Powder
Technology, 2017/04/25/ 2017.
[86] K. Grabner, K.-J. Grimmer, and F. Kessler, "Research into normal-forces between
belt and idlers at critical locations on the belt conveyor track," Bulk solids
handling, vol. 13, pp. 727-727, 1993.
[87] J. Shen, "Analysis of Conveyor Belt Deflection using FEM and DEM: Calculation
and Measurement " presented at the PARTEC 2016, International Congress on
Particle Technology, Nuremberg, Germany, 2016.
[88] F. Remondino and S. El‐Hakim, "Image‐based 3D modelling: a review," The
photogrammetric record, vol. 21, no. 115, pp. 269-291, 2006.
[89] T. Schenk, "Introduction to photogrammetry," The Ohio State University,
Columbus, vol. 106, 2005.
[90] R. I. Hartley and P. Sturm, "Triangulation," Computer Vision and Image
Understanding, vol. 68, no. 2, pp. 146-157, 1997/11/01/ 1997.
[91] Z. Jiandong, Z. Liyan, and D. Xiaoyu, "Accurate 3D Target Positioning in Close
Range Photogrammetry with Implicit Image Correction," Chinese Journal of
Aeronautics, vol. 22, no. 6, pp. 649-657, 2009/12/01/ 2009.
[92] J.-J. Orteu, "3-D computer vision in experimental mechanics," Optics and Lasers
in Engineering, vol. 47, no. 3, pp. 282-291, 2009.
[93] D. Nister, "An efficient solution to the five-point relative pose problem," IEEE
Transactions on Pattern Analysis and Machine Intelligence, vol. 26, no. 6, pp.
756-770, 2004.
[94] B. Triggs, P. F. McLauchlan, R. I. Hartley, and A. W. Fitzgibbon, "Bundle
adjustment—a modern synthesis," in International workshop on vision
algorithms, 1999, pp. 298-372: Springer.
[95] R. Hartley, R. Gupta, and T. Chang, "Stereo from uncalibrated cameras," in
Computer Vision and Pattern Recognition, 1992. Proceedings CVPR'92., 1992
IEEE Computer Society Conference on, 1992, pp. 761-764: IEEE.
[96] R. Hartley and A. Zisserman, Multiple View Geometry in Computer Vision.
Cambridge University Press, 2003, p. 700.
[97] H. Lachmann, "The Fulling Resistance of Rubber Conveyor Belts," Forschung
auf dem Gelbiete des Ingenieurwesens, vol. 20, pp. 98-106, 1954.
[98] C. Spaans, "The Indentation Resistance of Belt Conveyors," Technical Report
WTHD 103, Delft University of Technology, 1978.
[99] A. Harrison, "Dynamic measurement and analysis of steel cord conveyor belts,"
University of Newcastle, 1984.
227
[100] A. Harrison, L. Teo, and A. Roberts, "Measurement of Belt-Idler Interactions and
Material Flexure Coefficients for Design of Troughed Conveyor Systems," Intl.
Jnl of Bulk Solids Handling, vol. 7, no. 3, pp. 367-371, 1987.
[101] C. P. Heins, Applied plate theory for the engineer. Great Source Education Group,
1976.
[102] A. Harrison, L. Teo, and A. Roberts, "Measurement of Splice Integrity and Belt-
idler Interactions Using a Novel Elastic Bed Apparatus," in Second International
Conference on Bulk Materials Storage, Handling and Transportation: 1986;
Preprints of Papers, 1986, p. 189: Institution of Engineers, Australia.

228
APPENDICES

Appendix A – Belt troughability FEM validation


#import libraries
import sys
import re
from math import *
from subprocess import call
from numpy import *
import string

#aster commands
DEBUT (PAR_LOT='NON',);
mesh=LIRE_MAILLAGE( INFO=1,UNITE=20,FORMAT='MED',);
mesh=DEFI_GROUP(MAILLAGE=mesh,
reuse =mesh,
CREA_GROUP_MA=( _F(NOM='TOUT',TOUT='OUI',),),
CREA_GROUP_NO=(_F(TOUT_GROUP_MA='OUI',),),);

model=AFFE_MODELE(MAILLAGE=mesh,

AFFE=(_F(GROUP_MA='belt',PHENOMENE='MECANIQUE',MODELISATION='DKTG',),),);

#orthotropic material definition for 6mm thickness belt


elemcar=AFFE_CARA_ELEM(MODELE=model,
COQUE=(_F(GROUP_MA='belt', EPAIS=6.0, COQUE_NCOU=3, VECTEUR = ( 0, 1,
0),),),);
rubber=DEFI_MATERIAU(ELAS_ORTH=_F(E_L=37.2, E_T=19.1, NU_LT=0.45,
RHO=0.000000001365, G_LT=10.2,),);
poly=DEFI_MATERIAU(ELAS_ORTH=_F(E_L=37.2, E_T=19.1, NU_LT=0.45,
RHO=0.000000001365, G_LT=10.2,),);
multi=DEFI_COMPOSITE(COUCHE=(_F(EPAIS=2,MATER=rubber,ORIENTATION=0.0,),
_F(EPAIS=2,MATER=poly,ORIENTATION=0.0,),
_F(EPAIS=2,MATER=rubber,ORIENTATION=0.0,),),);
#or for 12mm thickness belt
#elemcar=AFFE_CARA_ELEM(MODELE=model,
# COQUE=(_F(GROUP_MA='belt', EPAIS=12.0, COQUE_NCOU=3, VECTEUR = ( 0, 1,
0),),),);
#rubber=DEFI_MATERIAU(ELAS_ORTH=_F(E_L=65, E_T=40, NU_LT=0.45,
RHO=0.000000001365, G_LT=19,),);
#poly=DEFI_MATERIAU(ELAS_ORTH=_F(E_L=65, E_T=40, NU_LT=0.45, RHO=0.000000001365,
G_LT=19,),);
#multi=DEFI_COMPOSITE(COUCHE=(_F(EPAIS=4,MATER=rubber,ORIENTATION=0.0,),
# _F(EPAIS=4,MATER=poly,ORIENTATION=0.0,),
# _F(EPAIS=4,MATER=rubber,ORIENTATION=0.0,),),);
#multi=DEFI_COMPOSITE(COUCHE=(_F(EPAIS=4,MATER=rubber,ORIENTATION=0.0,),
# _F(EPAIS=4,MATER=poly,ORIENTATION=0.0,),
# _F(EPAIS=4,MATER=rubber,ORIENTATION=0.0,),),);

material=AFFE_MATERIAU(MAILLAGE=mesh,
AFFE=_F(GROUP_MA=('belt'),MATER=multi,),);

ground1=AFFE_CHAR_MECA(MODELE=model,
DDL_IMPO=_F(GROUP_NO=('fix',),DX=0,DY=0,DZ=0,DRX=0,DRZ=0,),);
ground2=AFFE_CHAR_MECA(MODELE=model,
DDL_IMPO=_F(GROUP_NO=('free',),DY=0,DZ=0,DRX=0,DRZ=0,),);

229
#belt self weight
selfwght=AFFE_CHAR_MECA(MODELE=model,
PESANTEUR=_F(GRAVITE=9800,DIRECTION=(0,0,-1),GROUP_MA=('belt',),),);

#belt pre-tension
pre=AFFE_CHAR_MECA(MODELE=model,
FORCE_NODALE=_F(GROUP_NO=('free',),FX= 10,),);

#define increments for nonlinear analysis


Rampe1=DEFI_FONCTION(NOM_PARA='INST',VALE=(0.0,0.0,0.5,1.0),);
Rampe2=DEFI_FONCTION(NOM_PARA='INST',VALE=(0.5,1.0,1.0,1.0),);
step1=DEFI_LIST_REEL(DEBUT=(0.0),INTERVALLE=_F(JUSQU_A=0.5,NOMBRE=10,),);
step2=DEFI_LIST_REEL(DEBUT=(0.5),INTERVALLE=_F(JUSQU_A=1,NOMBRE=10,),);
Instant1=DEFI_LIST_INST(DEFI_LIST=_F(LIST_INST=step1,),);
Instant2=DEFI_LIST_INST(DEFI_LIST=_F(LIST_INST=step2,),);

#non-linear analysis
stat=STAT_NON_LINE(MODELE=model,
CHAM_MATER=material,
CARA_ELEM=elemcar,

EXCIT=(_F(CHARGE=ground1,),_F(CHARGE=ground2,),_F(CHARGE=pre,FONC_MULT=Rampe1,)
,),

COMPORTEMENT=_F(RELATION='ELAS',DEFORMATION='GROT_GDEP',TOUT='OUI',),
INCREMENT=_F(LIST_INST=Instant1,),
NEWTON=_F(PREDICTION='TANGENTE',MATRICE='TANGENTE',REAC_ITER=1,),
CONVERGENCE=_F(RESI_GLOB_RELA=1E-
4,ITER_GLOB_MAXI=500,ITER_GLOB_ELAS=100,),);

stat=STAT_NON_LINE(reuse=stat,
MODELE=model,
CHAM_MATER=material,
CARA_ELEM=elemcar,

EXCIT=(_F(CHARGE=ground1,),_F(CHARGE=ground2,),_F(CHARGE=selfwght,FONC_MULT=Ram
pe2,),_F(CHARGE=pre,),),

COMPORTEMENT=_F(RELATION='ELAS',DEFORMATION='GROT_GDEP',TOUT='OUI',),
ETAT_INIT=_F(EVOL_NOLI=stat,INST_ETAT_INIT=0.5,),
INCREMENT=_F(LIST_INST=Instant2,),
NEWTON=_F(PREDICTION='TANGENTE',MATRICE='TANGENTE',REAC_ITER=1,),
CONVERGENCE=_F(RESI_GLOB_RELA=1E-
4,ITER_GLOB_MAXI=500,ITER_GLOB_ELAS=100,),);
#output results
IMPR_RESU(FORMAT='MED',
UNITE=80,
RESU=_F(MAILLAGE=mesh,RESULTAT=stat,NOM_CHAM='DEPL',),);

IMPR_RESU(FORMAT='GMSH',VERSION=1.2,RESU=_F(MAILLAGE=mesh,),);

FIN();

230
Appendix B – FEM belt deflection model
Appendix B1 – One-way coupled FEM deflection model for 6mm thickness belt
#import necessary libraries
import sys
sys.path.append('/media/jiahe/SIMULATION_DATA/aster_12.6.1/12.6/lib/aster/Utilitai')
from Utilitai.partition import *
import re
from math import *
from subprocess import call
from numpy import *
import string

#create element force data to assign to the FEM belt mesh


def index_substring(strings, substring):
return next(i for i, string in enumerate(strings) if substring in string)

#read liggghts vtk file


def liggghts_to_aster():
#specify readin file through the coupling code
vtk_file
=open("/media/jiahe/SIMULATION_DATA/one_way_coupling/dem/post/stress/output_stress.vtk")
vtk_list =vtk_file.readlines()
vtk_file.close()
points_start_index = index_substring(vtk_list, "POINTS")+1
cells_start_index = index_substring(vtk_list, "CELLS")+1
stress_start_index = index_substring(vtk_list, "VECTORS stress float")+1
cellIDs_start_index = index_substring(vtk_list, "SCALARS meshid float")+2
points_co = []
pressure_all = []
cellIDs = zeros( (len(vtk_list) - cellIDs_start_index,1) )
print 'There are ' + str(len(cellIDs)) + ' mesh elements in the model'

#extract mesh IDs


for i in range(cellIDs_start_index, len(vtk_list)):
for j in vtk_list[i].split():
cellIDs[i-cellIDs_start_index]=(int(float(j)))

#extract coordinates
for i in range(points_start_index, cells_start_index-1):
for t in vtk_list[i].split():
try:
points_co.append(float(t)*1000)
except ValueError:
pass

#calculate centroid coordinates


centroids = zeros( ((len(points_co)/9),3) )
for i in range(0,len(points_co),9):
centroids[(i/9), 0] = (points_co[i]+points_co[i+3]+points_co[i+6])/3 #coordinates in x-axis
centroids[(i/9), 1] = (points_co[i+1]+points_co[i+4]+points_co[i+7])/3 #coordinates in y-axis
centroids[(i/9), 2] = (points_co[i+2]+points_co[i+5]+points_co[i+8])/3 #coordinates in z-axis

#generate pressure matrix


for i in range(stress_start_index, cellIDs_start_index-2):
for t in vtk_list[i].split():
try:
pressure_all.append(float(t)*0.000001)
except ValueError:
231
pass
pressure_components = zeros( ((len(pressure_all)/3),3) )
for i in range(0,len(pressure_all),3):
pressure_components[(i/3), 0] = (pressure_all[i]) #pressure in global x-axis
pressure_components[(i/3), 1] = (pressure_all[i+1]) #pressure in global y-axis
pressure_components[(i/3), 2] = (pressure_all[i+2]) #pressure in global z-axis

#add pressure components to the related mesh ids


code_aster_input_h = append(cellIDs, centroids, axis=1)
code_aster_input = append(code_aster_input_h, pressure_components, axis=1) #add as new
columns
return code_aster_input

#FEM program commmand


DEBUT (PAR_LOT='NON',); #enable python programming
mesh=LIRE_MAILLAGE( INFO=1,UNITE=20,FORMAT='MED',);
mesh=DEFI_GROUP(MAILLAGE=mesh,
reuse =mesh,
CREA_GROUP_MA=(_F(NOM='TOUT',TOUT='OUI',),),
CREA_GROUP_NO=(_F(TOUT_GROUP_MA='OUI',),),);
mesh=MODI_MAILLAGE(MAILLAGE=mesh,
reuse =mesh,
ORIE_NORM_COQUE=(_F(GROUP_MA=('belt',),VECT_NORM = ( 0, 0,
1.0),GROUP_NO='orienp',),),);
model=AFFE_MODELE(MAILLAGE=mesh,

AFFE=(_F(GROUP_MA='belt',PHENOMENE='MECANIQUE',MODELISATION='DKTG',),),);

#orthotropic material definition


elemcar=AFFE_CARA_ELEM(MODELE=model,
COQUE=(_F(GROUP_MA='belt', EPAIS=6.0, COQUE_NCOU=3, VECTEUR = ( 0, 1,
0),),),);
rubber=DEFI_MATERIAU(ELAS_ORTH=_F(E_L=37.2, E_T=19.1, NU_LT=0.45,
RHO=0.000000001365, G_LT=10.2,),);
poly=DEFI_MATERIAU(ELAS_ORTH=_F(E_L=37.2, E_T=19.1, NU_LT=0.45,
RHO=0.000000001365, G_LT=10.2,),);
multi=DEFI_COMPOSITE(COUCHE=(_F(EPAIS=2,MATER=rubber,ORIENTATION=0.0,),
_F(EPAIS=2,MATER=poly,ORIENTATION=0.0,),
_F(EPAIS=2,MATER=rubber,ORIENTATION=0.0,),),);
material=AFFE_MATERIAU(MAILLAGE=mesh,
AFFE=_F(GROUP_MA=('belt'),MATER=multi,),);

#obtain the belt mesh information through aster built-in Utilitai module
nonu=0 #node numbers
elnu=0 #element numbers
mesh1 = MAIL_PY() #Creating empty new MAIL_PY "class instantiation"
mesh1.FromAster(mesh) # Reading mesh Data From Aster using object referencing to the class function
FromAster...
mesh2 = mesh1.gma.get('belt') # creat a list including all the elements of the certain group
nonu=mesh1.dime_maillage[0] #Get the Number of Nodes
elnu=mesh1.dime_maillage[2] #Get the Number of Element

# get elements/nodes ids


NodeList = list(mesh1.correspondance_noeuds)
ElemList = list(mesh1.correspondance_mailles)
ElemType = list(mesh1.tm)
ncoor = mesh1.cn # Get Node coordinates based on node position sequence

#####################################################################################
#########
232
#get element connections
Connex = mesh1.co #the nodes sequence of each element in the mesh

#calculate the element centroid positions in FEM


xsum = 0
ysum = 0
zsum = 0
e_x = []
e_y = []
e_z = []

#Loop each belt element and give each element centroid coordinates
for i in mesh2:
xsum = 0
ysum = 0
zsum = 0
for j in Connex[i-1]:
xsum = xsum+ncoor[int(re.sub("\D","",NodeList[j]))-1][0] #xcoords
ysum = ysum+ncoor[int(re.sub("\D","",NodeList[j]))-1][1] #ycoords
zsum = zsum+ncoor[int(re.sub("\D","",NodeList[j]))-1][2] #zcoords
e_x.append(xsum/3)
e_y.append(ysum/3)
e_z.append(zsum/3)

#map pressures to correct elements


map_tol=5
vtkout = liggghts_to_aster()
pres_inp =[]
force = 0
count = 0
for i in range(len(vtkout)):
for j in range(len(e_x)):
if ((e_x[j]-map_tol) < vtkout[i][1] < (e_x[j]+map_tol)) and ((e_y[j]-map_tol) < vtkout[i][2] <
(e_y[j]+map_tol)) and (e_z[j]-map_tol) < vtkout[i][3] < (e_z[j]+map_tol):
count = count +1
pres_inp.append(_F(MAILLE='M%d'%(mesh2[j]), FX=(vtkout[i][4]), FY=(vtkout[i][5]),
FZ=(vtkout[i][6])))
force = force + abs(vtkout[i][6])

#set up boundary conditions


ground1=AFFE_CHAR_MECA(MODELE=model,
DDL_IMPO=_F(GROUP_NO=('edge1',),DX=0,DY=0,DZ=0,DRX=0,DRY=0,DRZ=0,),);
ground2=AFFE_CHAR_MECA(MODELE=model,
DDL_IMPO=_F(GROUP_NO=('edge2','edge3',),DX=0,DZ=0,DRX=0,DRY=0,DRZ=0,),);

#define belt pre-tension


pre=AFFE_CHAR_MECA(MODELE=model,
FORCE_NODALE=_F(GROUP_NO=('edge2','edge3',),
FY= 200,),); #time 25 nodes on belt edge, in total 5000N

#belt self weight


selfwght=AFFE_CHAR_MECA(MODELE=model,
PESANTEUR=_F(GRAVITE=9800,DIRECTION=(0,0,-1),GROUP_MA=('belt',),),);

#assign pressure for each individual finite element


cv=AFFE_CHAR_MECA(MODELE=model,
FORCE_COQUE=pres_inp,);
233
#define increments for non-linear analysis ande result display
Rampe1=DEFI_FONCTION(NOM_PARA='INST',VALE=(0.0,0.0, 1.0,1.0, 2.0,1.0, 3.0, 1.0),);
Rampe2=DEFI_FONCTION(NOM_PARA='INST',VALE=(0.0,0.0, 1.0,0.0, 2.0,1.0, 3.0, 1.0),);
Rampe3=DEFI_FONCTION(NOM_PARA='INST',VALE=(0.0,0.0, 1.0,0.0, 2.0,0.0, 3.0, 1.0),);
step=DEFI_LIST_REEL(DEBUT=(0.0),

INTERVALLE=(_F(JUSQU_A=1,PAS=0.1,),_F(JUSQU_A=2.0,PAS=0.1,),_F(JUSQU_A=3.0,PAS=0.1
,),),);
stepr=DEFI_LIST_REEL(DEBUT=(0.0),INTERVALLE=_F(JUSQU_A=3,PAS=0.1,),);
Instant=DEFI_LIST_INST(DEFI_LIST=_F(METHODE='AUTO', LIST_INST=step,),);

#solve by non-linear analysis


stat=STAT_NON_LINE(MODELE=model,
CHAM_MATER=material,
CARA_ELEM=elemcar,

EXCIT=(_F(CHARGE=ground1,),_F(CHARGE=ground2,),_F(CHARGE=pre,FONC_MULT=Rampe1,)
,),

COMPORTEMENT=_F(RELATION='ELAS',DEFORMATION='GROT_GDEP',TOUT='OUI',),
INCREMENT=_F(LIST_INST=Instant,INST_INIT=0.0,INST_FIN = 1.0,),
NEWTON=_F(PREDICTION='TANGENTE',MATRICE='TANGENTE',REAC_ITER=1,),
RECH_LINEAIRE=_F(),
CONVERGENCE=_F(RESI_GLOB_RELA=1E-
4,ITER_GLOB_MAXI=500,ITER_GLOB_ELAS=100,),);

stat=STAT_NON_LINE(reuse=stat,
MODELE=model,
CHAM_MATER=material,
CARA_ELEM=elemcar,

EXCIT=(_F(CHARGE=ground1,),_F(CHARGE=ground2,),_F(CHARGE=pre,),_F(CHARGE=cv,FONC
_MULT=Rampe2,),),

COMPORTEMENT=_F(RELATION='ELAS',DEFORMATION='GROT_GDEP',TOUT='OUI',),
RECH_LINEAIRE=_F(),
ETAT_INIT=_F(EVOL_NOLI=stat,INST=1,),
INCREMENT=_F(LIST_INST=Instant, INST_INIT=1.0,INST_FIN = 2.0,),
NEWTON=_F(PREDICTION='TANGENTE',MATRICE='TANGENTE',REAC_ITER=1,),
CONVERGENCE=_F(RESI_GLOB_RELA=1E-
4,ITER_GLOB_MAXI=500,ITER_GLOB_ELAS=100,),);

stat=STAT_NON_LINE(reuse=stat,
MODELE=model,
CHAM_MATER=material,
CARA_ELEM=elemcar,

EXCIT=(_F(CHARGE=ground1,),_F(CHARGE=ground2,),_F(CHARGE=pre,),_F(CHARGE=cv,),_F(C
HARGE=selfwght, FONC_MULT=Rampe3,),),

COMPORTEMENT=_F(RELATION='ELAS',DEFORMATION='GROT_GDEP',TOUT='OUI',),
RECH_LINEAIRE=_F(),
ETAT_INIT=_F(EVOL_NOLI=stat,INST=2.0,),
INCREMENT=_F(LIST_INST=Instant1,INST_INIT=2.0,INST_FIN = 3.0,),
NEWTON=_F(PREDICTION='TANGENTE',MATRICE='TANGENTE',REAC_ITER=1,),
CONVERGENCE=_F(RESI_GLOB_RELA=1E-
4,ITER_GLOB_MAXI=500,ITER_GLOB_ELAS=100,),);

#enrich obtained results


234
stat=CALC_CHAMP(reuse =stat, RESULTAT=stat, CONTRAINTE=('SIEF_ELNO', 'SIGM_ELNO',),
FORCE=('REAC_NODA'),);

#output results in ASCII format


IMPR_RESU(MODELE=model,
FORMAT='RESULTAT',
RESU=(_F(MAILLAGE=mesh,
RESULTAT=stat,
NOM_CHAM='DEPL',
LIST_INST=stepr,
NOM_CMP= ('DX','DY','DZ',),
#nodes on the belt centralline and middle cross section
NOEUD= ('N1', 'N132', 'N134', 'N136', 'N138',
'N140', 'N142', 'N144', 'N146', 'N148',
'N14', 'N321', 'N323', 'N325', 'N327',
'N329', 'N331', 'N333', 'N335', 'N337',
'N23', 'N10', 'N47', 'N11', 'N88', 'N12',
'N13', 'N129', 'N151', 'N15', 'N16', 'N192',
'N17', 'N214', 'N18',),),),);

#output deformed mesh for gmsh post-processing


IMPR_RESU(FORMAT='MED',
UNITE=80,
RESU=_F(GROUP_MA='belt',RESULTAT=stat,NOM_CHAM=('DEPL',),
NOM_CMP=('DZ',), LIST_INST=stepr,),);

#output msh format mesh for the subsequent mesh conversion


IMPR_RESU(FORMAT='GMSH',RESU=_F(MAILLAGE=mesh,),);

FIN();

Appendix B2 – One -way coupled FEM deflection model for 12mm thickness belt
#import necessary libraries
import sys
sys.path.append('/media/jiahe/SIMULATION_DATA/aster_12.6.1/12.6/lib/aster/Utilitai')
from Utilitai.partition import *
import re
from math import *
from subprocess import call
from numpy import *
import string

#create element force data to assign to the FEM belt mesh


def index_substring(strings, substring):
return next(i for i, string in enumerate(strings) if substring in string)

#read liggghts vtk file


def liggghts_to_aster():
#specify readin file through the coupling code
vtk_file
=open("/media/jiahe/SIMULATION_DATA/one_way_coupling/dem/post/stress/output_stress.vtk")
vtk_list =vtk_file.readlines()
vtk_file.close()
points_start_index = index_substring(vtk_list, "POINTS")+1
cells_start_index = index_substring(vtk_list, "CELLS")+1
stress_start_index = index_substring(vtk_list, "VECTORS stress float")+1
235
cellIDs_start_index = index_substring(vtk_list, "SCALARS meshid float")+2
points_co = []
pressure_all = []
cellIDs = zeros( (len(vtk_list) - cellIDs_start_index,1) )
print 'There are ' + str(len(cellIDs)) + ' mesh elements in the model'

#extract mesh IDs


for i in range(cellIDs_start_index, len(vtk_list)):
for j in vtk_list[i].split():
cellIDs[i-cellIDs_start_index]=(int(float(j)))

#extract coordinates
for i in range(points_start_index, cells_start_index-1):
for t in vtk_list[i].split():
try:
points_co.append(float(t)*1000)
except ValueError:
pass

#calculate centroid coordinates


centroids = zeros( ((len(points_co)/9),3) )
for i in range(0,len(points_co),9):
centroids[(i/9), 0] = (points_co[i]+points_co[i+3]+points_co[i+6])/3 #coordinates in x-axis
centroids[(i/9), 1] = (points_co[i+1]+points_co[i+4]+points_co[i+7])/3 #coordinates in y-axis
centroids[(i/9), 2] = (points_co[i+2]+points_co[i+5]+points_co[i+8])/3 #coordinates in z-axis

#generate pressure matrix


for i in range(stress_start_index, cellIDs_start_index-2):
for t in vtk_list[i].split():
try:
pressure_all.append(float(t)*0.000001)
except ValueError:
pass
pressure_components = zeros( ((len(pressure_all)/3),3) )
for i in range(0,len(pressure_all),3):
pressure_components[(i/3), 0] = (pressure_all[i]) #pressure in global x-axis
pressure_components[(i/3), 1] = (pressure_all[i+1]) #pressure in global y-axis
pressure_components[(i/3), 2] = (pressure_all[i+2]) #pressure in global z-axis

#add pressure components to the related mesh ids


code_aster_input_h = append(cellIDs, centroids, axis=1)
code_aster_input = append(code_aster_input_h, pressure_components, axis=1) #add as new
columns
return code_aster_input

#FEM program commmand


DEBUT (PAR_LOT='NON',); #enable python programming
mesh=LIRE_MAILLAGE( INFO=1,UNITE=20,FORMAT='MED',);
mesh=DEFI_GROUP(MAILLAGE=mesh,
reuse =mesh,
CREA_GROUP_MA=(_F(NOM='TOUT',TOUT='OUI',),),
CREA_GROUP_NO=(_F(TOUT_GROUP_MA='OUI',),),);
mesh=MODI_MAILLAGE(MAILLAGE=mesh,
reuse =mesh,
ORIE_NORM_COQUE=(_F(GROUP_MA=('belt',),VECT_NORM = ( 0, 0,
1.0),GROUP_NO='orienp',),),);
model=AFFE_MODELE(MAILLAGE=mesh,

AFFE=(_F(GROUP_MA='belt',PHENOMENE='MECANIQUE',MODELISATION='DKTG',),),);

236
#orthotropic material definition
elemcar=AFFE_CARA_ELEM(MODELE=model,
COQUE=(_F(GROUP_MA='belt', EPAIS=12.0, COQUE_NCOU=3, VECTEUR = ( 0, 1,
0),),),);
rubber=DEFI_MATERIAU(ELAS_ORTH=_F(E_L=65, E_T=40, NU_LT=0.45, RHO=0.000000001365,
G_LT=19,),);
poly=DEFI_MATERIAU(ELAS_ORTH=_F(E_L=65, E_T=40, NU_LT=0.45, RHO=0.000000001365,
G_LT=19,),);
multi=DEFI_COMPOSITE(COUCHE=(_F(EPAIS=4,MATER=rubber,ORIENTATION=0.0,),
_F(EPAIS=4,MATER=poly,ORIENTATION=0.0,),
_F(EPAIS=4,MATER=rubber,ORIENTATION=0.0,),),);
material=AFFE_MATERIAU(MAILLAGE=mesh,
AFFE=_F(GROUP_MA=('belt'),MATER=multi,),);

#obtain the belt mesh information through aster built-in Utilitai module
nonu=0 #node numbers
elnu=0 #element numbers
mesh1 = MAIL_PY() #Creating empty new MAIL_PY "class instantiation"
mesh1.FromAster(mesh) # Reading mesh Data From Aster using object referencing to the class function
FromAster...
mesh2 = mesh1.gma.get('belt') # creat a list including all the elements of the certain group
nonu=mesh1.dime_maillage[0] #Get the Number of Nodes
elnu=mesh1.dime_maillage[2] #Get the Number of Element

# get elements/nodes ids


NodeList = list(mesh1.correspondance_noeuds)
ElemList = list(mesh1.correspondance_mailles)
ElemType = list(mesh1.tm)
ncoor = mesh1.cn # Get Node coordinates based on node position sequence

#####################################################################################
#########
#get element connections
Connex = mesh1.co #the nodes sequence of each element in the mesh

#calculate the element centroid positions in FEM


xsum = 0
ysum = 0
zsum = 0
e_x = []
e_y = []
e_z = []

#Loop each belt element and give each element centroid coordinates
for i in mesh2:
xsum = 0
ysum = 0
zsum = 0
for j in Connex[i-1]:
xsum = xsum+ncoor[int(re.sub("\D","",NodeList[j]))-1][0] #xcoords
ysum = ysum+ncoor[int(re.sub("\D","",NodeList[j]))-1][1] #ycoords
zsum = zsum+ncoor[int(re.sub("\D","",NodeList[j]))-1][2] #zcoords
e_x.append(xsum/3)
e_y.append(ysum/3)
e_z.append(zsum/3)

#map pressures to correct elements


237
map_tol=5
vtkout = liggghts_to_aster()
pres_inp =[]
force = 0
count = 0
for i in range(len(vtkout)):
for j in range(len(e_x)):
if ((e_x[j]-map_tol) < vtkout[i][1] < (e_x[j]+map_tol)) and ((e_y[j]-map_tol) < vtkout[i][2] <
(e_y[j]+map_tol)) and (e_z[j]-map_tol) < vtkout[i][3] < (e_z[j]+map_tol):
count = count +1
pres_inp.append(_F(MAILLE='M%d'%(mesh2[j]), FX=(vtkout[i][4]), FY=(vtkout[i][5]),
FZ=(vtkout[i][6])))
force = force + abs(vtkout[i][6])

#set up boundary conditions


ground1=AFFE_CHAR_MECA(MODELE=model,
DDL_IMPO=_F(GROUP_NO=('edge1',),DX=0,DY=0,DZ=0,DRX=0,DRY=0,DRZ=0,),);
ground2=AFFE_CHAR_MECA(MODELE=model,
DDL_IMPO=_F(GROUP_NO=('edge2','edge3',),DX=0,DZ=0,DRX=0,DRY=0,DRZ=0,),);

#define belt pre-tension


pre=AFFE_CHAR_MECA(MODELE=model,
FORCE_NODALE=_F(GROUP_NO=('edge2','edge3',),
FY= 200,),); #time 25 nodes on belt edge, in total 5000N

#belt self weight


selfwght=AFFE_CHAR_MECA(MODELE=model,
PESANTEUR=_F(GRAVITE=9800,DIRECTION=(0,0,-1),GROUP_MA=('belt',),),);

#assign pressure for each individual finite element


cv=AFFE_CHAR_MECA(MODELE=model,
FORCE_COQUE=pres_inp,);

#define increments for non-linear analysis ande result display


Rampe1=DEFI_FONCTION(NOM_PARA='INST',VALE=(0.0,0.0, 1.0,1.0, 2.0,1.0, 3.0, 1.0),);
Rampe2=DEFI_FONCTION(NOM_PARA='INST',VALE=(0.0,0.0, 1.0,0.0, 2.0,1.0, 3.0, 1.0),);
Rampe3=DEFI_FONCTION(NOM_PARA='INST',VALE=(0.0,0.0, 1.0,0.0, 2.0,0.0, 3.0, 1.0),);
step=DEFI_LIST_REEL(DEBUT=(0.0),

INTERVALLE=(_F(JUSQU_A=1,PAS=0.1,),_F(JUSQU_A=2.0,PAS=0.1,),_F(JUSQU_A=3.0,PAS=0.1
,),),);
stepr=DEFI_LIST_REEL(DEBUT=(0.0),INTERVALLE=_F(JUSQU_A=3,PAS=0.1,),);
Instant=DEFI_LIST_INST(DEFI_LIST=_F(METHODE='AUTO', LIST_INST=step,),);

#solve by non-linear analysis


stat=STAT_NON_LINE(MODELE=model,
CHAM_MATER=material,
CARA_ELEM=elemcar,

EXCIT=(_F(CHARGE=ground1,),_F(CHARGE=ground2,),_F(CHARGE=pre,FONC_MULT=Rampe1,)
,),

COMPORTEMENT=_F(RELATION='ELAS',DEFORMATION='GROT_GDEP',TOUT='OUI',),
INCREMENT=_F(LIST_INST=Instant,INST_INIT=0.0,INST_FIN = 1.0,),
NEWTON=_F(PREDICTION='TANGENTE',MATRICE='TANGENTE',REAC_ITER=1,),
RECH_LINEAIRE=_F(),
CONVERGENCE=_F(RESI_GLOB_RELA=1E-
4,ITER_GLOB_MAXI=500,ITER_GLOB_ELAS=100,),);

stat=STAT_NON_LINE(reuse=stat,
238
MODELE=model,
CHAM_MATER=material,
CARA_ELEM=elemcar,

EXCIT=(_F(CHARGE=ground1,),_F(CHARGE=ground2,),_F(CHARGE=pre,),_F(CHARGE=cv,FONC
_MULT=Rampe2,),),

COMPORTEMENT=_F(RELATION='ELAS',DEFORMATION='GROT_GDEP',TOUT='OUI',),
RECH_LINEAIRE=_F(),
ETAT_INIT=_F(EVOL_NOLI=stat,INST=1,),
INCREMENT=_F(LIST_INST=Instant, INST_INIT=1.0,INST_FIN = 2.0,),
NEWTON=_F(PREDICTION='TANGENTE',MATRICE='TANGENTE',REAC_ITER=1,),
CONVERGENCE=_F(RESI_GLOB_RELA=1E-
4,ITER_GLOB_MAXI=500,ITER_GLOB_ELAS=100,),);

stat=STAT_NON_LINE(reuse=stat,
MODELE=model,
CHAM_MATER=material,
CARA_ELEM=elemcar,

EXCIT=(_F(CHARGE=ground1,),_F(CHARGE=ground2,),_F(CHARGE=pre,),_F(CHARGE=cv,),_F(C
HARGE=selfwght, FONC_MULT=Rampe3,),),

COMPORTEMENT=_F(RELATION='ELAS',DEFORMATION='GROT_GDEP',TOUT='OUI',),
RECH_LINEAIRE=_F(),
ETAT_INIT=_F(EVOL_NOLI=stat,INST=2.0,),
INCREMENT=_F(LIST_INST=Instant1,INST_INIT=2.0,INST_FIN = 3.0,),
NEWTON=_F(PREDICTION='TANGENTE',MATRICE='TANGENTE',REAC_ITER=1,),
CONVERGENCE=_F(RESI_GLOB_RELA=1E-
4,ITER_GLOB_MAXI=500,ITER_GLOB_ELAS=100,),);

#enrich obtained results


stat=CALC_CHAMP(reuse =stat, RESULTAT=stat, CONTRAINTE=('SIEF_ELNO', 'SIGM_ELNO',),
FORCE=('REAC_NODA'),);

#output results in ASCII format


IMPR_RESU(MODELE=model,
FORMAT='RESULTAT',
RESU=(_F(MAILLAGE=mesh,
RESULTAT=stat,
NOM_CHAM='DEPL',
LIST_INST=stepr,
NOM_CMP= ('DX','DY','DZ',),
#nodes on the belt centralline and middle cross section
NOEUD= ('N1', 'N132', 'N134', 'N136', 'N138',
'N140', 'N142', 'N144', 'N146', 'N148',
'N14', 'N321', 'N323', 'N325', 'N327',
'N329', 'N331', 'N333', 'N335', 'N337',
'N23', 'N10', 'N47', 'N11', 'N88', 'N12',
'N13', 'N129', 'N151', 'N15', 'N16', 'N192',
'N17', 'N214', 'N18',),),),);

#output deformed mesh for gmsh post-processing


IMPR_RESU(FORMAT='MED',
UNITE=80,
RESU=_F(GROUP_MA='belt',RESULTAT=stat,NOM_CHAM=('DEPL',),
NOM_CMP=('DZ',), LIST_INST=stepr,),);

#output msh format mesh for the subsequent mesh conversion


IMPR_RESU(FORMAT='GMSH',RESU=_F(MAILLAGE=mesh,),);
239
FIN();

240
Appendix C – Gmsh codes for generating belt geometry
// Gmsh script for generating belt mesh (following the C++ syntax)
//define characteristic length
lc=30;

//specify node positions on belt edge


Point(1) = {-263.83, 0, 114.72, lc};
Point(2) = {-188.37, 0, 61.88, lc};
Point(3) = {-112.91, 0, 9.04, lc};
Point(4) = {-84.24, 0, 0, lc};
Point(5) = {0, 0, 0, lc};
Point(6) = {84.24, 0, 0, lc};
Point(7) = {112.91, 0, 9.04, lc};
Point(8) = {188.37, 0, 61.88, lc};
Point(9) = {263.83, 0, 114.72, lc};
Point(10) = {-84.24, 0, 50, lc};
Point(11) = {84.24, 0, 50, lc};

//create a belt edge by linking nodes


Line(1) = {1, 2};
Line(2) = {2, 3};
Circle(3) = {3, 10, 4};
Line(4) = {4, 5};
Line(5) = {5, 6};
Circle(6) = {6, 11, 7};
Line(7) = {7, 8};
Line(8) = {8, 9};

//create belt surface by extruding the belt edge


Extrude {0, 599, 0} {Line{1}; Line{2}; Line{3}; Line{4}; Line{5}; Line{6}; Line{7}; Line{8}; }
Extrude {0, 599, 0} {Line{9}; Line{13}; Line{17}; Line{21}; Line{25}; Line{29}; Line{33};
Line{37}; }

//defiene physical groups


Physical Point("orienp") = {5} ;
Physical Surface("belt") ={12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60, 64, 68, 72};
Physical Surface("beltw") ={12, 16, 36, 40, 44, 48, 68, 72};
Physical Surface("beltc") = {24, 28, 56, 60};
Physical Surface("beltj") ={20, 32,52, 64};
Physical Line("edge1") = {1, 2, 3, 4, 5, 6, 7, 8};
Physical Line("edge2") = {41, 45, 49, 61, 65, 69};
Physical Line("edge3") = {53, 57};

241
Appendix D – Code_Aster input file for invoking

P actions make_etude
P aster_root /media/jiahe/SIMULATION_DATA/aster_12.6.1
P consbtc oui
P corefilesize unlimited
P cpresok RESNOOK
P debug nodebug
P display jiahe-Precision-T3600:0
P follow_output yes
P lang en
P mclient jiahe-Precision-T3600
P memjob 524289
P mode interactif
P mpi_nbnoeud 1
P nbmaxnook 5
P noeud jiahe-Precision-T3600
P origine ASTK 1.13.8
P platform LINUX64
P protocol_copyfrom asrun.plugins.server.SCPServer
P protocol_copyto asrun.plugins.server.SCPServer
P protocol_exec asrun.plugins.server.SSHServer
P proxy_dir /tmp
P rep_trav /tmp/jiahe-Precision-T3600-interactif.17350
P soumbtc oui
P tpsjob 15
P uclient jiahe
P version 12.6
A args
A memjeveux 64.0
A tpmax 5000
#insert belt mesh
F mmed /media/jiahe/SIMULATION_DATA/one_way_coupling/FEM/debug.med D 20
#import command script
F comm /media/jiahe/SIMULATION_DATA/one_way_coupling/FEM/debug.comm D 1
#output deformed mesh file
F rmed /media/jiahe/SIMULATION_DATA/one_way_coupling/FEM/deformed_mesh.rmed R 80
#output simulation status report
F mess /media/jiahe/SIMULATION_DATA/one_way_coupling/FEM/mess.mess R 6
#output result txt file
F resu /media/jiahe/SIMULATION_DATA/one_way_coupling/FEM/resu.resu R 8
#save current simulation database
R base /media/jiahe/SIMULATION_DATA/one_way_coupling/FEM/base RC 0
#output msh format mesh file
F pos /media/jiahe/SIMULATION_DATA/one_way_coupling/FEM/g_1.msh R 37

242
Appendix E – DEM calibration
Appendix E1 – Angle of repose calibration flow control
#using coal as an example
import os
import numpy as np
from subprocess import call

#get working directory


WORKING_DIR = os.getcwd()

#conduct simulation by loop particle parameters


for FF in np.linspace(0.5, 0.9, 5):
for RF in np.linspace(0.5, 0.8, 4):
if FF==0.7:
pass
else:
inread = open('from_restart_re-angle', 'r')
lines = inread.readlines()
lines[18] = "variable ff equal " + str(FF) + "\n"
lines[20] = "variable rf equal " + str(RF) + "\n"
tmp = open('in.tmp', 'w')
for a in lines:
tmp.write(a)
tmp.close()
call("mpirun -np 4 /home/jian/Documents/LIGGGHTS-PUBLIC-
3.5.0/src/lmp_openmpi <" + WORKING_DIR + "/in.tmp", shell=True)
os.remove('in.tmp')

Appendix E2 – Shear box calibration flow control


#using iron ore as an example
#import libraries
import os
import numpy as np
from subprocess import call

#get working directory


WORKING_DIR = os.getcwd()

#conduct simulation by loop particle parameters


for FF in np.linspace(0.5, 0.9, 5):
for RF in np.linspace(0.5, 0.8, 4):
inread = open('from_restart_box', 'r')
lines = inread.readlines()
lines[17] = "variable ff equal " + str(FF) + "\n"
lines[19] = "variable rf equal " + str(RF) + "\n"
tmp = open('in.tmp', 'w')
for a in lines:
tmp.write(a)
tmp.close()
call("mpirun -np 6 /home/jian/Documents/liggghts/src/lmp_openmpi <" +
WORKING_DIR + "/in.tmp", shell=True)
os.remove('in.tmp')

243
Appendix E3 – Angle of repose calibration
#using coal as an example
#### initialization #

# Variables - Timestep & Dumpstep


variable dt equal 2.5e-5

# Variable - Particle size distribution


variable r1 equal 0.0028
variable r2 equal 0.0045

# Variable - particle size fractions


variable frac1 equal 0.34
variable frac2 equal 0.66

# Variables - Particle and wall properties


variable cor equal 0.2 # coefficient of restitution
variable dens equal 1400 # Particle density (bulk density * porosity)
variable PR equal 0.3 # Poissons ratio
variable YM equal 1e7 # Young modulus
variable ff equal 0.6 # Particle particle friction
variable wf equal 0.6 # Particle wall friction
variable rf equal 0.5 # Rolling friction
variable CED equal 10 # Cohesion Energy Density - [J/m3] 1e3,
variable AED equal 10 # Adhesion Energy Density - [J/m3]

variable steps1 equal 0.8e5 # filling funnel


variable steps2 equal 1.6e5 # moving funnel
variable steps3 equal 10 # steady repos angle

#basic settings
units si
atom_style sphere
atom_modify map array
boundary f f m
newton off
communicate single vel yes
region domain block -0.65 0.65 -0.65 0.65 -0.002 0.81 units box
create_box 2 domain
neighbor 0.003 bin
neigh_modify delay 0 check no

#setup
fix m1 all property/global youngsModulus peratomtype ${YM} ${YM}
fix m2 all property/global poissonsRatio peratomtype ${PR} ${PR}
fix m3 all property/global coefficientRestitution peratomtypepair 2 ${cor} ${cor} ${cor} ${cor}
fix m4 all property/global coefficientFriction peratomtypepair 2 ${ff} ${wf} ${wf} 0
fix m5 all property/global coefficientRollingFriction peratomtypepair 2 ${rf} ${rf} ${rf} 0
fix m6 all property/global cohesionEnergyDensity peratomtypepair 2 ${CED} ${AED} ${AED} 0

fix ground all wall/gran model hertz tangential history primitive type 1 zplane 0.0# rolling_friction epsd2
fix funnel all mesh/surface file cylinder.stl type 2 rotate axis 1. 0. 0. angle 90 #move 0. 0. 0.15
curvature_tolerant yes #scale 0.1

fix geometry all wall/gran model hertz tangential history rolling_friction epsd2 mesh n_meshes 1 meshes
funnel

244
fix pts1 all particletemplate/sphere 15485863 atom_type 1 density constant ${dens} radius constant
${r1}
fix pts2 all particletemplate/sphere 15485867 atom_type 1 density constant ${dens} radius constant
${r2}

fix pdd all particledistribution/discrete 49979687 2 pts1 ${frac1} pts2 ${frac2} #pts3 ${frac3} pts4
${frac4}

region factory cylinder z 0. 0. 0.06 0.45 0.7 units box

fix ins all insert/rate/region seed 67867967 distributiontemplate pdd nparticles 172000 particlerate
100000 insert_every 2000 overlapcheck yes vel constant 0. 0. -0.8 region factory ntry_mc 10000

pair_style gran model hertz tangential history rolling_friction epsd2


pair_coeff * *

fix integrate all nve/sphere


fix grav all gravity 9.81 vector 0.0 0.0 -1.0
timestep ${dt}
thermo 10000
shell mkdir post_FF_${ff}_RF_${rf}_wf_${wf}

#timestep check
fix ctg all check/timestep/gran 1 0.1 0.01
run 1
unfix ctg

#output files
dump dumpstl all stl 2000 post_FF_${ff}_RF_${rf}_wf_${wf}/dump*.stl
dump dmp all custom 2000 post_FF_${ff}_RF_${rf}_wf_${wf}/dump*.liggghts id type type x y z ix iy
iz vx vy vz fx fy fz omegax omegay omegaz radius

run ${steps1} upto #filling funnel


write_restart cylinder_filled.restart

fix lift all move/mesh mesh funnel linear 0. 0. 0.08 #lift funnel
run ${steps2}
unfix lift

run ${steps3}

Appendix E4 – Shear box calibration


#using iron ore as an example
#### initialization #

# Variables - Timestep & Dumpstep


variable dt equal 2.5e-5

# Variable - Particle size distribution


variable r1 equal 0.0028
variable r2 equal 0.0045

245
# Variable - particle size fractions
variable frac1 equal 0.32
variable frac2 equal 0.68
# Variables - Particle and wall properties
variable cor equal 0.2 # coefficient of restitution
variable dens equal 3500 # Particle density (bulk density * porosity)
variable PR equal 0.3 # Poissons ratio
variable YM equal 1e7 # Young modulus
variable ff equal 0.6 # Particle particle friction
variable wf equal 0.7 # Particle wall friction
variable rf equal 0.7 # Rolling friction
variable CED equal 10 # Cohesion Energy Density - [J/m3] 1e3,
variable AED equal 10 # Adhesion Energy Density - [J/m3]

variable steps1 equal 1.6e5 # filling


variable steps2 equal 1.3e5 # moving

#basic settings
units si
atom_style sphere
atom_modify map array
boundary f f f
newton off
communicate single vel yes
region domain block -0.001 0.151 -0.001 0.301 -0.001 0.41 units box
create_box 2 domain

neighbor 0.003 bin


neigh_modify delay 0 check no page 150000 one 3000

#setup
fix m1 all property/global youngsModulus peratomtype ${YM} ${YM}
fix m2 all property/global poissonsRatio peratomtype ${PR} ${PR}
fix m3 all property/global coefficientRestitution peratomtypepair 2 ${cor} ${cor} ${cor} ${cor}
fix m4 all property/global coefficientFriction peratomtypepair 2 ${ff} ${wf} ${wf} 0
fix m5 all property/global coefficientRollingFriction peratomtypepair 2 ${rf} ${rf} ${rf} 0
fix m6 all property/global cohesionEnergyDensity peratomtypepair 2 ${CED} ${AED} ${AED} 0

fix wall1 all wall/gran model hertz tangential history primitive type 2 xplane 0.0
fix wall2 all wall/gran model hertz tangential history primitive type 2 xplane 0.15
fix wall3 all wall/gran model hertz tangential history primitive type 2 yplane 0.0
fix wally all wall/gran model hertz tangential history primitive type 2 yplane 0.3
fix ground all wall/gran model hertz tangential history primitive type 2 zplane 0.0# rolling_friction epsd2

#generate particles
fix pts1 all particletemplate/sphere 15485863 atom_type 1 density constant ${dens} radius constant
${r1}
fix pts2 all particletemplate/sphere 15485867 atom_type 1 density constant ${dens} radius constant
${r2}
fix pdd all particledistribution/discrete 49979687 2 pts1 ${frac1} pts2 ${frac2}

region factory block 0 0.14 0 0.29 0.3 0.41 units box


fix ins all insert/rate/region seed 67867967 distributiontemplate pdd nparticles 320000 particlerate
180000 insert_every 2000 overlapcheck yes vel constant 0. 0. -0.8 region factory ntry_mc 10000 #245000

pair_style gran model hertz tangential history rolling_friction epsd2


pair_coeff * *

fix integrate all nve/sphere


fix grav all gravity 9.81 vector 0.0 0.0 -1.0
246
timestep ${dt}
thermo 10000
shell mkdir post_FF_${ff}_RF_${rf}_wf_${wf}

#output files
dump dmp all custom 2000 post_FF_${ff}_RF_${rf}_wf_${wf}/dump*.liggghts id type x y z ix iy iz vx
vy vz fx fy fz omegax omegay omegaz radius

run ${steps1} upto #filling


write_restart box_filled.restart

Appendix E5 – Angle of repose calibration restart codes


#### initialization #

# Variables - Timestep & Dumpstep


variable dt equal 2.5e-5

# Variable - Particle size distribution


variable r1 equal 0.0028
variable r2 equal 0.0045

# Variable - particle size fractions


variable frac1 equal 0.34
variable frac2 equal 0.66

# Variables - Particle and wall properties


variable cor equal 0.2 # coefficient of restitution
variable dens equal 1400 # Particle density (bulk density * porosity)
variable PR equal 0.3 # Poissons ratio
variable YM equal 1e7 # Young modulus
variable ff equal 0.6 # Particle particle friction
variable wf equal 0.6 # Particle wall friction
variable rf equal 0.5 # Rolling friction
variable CED equal 10 # Cohesion Energy Density - [J/m3] 1e3,
variable AED equal 10 # Adhesion Energy Density - [J/m3]

variable steps1 equal 0.8e5 # filling funnel


variable steps2 equal 1.1e5 # moving funnel
variable steps3 equal 10 # steady repos angle

#basic settings
newton off
communicate single vel yes
region domain block -0.65 0.65 -0.65 0.65 -0.002 0.81 units box
neighbor 0.003 bin
neigh_modify delay 0 check no

#setup
fix m1 all property/global youngsModulus peratomtype ${YM} ${YM}
fix m2 all property/global poissonsRatio peratomtype ${PR} ${PR}
fix m3 all property/global coefficientRestitution peratomtypepair 2 ${cor} ${cor} ${cor} ${cor}
fix m4 all property/global coefficientFriction peratomtypepair 2 ${ff} ${wf} ${wf} 0
fix m5 all property/global coefficientRollingFriction peratomtypepair 2 ${rf} ${rf} ${rf} 0
fix m6 all property/global cohesionEnergyDensity peratomtypepair 2 ${CED} ${AED} ${AED} 0

fix ground all wall/gran model hertz tangential history primitive type 1 zplane 0.0# rolling_friction epsd2
fix funnel all mesh/surface file cylinder.stl type 2 rotate axis 1. 0. 0. angle 90 #move 0. 0. 0.15
curvature_tolerant yes #scale 0.1
247
fix geometry all wall/gran model hertz tangential history rolling_friction epsd2 mesh n_meshes 1 meshes
funnel

region dele1 cylinder z 0. 0. 0.072 0.35 0.7 units box


region dele2 cylinder z 0. 0. 0.07 0.0 0.5 side out units box
delete_atoms region dele1 compress yes
delete_atoms region dele2 compress yes

pair_style gran model hertz tangential history rolling_friction epsd2


pair_coeff * *

fix integrate all nve/sphere


fix grav all gravity 9.81 vector 0.0 0.0 -1.0
timestep ${dt}
thermo 10000
shell mkdir post_FF_${ff}_RF_${rf}_wf_${wf}

#output files
dump dumpstl all stl 2000 post_FF_${ff}_RF_${rf}_wf_${wf}/dump*.stl
dump dmp all custom 2000 post_FF_${ff}_RF_${rf}_wf_${wf}/dump*.liggghts id type type x y z ix iy
iz vx vy vz fx fy fz omegax omegay omegaz radius

run 4000

fix lift all move/mesh mesh funnel linear 0. 0. 0.08 #lift funnel
run ${steps2}
unfix lift

Appendix E6 – Shear box calibration restart codes


#### initialization #

# Variables - Timestep & Dumpstep


variable dt equal 2.5e-5

# Variable - Particle size distribution


variable r1 equal 0.0028
variable r2 equal 0.0045

# Variable - particle size fractions


variable frac1 equal 0.32
variable frac2 equal 0.68
# Variables - Particle and wall properties
variable cor equal 0.2 # coefficient of restitution
variable dens equal 3500 # Particle density (bulk density * porosity)
variable PR equal 0.3 # Poissons ratio
variable YM equal 1e7 # Young modulus
variable ff equal 0.6 # Particle particle friction
variable wf equal 0.7 # Particle wall friction
variable rf equal 0.7 # Rolling friction
variable CED equal 10 # Cohesion Energy Density - [J/m3] 1e3,
variable AED equal 10 # Adhesion Energy Density - [J/m3]

#basic settings
variable steps3 equal 120000 # steady
read_restart box_filled.restart
newton off
communicate single vel yes
248
region domain block -0.001 0.151 -0.001 0.301 -0.001 0.41 units box
neighbor 0.003 bin
neigh_modify delay 0 check no

#setup
fix m1 all property/global youngsModulus peratomtype ${YM} ${YM}
fix m2 all property/global poissonsRatio peratomtype ${PR} ${PR}
fix m3 all property/global coefficientRestitution peratomtypepair 2 ${cor} ${cor} ${cor} ${cor}
fix m4 all property/global coefficientFriction peratomtypepair 2 ${ff} ${wf} ${wf} 0
fix m5 all property/global coefficientRollingFriction peratomtypepair 2 ${rf} ${rf} ${rf} 0
fix m6 all property/global cohesionEnergyDensity peratomtypepair 2 ${CED} ${AED} ${AED} 0

fix wall1 all wall/gran model hertz tangential history primitive type 2 xplane 0.0
fix wall2 all wall/gran model hertz tangential history primitive type 2 xplane 0.15
fix wall3 all wall/gran model hertz tangential history primitive type 2 yplane 0.0
fix wally all wall/gran model hertz tangential history primitive type 2 yplane 0.3
fix ground all wall/gran model hertz tangential history primitive type 2 zplane 0.0

region dele1 block 0. 0.15 0. 0.3 0.28 0.35 units box


delete_atoms region dele1 compress yes

pair_style gran model hertz tangential history rolling_friction epsd2


pair_coeff * *

fix integrate all nve/sphere


fix grav all gravity 9.81 vector 0.0 0.0 -1.0
timestep ${dt}
thermo 10000
shell mkdir post_FF_${ff}_RF_${rf}_wf_${wf}

#output files
dump dmp all custom 4000 post_FF_${ff}_RF_${rf}_wf_${wf}/dump*.liggghts id type x y z ix iy iz vx
vy vz fx fy fz omegax omegay omegaz radius

restart 5000 post_FF_${ff}_RF_${rf}_wf_${wf}/box_angle.restart

unfix wally
run ${steps3}

249
Appendix F – DEM bulk material model
Appendix F1 – One -way coupled DEM model for coal
#initialization
units si
atom_style granular
atom_modify map array
boundary fpp
newton off
communicate single vel yes
timestep 0.00005

#create all atoms


region globreg block -0.3 0.3 -0.1 1.3 -0.1 0.4 units box side in
region smallreg1 block -0.07 0.07 -0.1 1.3 0 0.3 units box side in
create_box 3 globreg
neighbor 0.02 bin
neigh_modify delay 0

#define particle template


fix pts1 all particletemplate/sphere 15485863 atom_type 1 density constant 1400 radius
constant 0.0028
fix pts2 all particletemplate/sphere 32452843 atom_type 2 density constant 1400 radius
constant 0.0045
fix pdd1 all particledistribution/discrete 15485867, 2 pts1 0.32 pts2 0.68
fix ins all insert/pack seed 32452867 distributiontemplate pdd1 &
maxattempt 100 insert_every 100 overlapcheck yes all_in yes vel constant 0.0
0.0 -0.1 &
region smallreg1 mass_in_region 26 ntry_mc 1000

#set particel properties


fix Youngs all property/global youngsModulus peratomtype 1e7 1e7 1e7
fix Poissons all property/global poissonsRatio peratomtype 0.3 0.3 0.4
fix rest all property/global coefficientRestitution peratomtypepair 3 0.2 0.2 0.2 &
0.2 0.2 0.2 &
0.2 0.2 0.2
fix fric all property/global coefficientFriction peratomtypepair 3 0.6 0.6 0.6 &
0.6 0.6 0.6 &
0.6 0.6 0
fix rolling all property/global coefficientRollingFriction peratomtypepair 3 0.5 0.5 0.5 &
0.5 0.5 0.5 &
0.5 0.5 0
fix coh all property/global cohesionEnergyDensity peratomtypepair 3 10 10 10 &
10 10 10 &
10 10 0
pair_style gran model hertz tangential history rolling_friction epsd2 #Hertzian without cohesion
pair_coeff **

#import boundaries
fix cadbelt all mesh/surface/stress file
/media/jiahe/SIMULATION_DATA/one_way_coupling/geometry_files/belt_1250.stl type 3 scale 0.001
surface_vel 0. 0. 0.
fix cadend1 all mesh/surface/stress file
/media/jiahe/SIMULATION_DATA/one_way_coupling/geometry_files/end1_1250.stl type 3 scale 0.001
surface_vel 0. 0. 0.
fix cadend2 all mesh/surface/stress file
/media/jiahe/SIMULATION_DATA/one_way_coupling/geometry_files/end2_1250.stl type 3 scale 0.001
surface_vel 0. 0. 0.

250
#specify contact model
fix wall all wall/gran model hertz tangential history rolling_friction epsd2 mesh n_meshes 3
meshes cadbelt cadend1 cadend2
fix gravi all gravity 9.81 vector 0.0 0.0 -1.0

#calculation
fix integr all nve/sphere
compute rke all erotate/sphere

#export results
dump dmp all custom 400
/media/jiahe/SIMULATION_DATA/one_way_coupling/dem/coal/post/atoms/dump*.liggghts id mass
density x y z ix iy iz vx vy vz fx fy fz omegax omegay omegaz radius

dump stressout all mesh/vtk 400


/media/jiahe/SIMULATION_DATA/one_way_coupling/dem/coal/post/stress/stress*.vtk output face
stresscomponents id cadbelt cadend1 cadend2

dump nor_shr all mesh/vtk 400


/media/jiahe/SIMULATION_DATA/one_way_coupling/dem/coal/post/surface/surfaceout*.vtk stress
cadbelt cadend1 cadend2

#disable particle injection


run 5000
unfix ins
run 50000

Appendix F2 – One -way coupled DEM model for iron ore


#initialization
units si
atom_style granular
atom_modify map array
boundary fpp
newton off
communicate single vel yes
timestep 0.00005

#create all atoms


region globreg block -0.3 0.3 -0.1 1.3 -0.1 0.4 units box side in
region smallreg1 block -0.07 0.07 -0.1 1.3 0 0.3 units box side in
create_box 3 globreg
neighbor 0.02 bin
neigh_modify delay 0

#define particle template


fix pts1 all particletemplate/sphere 15485863 atom_type 1 density constant 3500 radius
constant 0.0028
fix pts2 all particletemplate/sphere 32452843 atom_type 2 density constant 3500 radius
constant 0.0045
fix pdd1 all particledistribution/discrete 15485867, 2 pts1 0.32 pts2 0.68
fix ins all insert/pack seed 32452867 distributiontemplate pdd1 &
maxattempt 100 insert_every 100 overlapcheck yes all_in yes vel constant 0.0
0.0 -0.1 &
region smallreg1 mass_in_region 68 ntry_mc 1000

#set particel properties


fix Youngs all property/global youngsModulus peratomtype 1e7 1e7 1e7
251
fix Poissons all property/global poissonsRatio peratomtype 0.3 0.3 0.4
fix rest all property/global coefficientRestitution peratomtypepair 3 0.2 0.2 0.2 &
0.2 0.2 0.2 &
0.2 0.2 0.2
fix fric all property/global coefficientFriction peratomtypepair 3 0.6 0.6 0.7 &
0.6 0.6 0.7 &
0.7 0.7 0
fix rolling all property/global coefficientRollingFriction peratomtypepair 3 0.7 0.7 0.7 &
0.7 0.7 0.7 &
0.7 0.7 0
fix coh all property/global cohesionEnergyDensity peratomtypepair 3 1 1 1 &
111&
110
pair_style gran model hertz tangential history rolling_friction epsd2 #Hertzian without cohesion
pair_coeff **

#import boundaries
fix cadbelt all mesh/surface/stress file
/media/jiahe/SIMULATION_DATA/one_way_coupling/geometry_files/belt_1250.stl type 3 scale 0.001
surface_vel 0. 0. 0.
fix cadend1 all mesh/surface/stress file
/media/jiahe/SIMULATION_DATA/one_way_coupling/geometry_files/end1_1250.stl type 3 scale 0.001
surface_vel 0. 0. 0.
fix cadend2 all mesh/surface/stress file
/media/jiahe/SIMULATION_DATA/one_way_coupling/geometry_files/end2_1250.stl type 3 scale 0.001
surface_vel 0. 0. 0.

#specify contact model


fix wall all wall/gran model hertz tangential history rolling_friction epsd2 mesh n_meshes 3
meshes cadbelt cadend1 cadend2
fix gravi all gravity 9.81 vector 0.0 0.0 -1.0

#calculation
fix integr all nve/sphere
compute rke all erotate/sphere

#export results
dump dmp all custom 400
/media/jiahe/SIMULATION_DATA/one_way_coupling/dem/ore/post/atoms/dump*.liggghts id mass
density x y z ix iy iz vx vy vz fx fy fz omegax omegay omegaz radius

dump stressout all mesh/vtk 400


/media/jiahe/SIMULATION_DATA/one_way_coupling/dem/ore/post/stress/stress*.vtk output face
stresscomponents id cadbelt cadend1 cadend2

dump nor_shr all mesh/vtk 400


/media/jiahe/SIMULATION_DATA/one_way_coupling/dem/ore/post/surface/surfaceout*.vtk stress
cadbelt cadend1 cadend2

#disable particle injection


run 5000
unfix ins
run 50000

252
Appendix G – Calculations of bulk material cross-sectional area and
density
import os
from numpy import *
import re
from math import *
import sys
import string
os.chdir('working directory') #for example:
/media/jiahe/SIMULATION_DATA/two_way_coupling/coal/dem/post/atoms

#read liggghts output file


data=open('dump100000.liggghts','r')
f=data.readlines()

m=0
n=0
#count small and large particle numbers
for i in range(9, len(f)):
if float(f[i].split()[4]) > 0:
if float(f[i].split()[4]) <1.2:
if float(f[i].split()[18]) == 0.0028:
m += 1
else:
n += 1
total = m + n
print 'The number of particles on a 1.2m length belt is ' + str(total) + ' , in which the large particles are ' +
str(n) + ' and the small particles are ' + str(m)

#transversely scan the particles in each subsection having width of 10mm


s=0
for j in range(220,0,-10):
distance=0
height=0
#cumulatively calculate the cross section area
for i in range(9, len(f)):
if 0.2<float(f[i].split()[4])<0.22:
if j*0.001-0.01<float(f[i].split()[3])<j*0.001:
if float(f[i].split()[5])>height:
height=float(f[i].split()[3])
distance=height+ float(f[i].split()[18])
s=s+distance*0.01

print 'Bulk material loading profile area is ' + str(s*2-0.015) + ' m2'

density =1400 #particle density for coal


r1=0.0028 #small particle radius
r2=0.0045 #large particle radius

#total mass with in this region


mass=4*3.14*float(density)*(float(r1)*float(r1)*float(r1)*float(m)+float(r2)*float(r2)*float(r2)*float(n))/
3
print 'The total weight of the bulk material is '+ str(mass)+ 'kg'

#bulk material density, in this case for coal


bulk_density=float(mass)/float(s*2-0.015)/1.2
print 'The bulk material density is '+ str(bulk_density)+ 'kg/m3'

253
254
Appendix H – Coupled FEM-DEM model for predicting dynamic belt
deflection

Appendix H1 – Two-way coupled FEM deflection model for 6mm thickness belt
#import necessary libraries
import sys
sys.path.append('/media/jiahe/SIMULATION_DATA/aster_12.6.1/12.6/lib/aster/Utilitai')
from Utilitai.partition import *
import re
from math import *
from subprocess import call
from numpy import *
import string

#coupling iteration
Xstep=1

#create element force data to assign to the FEM belt mesh


def index_substring(strings, substring):
return next(i for i, string in enumerate(strings) if substring in string)

#read liggghts vtk file


def liggghts_to_aster():
#specify readin file through the coupling code
vtk_file
=open("/media/jiahe/SIMULATION_DATA/two_way_coupling/DEM/post/stress/stress180000.vtk")
vtk_list =vtk_file.readlines()
vtk_file.close()
points_start_index = index_substring(vtk_list, "POINTS")+1
cells_start_index = index_substring(vtk_list, "CELLS")+1
stress_start_index = index_substring(vtk_list, "VECTORS stress float")+1
cellIDs_start_index = index_substring(vtk_list, "SCALARS meshid float")+2
points_co = []
pressure_all = []
cellIDs = zeros( (len(vtk_list) - cellIDs_start_index,1) )
print 'There are ' + str(len(cellIDs)) + ' mesh elements in the model'

#extract mesh IDs


for i in range(cellIDs_start_index, len(vtk_list)):
for j in vtk_list[i].split():
cellIDs[i-cellIDs_start_index]=(int(float(j)))

#extract coordinates
for i in range(points_start_index, cells_start_index-1):
for t in vtk_list[i].split():
try:
points_co.append(float(t)*1000)
except ValueError:
pass

#calculate centroid coordinates


centroids = zeros( ((len(points_co)/9),3) )
for i in range(0,len(points_co),9):
centroids[(i/9), 0] = (points_co[i]+points_co[i+3]+points_co[i+6])/3 #coordinates in x-axis
centroids[(i/9), 1] = (points_co[i+1]+points_co[i+4]+points_co[i+7])/3 #coordinates in y-axis

255
centroids[(i/9), 2] = (points_co[i+2]+points_co[i+5]+points_co[i+8])/3 #coordinates in z-axis

#generate pressure matrix


for i in range(stress_start_index, cellIDs_start_index-2):
for t in vtk_list[i].split():
try:
pressure_all.append(float(t)*0.000001)
except ValueError:
pass
pressure_components = zeros( ((len(pressure_all)/3),3) )
for i in range(0,len(pressure_all),3):
pressure_components[(i/3), 0] = (pressure_all[i]) #pressure in global x-axis
pressure_components[(i/3), 1] = (pressure_all[i+1]) #pressure in global y-axis
pressure_components[(i/3), 2] = (pressure_all[i+2]) #pressure in global z-axis

#add pressure components to the related mesh ids


code_aster_input_h = append(cellIDs, centroids, axis=1)
code_aster_input = append(code_aster_input_h, pressure_components, axis=1) #add as new
columns
return code_aster_input

#FEM program commmand


#import belt mesh
if Xstep == 1:
DEBUT (PAR_LOT='NON',);
mesh=LIRE_MAILLAGE( INFO=1,UNITE=20,FORMAT='MED',);
mesh=DEFI_GROUP(MAILLAGE=mesh,
reuse =mesh,
CREA_GROUP_MA=(_F(NOM='TOUT',TOUT='OUI',),),
CREA_GROUP_NO=(_F(TOUT_GROUP_MA='OUI',),),);
mesh=MODI_MAILLAGE(MAILLAGE=mesh,
reuse =mesh,
ORIE_NORM_COQUE=(_F(GROUP_MA=('belt',),VECT_NORM = ( 0, 0,
1.0),GROUP_NO='orienp',),),);
model=AFFE_MODELE(MAILLAGE=mesh,

AFFE=(_F(GROUP_MA='belt',PHENOMENE='MECANIQUE',MODELISATION='DKTG',),),);

#define 6mm thickness belt properties(orthotropic material)


elemcar=AFFE_CARA_ELEM(MODELE=model,
COQUE=(_F(GROUP_MA='belt', EPAIS=6.0, COQUE_NCOU=3, VECTEUR = ( 0, 1,
0),),),);
rubber=DEFI_MATERIAU(ELAS_ORTH=_F(E_L=37.2, E_T=19.1, NU_LT=0.45,
RHO=0.000000001365, G_LT=10.2,),);
poly=DEFI_MATERIAU(ELAS_ORTH=_F(E_L=37.2, E_T=19.1, NU_LT=0.45,
RHO=0.000000001365, G_LT=10.2,),);
multi=DEFI_COMPOSITE(COUCHE=(_F(EPAIS=2,MATER=rubber,ORIENTATION=0.0,),
_F(EPAIS=2,MATER=poly,ORIENTATION=0.0,),
_F(EPAIS=2,MATER=rubber,ORIENTATION=0.0,),),);
material=AFFE_MATERIAU(MAILLAGE=mesh,
AFFE=_F(GROUP_MA=('belt'),MATER=multi,),);

#for the succesive steps


else:
#import meshes from previous interation
POURSUITE(PAR_LOT='NON',);
mesh=MODI_MAILLAGE(MAILLAGE=mesh,
reuse =mesh,
ORIE_NORM_COQUE=(_F(GROUP_MA=('belt',),VECT_NORM = ( 0, 0,
1.0),GROUP_NO='orienp',),),);
256
#set up boundary conditions
ground1=AFFE_CHAR_MECA(MODELE=model,
DDL_IMPO=_F(GROUP_NO=('edge1',),DX=0,DY=0,DZ=0,DRX=0,DRY=0,DRZ=0,),);
ground2=AFFE_CHAR_MECA(MODELE=model,
DDL_IMPO=_F(GROUP_NO=('edge2','edge3',),DX=0,DZ=0,DRX=0,DRY=0,DRZ=0,),);

#define belt pre-tension


pre=AFFE_CHAR_MECA(MODELE=model,
FORCE_NODALE=_F(GROUP_NO=('edge2','edge3',),
FY= 300,),);

#belt self weight


selfwght=AFFE_CHAR_MECA(MODELE=model,
PESANTEUR=_F(GRAVITE=9800,DIRECTION=(0,0,-1),GROUP_MA=('belt',),),);

#assign the bulk material loads by element IDs


vtkout = liggghts_to_aster()
pres_inp =[]
for i in range(len(vtkout)):
if 0 < vtkout[i][2] < 1050:
pres_inp.append(_F(MAILLE='M%d'%(int(float(vtkout[i][0]))+int(54)), FX=(vtkout[i][4]),
FY=(vtkout[i][5]), FZ=(vtkout[i][6])))
cv=AFFE_CHAR_MECA(MODELE=model,FORCE_COQUE=pres_inp,);

#define increments for non-linear analysis


if Xstep == 1:
Rampe_t=DEFI_FONCTION(NOM_PARA='INST',
VALE=(0.0,0.0, 0.3,1.0, 0.7,1.0, 1.0,1.0),);
Rampe_f=DEFI_FONCTION(NOM_PARA='INST',
VALE=(0.0,0.0, 0.3,0.0, 0.7,1.0, 1.0,1.0),);
Rampe_w=DEFI_FONCTION(NOM_PARA='INST',
VALE=(0.0,0.0, 0.3,0.0, 0.7,0.0, 1.0,1.0),);
step_1=DEFI_LIST_REEL(DEBUT=(0.0),

INTERVALLE=(_F(JUSQU_A=0.3,PAS=0.02,),_F(JUSQU_A=0.7,PAS=0.02,),_F(JUSQU_A=1.0,PAS
=0.02,),),);
Instant1=DEFI_LIST_INST(DEFI_LIST=_F(METHODE='AUTO', LIST_INST=step_1,),);

else:

Rampe_x=DEFI_FONCTION(NOM_PARA='INST',VALE=((Xstep-1),0.0, Xstep,1.0,),);
step_x=DEFI_LIST_REEL(DEBUT=(Xstep-1),
INTERVALLE=_F(JUSQU_A=Xstep,NOMBRE=10,),);
Instantx=DEFI_LIST_INST(DEFI_LIST=_F(METHODE='AUTO', LIST_INST=step_x,),);

#difine a list of steps for display (output every 5 steps)


stepr=DEFI_LIST_REEL(DEBUT=(Xstep-1),INTERVALLE=_F(JUSQU_A=Xstep,PAS=0.2,),);
stepm=DEFI_LIST_REEL(DEBUT=0,INTERVALLE=_F(JUSQU_A=Xstep,NOMBRE=Xstep,),);

#solve by non-linear analysis


if Xstep == 1:
stat=STAT_NON_LINE(MODELE=model,
CHAM_MATER=material,
CARA_ELEM=elemcar,

EXCIT=(_F(CHARGE=ground1,),_F(CHARGE=ground2,),_F(CHARGE=pre,FONC_MULT=Rampe_t,
),),

COMPORTEMENT=_F(RELATION='ELAS',DEFORMATION='GROT_GDEP',TOUT='OUI',),
257
INCREMENT=_F(LIST_INST=Instant1,INST_INIT=0.0,INST_FIN = 0.3,),

NEWTON=_F(PREDICTION='TANGENTE',MATRICE='TANGENTE',REAC_ITER=1,),
RECH_LINEAIRE=_F(),
CONVERGENCE=_F(RESI_GLOB_RELA=1E-
4,ITER_GLOB_MAXI=500,ITER_GLOB_ELAS=100,),);

stat=STAT_NON_LINE(reuse=stat,
MODELE=model,
CHAM_MATER=material,
CARA_ELEM=elemcar,

EXCIT=(_F(CHARGE=ground1,),_F(CHARGE=ground2,),_F(CHARGE=pre,),_F(CHARGE=cv,FONC
_MULT=Rampe_f,),),

COMPORTEMENT=_F(RELATION='ELAS',DEFORMATION='GROT_GDEP',TOUT='OUI',),
RECH_LINEAIRE=_F(),
ETAT_INIT=_F(EVOL_NOLI=stat,INST=0.3,),
INCREMENT=_F(LIST_INST=Instant1, INST_INIT=0.3,INST_FIN = 0.7,),

NEWTON=_F(PREDICTION='TANGENTE',MATRICE='TANGENTE',REAC_ITER=1,),
CONVERGENCE=_F(RESI_GLOB_RELA=1E-
4,ITER_GLOB_MAXI=500,ITER_GLOB_ELAS=100,),);

stat=STAT_NON_LINE(reuse=stat,
MODELE=model,
CHAM_MATER=material,
CARA_ELEM=elemcar,

EXCIT=(_F(CHARGE=ground1,),_F(CHARGE=ground2,),_F(CHARGE=pre,),_F(CHARGE=cv,),_F(C
HARGE=selfwght, FONC_MULT=Rampe_w,),),

COMPORTEMENT=_F(RELATION='ELAS',DEFORMATION='GROT_GDEP',TOUT='OUI',),
RECH_LINEAIRE=_F(),
ETAT_INIT=_F(EVOL_NOLI=stat,INST=0.7,),
INCREMENT=_F(LIST_INST=Instant1,INST_INIT=0.7,INST_FIN = 1.0,),

NEWTON=_F(PREDICTION='TANGENTE',MATRICE='TANGENTE',REAC_ITER=1,),
CONVERGENCE=_F(RESI_GLOB_RELA=1E-
4,ITER_GLOB_MAXI=500,ITER_GLOB_ELAS=100,),);

else:
extr=CREA_CHAMP(TYPE_CHAM='ELGA_SIEF_R',
OPERATION='EXTR',
RESULTAT=stat,
NOM_CHAM='SIEF_ELGA',
INST=(Xstep-1),);

stat=STAT_NON_LINE(reuse=stat,
MODELE=model,
CHAM_MATER=material,
CARA_ELEM=elemcar,

EXCIT=(_F(CHARGE=ground1,),_F(CHARGE=ground2,),_F(CHARGE=pre,),_F(CHARGE=selfwght,
),_F(CHARGE=cv, FONC_MULT=Rampe_x,),),

COMPORTEMENT=_F(RELATION='ELAS',DEFORMATION='GROT_GDEP',TOUT='OUI',),
RECH_LINEAIRE=_F(),
ETAT_INIT=_F(EVOL_NOLI=stat,INST=(Xstep-1),),
INCREMENT=_F(LIST_INST=Instantx, INST_INIT=(Xstep-1), INST_FIN = Xstep,),
258
NEWTON=_F(PREDICTION='TANGENTE',MATRICE='TANGENTE',REAC_ITER=1,),
CONVERGENCE=_F(RESI_GLOB_RELA=1E-
4,ITER_GLOB_MAXI=500,ITER_GLOB_ELAS=100,),);
DETRUIRE(CONCEPT=_F(NOM=extr,),);

#output deformed belt


p=CREA_CHAMP(TYPE_CHAM='NOEU_DEPL_R',
OPERATION='EXTR',
RESULTAT=stat,
NOM_CHAM='DEPL',
INST=Xstep,);

meshstl = COPIER(CONCEPT=mesh)
p2 = PROJ_CHAMP(CHAM_GD=p,
METHODE='COLLOCATION',
MAILLAGE_1=mesh,
MAILLAGE_2=meshstl,)

meshstl=MODI_MAILLAGE(reuse =meshstl,
MAILLAGE=meshstl,
DEFORME=_F(OPTION='TRAN',
DEPL=p2,),);

IMPR_RESU(FORMAT='GMSH',
VERSION=1.2,
RESU=_F(MAILLAGE=meshstl,),);

#enrich obtained results


stat=CALC_CHAMP(reuse=stat,
RESULTAT=stat,
LIST_INST=stepr,
CONTRAINTE=('SIEF_ELNO',),
FORCE=('REAC_NODA',),);

#output results in ASCII format


IMPR_RESU(MODELE=model,
FORMAT='RESULTAT',
RESU=(_F(MAILLAGE=mesh,
RESULTAT=stat,
NOM_CHAM='DEPL',
LIST_INST=stepr,
NOM_CMP= ('DX','DY','DZ',),
#nodes on the belt centralline and middle cross section
NOEUD= ('N1', 'N132', 'N134', 'N136', 'N138',
'N140', 'N142', 'N144', 'N146', 'N148',
'N14', 'N321', 'N323', 'N325', 'N327',
'N329', 'N331', 'N333', 'N335', 'N337',
'N23', 'N10', 'N47', 'N11', 'N88', 'N12',
'N13', 'N129', 'N151', 'N15', 'N16', 'N192',
'N17', 'N214', 'N18',),),),);

#output results in med format for visualization


if Xstep == 1:
IMPR_RESU(FORMAT='MED',
UNITE=80,
259
RESU=_F(GROUP_MA='belt',RESULTAT=stat,NOM_CHAM=('DEPL',),NOM_CMP=('DZ',),LIST_IN
ST=stepr,),);
else:
IMPR_RESU(FORMAT='MED',
UNITE=80,

RESU=_F(GROUP_MA='belt',RESULTAT=stat,NOM_CHAM=('DEPL',),NOM_CMP=('DZ',),LIST_IN
ST=stepm,),);

#destroy variables in current iteration


if Xstep == 1:
DETRUIRE(CONCEPT=_F(NOM=p,),);
DETRUIRE(CONCEPT=_F(NOM=p2,),);
DETRUIRE(CONCEPT=_F(NOM=ground1,),);
DETRUIRE(CONCEPT=_F(NOM=ground2,),);
DETRUIRE(CONCEPT=_F(NOM=pre,),);
DETRUIRE(CONCEPT=_F(NOM=selfwght,),);
DETRUIRE(CONCEPT=_F(NOM=cv,),);
DETRUIRE(CONCEPT=_F(NOM=Rampe_t,),);
DETRUIRE(CONCEPT=_F(NOM=Rampe_f,),);
DETRUIRE(CONCEPT=_F(NOM=Rampe_w,),);
DETRUIRE(CONCEPT=_F(NOM=Instant1,),);
DETRUIRE(CONCEPT=_F(NOM=meshstl,),);
DETRUIRE(CONCEPT=_F(NOM=stepr,),);
DETRUIRE(CONCEPT=_F(NOM=stepm,),);
else:
DETRUIRE(CONCEPT=_F(NOM=p,),);
DETRUIRE(CONCEPT=_F(NOM=p2,),);
DETRUIRE(CONCEPT=_F(NOM=ground1,),);
DETRUIRE(CONCEPT=_F(NOM=ground2,),);
DETRUIRE(CONCEPT=_F(NOM=pre,),);
DETRUIRE(CONCEPT=_F(NOM=selfwght,),);
DETRUIRE(CONCEPT=_F(NOM=cv,),);
DETRUIRE(CONCEPT=_F(NOM=Rampe_x,),);
DETRUIRE(CONCEPT=_F(NOM=Instantx,),);
DETRUIRE(CONCEPT=_F(NOM=meshstl,),);
DETRUIRE(CONCEPT=_F(NOM=stepr,),);
DETRUIRE(CONCEPT=_F(NOM=step_x,),);
DETRUIRE(CONCEPT=_F(NOM=stepm,),);

FIN();

Appendix H2 – Two-way coupled FEM deflection model for 12mm thickness belt
#import necessary libraries
import sys
sys.path.append('/media/jiahe/SIMULATION_DATA/aster_12.6.1/12.6/lib/aster/Utilitai')
from Utilitai.partition import *
import re
from math import *
from subprocess import call
from numpy import *
import string

260
#coupling iteration
Xstep=1

#create element force data to assign to the FEM belt mesh


def index_substring(strings, substring):
return next(i for i, string in enumerate(strings) if substring in string)

#read liggghts vtk file


def liggghts_to_aster():
#specify readin file through the coupling code
vtk_file
=open("/media/jiahe/SIMULATION_DATA/two_way_coupling/DEM/post/stress/stress180000.vtk")
vtk_list =vtk_file.readlines()
vtk_file.close()
points_start_index = index_substring(vtk_list, "POINTS")+1
cells_start_index = index_substring(vtk_list, "CELLS")+1
stress_start_index = index_substring(vtk_list, "VECTORS stress float")+1
cellIDs_start_index = index_substring(vtk_list, "SCALARS meshid float")+2
points_co = []
pressure_all = []
cellIDs = zeros( (len(vtk_list) - cellIDs_start_index,1) )
print 'There are ' + str(len(cellIDs)) + ' mesh elements in the model'

#extract mesh IDs


for i in range(cellIDs_start_index, len(vtk_list)):
for j in vtk_list[i].split():
cellIDs[i-cellIDs_start_index]=(int(float(j)))

#extract coordinates
for i in range(points_start_index, cells_start_index-1):
for t in vtk_list[i].split():
try:
points_co.append(float(t)*1000)
except ValueError:
pass

#calculate centroid coordinates


centroids = zeros( ((len(points_co)/9),3) )
for i in range(0,len(points_co),9):
centroids[(i/9), 0] = (points_co[i]+points_co[i+3]+points_co[i+6])/3 #coordinates in x-axis
centroids[(i/9), 1] = (points_co[i+1]+points_co[i+4]+points_co[i+7])/3 #coordinates in y-axis
centroids[(i/9), 2] = (points_co[i+2]+points_co[i+5]+points_co[i+8])/3 #coordinates in z-axis

#generate pressure matrix


for i in range(stress_start_index, cellIDs_start_index-2):
for t in vtk_list[i].split():
try:
pressure_all.append(float(t)*0.000001)
except ValueError:
pass
pressure_components = zeros( ((len(pressure_all)/3),3) )
for i in range(0,len(pressure_all),3):
pressure_components[(i/3), 0] = (pressure_all[i]) #pressure in global x-axis
pressure_components[(i/3), 1] = (pressure_all[i+1]) #pressure in global y-axis
pressure_components[(i/3), 2] = (pressure_all[i+2]) #pressure in global z-axis

#add pressure components to the related mesh ids


code_aster_input_h = append(cellIDs, centroids, axis=1)
code_aster_input = append(code_aster_input_h, pressure_components, axis=1) #add as new
columns
261
return code_aster_input

#FEM program commmand


#import belt mesh
if Xstep == 1:
DEBUT (PAR_LOT='NON',);
mesh=LIRE_MAILLAGE( INFO=1,UNITE=20,FORMAT='MED',);
mesh=DEFI_GROUP(MAILLAGE=mesh,
reuse =mesh,
CREA_GROUP_MA=(_F(NOM='TOUT',TOUT='OUI',),),
CREA_GROUP_NO=(_F(TOUT_GROUP_MA='OUI',),),);
mesh=MODI_MAILLAGE(MAILLAGE=mesh,
reuse =mesh,
ORIE_NORM_COQUE=(_F(GROUP_MA=('belt',),VECT_NORM = ( 0, 0,
1.0),GROUP_NO='orienp',),),);
model=AFFE_MODELE(MAILLAGE=mesh,

AFFE=(_F(GROUP_MA='belt',PHENOMENE='MECANIQUE',MODELISATION='DKTG',),),);

#define 6mm thickness belt properties(orthotropic material)


elemcar=AFFE_CARA_ELEM(MODELE=model,
COQUE=(_F(GROUP_MA='belt', EPAIS=12.0, COQUE_NCOU=3, VECTEUR = ( 0,
1, 0),),),);
rubber=DEFI_MATERIAU(ELAS_ORTH=_F(E_L=65, E_T=40, NU_LT=0.45,
RHO=0.000000001365, G_LT=19,),);
poly=DEFI_MATERIAU(ELAS_ORTH=_F(E_L=65, E_T=40, NU_LT=0.45,
RHO=0.000000001365, G_LT=19,),);
multi=DEFI_COMPOSITE(COUCHE=(_F(EPAIS=4,MATER=rubber,ORIENTATION=0.0,),
_F(EPAIS=4,MATER=poly,ORIENTATION=0.0,),
_F(EPAIS=4,MATER=rubber,ORIENTATION=0.0,),),);
material=AFFE_MATERIAU(MAILLAGE=mesh,
AFFE=_F(GROUP_MA=('belt'),MATER=multi,),);

#for the succesive steps


else:
#import meshes from previous interation
POURSUITE(PAR_LOT='NON',);
mesh=MODI_MAILLAGE(MAILLAGE=mesh,
reuse =mesh,
ORIE_NORM_COQUE=(_F(GROUP_MA=('belt',),VECT_NORM = ( 0, 0,
1.0),GROUP_NO='orienp',),),);

#set up boundary conditions


ground1=AFFE_CHAR_MECA(MODELE=model,
DDL_IMPO=_F(GROUP_NO=('edge1',),DX=0,DY=0,DZ=0,DRX=0,DRY=0,DRZ=0,),);
ground2=AFFE_CHAR_MECA(MODELE=model,
DDL_IMPO=_F(GROUP_NO=('edge2','edge3',),DX=0,DZ=0,DRX=0,DRY=0,DRZ=0,),);

#define belt pre-tension


pre=AFFE_CHAR_MECA(MODELE=model,
FORCE_NODALE=_F(GROUP_NO=('edge2','edge3',),
FY= 300,),);

#belt self weight


selfwght=AFFE_CHAR_MECA(MODELE=model,
PESANTEUR=_F(GRAVITE=9800,DIRECTION=(0,0,-1),GROUP_MA=('belt',),),);

#assign the bulk material loads by element IDs


vtkout = liggghts_to_aster()
pres_inp =[]
262
for i in range(len(vtkout)):
if 0 < vtkout[i][2] < 1050:
pres_inp.append(_F(MAILLE='M%d'%(int(float(vtkout[i][0]))+int(54)), FX=(vtkout[i][4]),
FY=(vtkout[i][5]), FZ=(vtkout[i][6])))
cv=AFFE_CHAR_MECA(MODELE=model,FORCE_COQUE=pres_inp,);

#define increments for non-linear analysis


if Xstep == 1:
Rampe_t=DEFI_FONCTION(NOM_PARA='INST',
VALE=(0.0,0.0, 0.3,1.0, 0.7,1.0, 1.0,1.0),);
Rampe_f=DEFI_FONCTION(NOM_PARA='INST',
VALE=(0.0,0.0, 0.3,0.0, 0.7,1.0, 1.0,1.0),);
Rampe_w=DEFI_FONCTION(NOM_PARA='INST',
VALE=(0.0,0.0, 0.3,0.0, 0.7,0.0, 1.0,1.0),);
step_1=DEFI_LIST_REEL(DEBUT=(0.0),

INTERVALLE=(_F(JUSQU_A=0.3,PAS=0.02,),_F(JUSQU_A=0.7,PAS=0.02,),_F(JUSQU_A=1.0,PAS
=0.02,),),);
Instant1=DEFI_LIST_INST(DEFI_LIST=_F(METHODE='AUTO', LIST_INST=step_1,),);

else:

Rampe_x=DEFI_FONCTION(NOM_PARA='INST',VALE=((Xstep-1),0.0, Xstep,1.0,),);
step_x=DEFI_LIST_REEL(DEBUT=(Xstep-1),
INTERVALLE=_F(JUSQU_A=Xstep,NOMBRE=10,),);
Instantx=DEFI_LIST_INST(DEFI_LIST=_F(METHODE='AUTO', LIST_INST=step_x,),);

#difine a list of steps for display (output every 5 steps)


stepr=DEFI_LIST_REEL(DEBUT=(Xstep-1),INTERVALLE=_F(JUSQU_A=Xstep,PAS=0.2,),);
stepm=DEFI_LIST_REEL(DEBUT=0,INTERVALLE=_F(JUSQU_A=Xstep,NOMBRE=Xstep,),);

#solve by non-linear analysis


if Xstep == 1:
stat=STAT_NON_LINE(MODELE=model,
CHAM_MATER=material,
CARA_ELEM=elemcar,

EXCIT=(_F(CHARGE=ground1,),_F(CHARGE=ground2,),_F(CHARGE=pre,FONC_MULT=Rampe_t,
),),

COMPORTEMENT=_F(RELATION='ELAS',DEFORMATION='GROT_GDEP',TOUT='OUI',),
INCREMENT=_F(LIST_INST=Instant1,INST_INIT=0.0,INST_FIN = 0.3,),

NEWTON=_F(PREDICTION='TANGENTE',MATRICE='TANGENTE',REAC_ITER=1,),
RECH_LINEAIRE=_F(),
CONVERGENCE=_F(RESI_GLOB_RELA=1E-
4,ITER_GLOB_MAXI=500,ITER_GLOB_ELAS=100,),);

stat=STAT_NON_LINE(reuse=stat,
MODELE=model,
CHAM_MATER=material,
CARA_ELEM=elemcar,

EXCIT=(_F(CHARGE=ground1,),_F(CHARGE=ground2,),_F(CHARGE=pre,),_F(CHARGE=cv,FONC
_MULT=Rampe_f,),),

COMPORTEMENT=_F(RELATION='ELAS',DEFORMATION='GROT_GDEP',TOUT='OUI',),
RECH_LINEAIRE=_F(),
ETAT_INIT=_F(EVOL_NOLI=stat,INST=0.3,),
INCREMENT=_F(LIST_INST=Instant1, INST_INIT=0.3,INST_FIN = 0.7,),
263
NEWTON=_F(PREDICTION='TANGENTE',MATRICE='TANGENTE',REAC_ITER=1,),
CONVERGENCE=_F(RESI_GLOB_RELA=1E-
4,ITER_GLOB_MAXI=500,ITER_GLOB_ELAS=100,),);

stat=STAT_NON_LINE(reuse=stat,
MODELE=model,
CHAM_MATER=material,
CARA_ELEM=elemcar,

EXCIT=(_F(CHARGE=ground1,),_F(CHARGE=ground2,),_F(CHARGE=pre,),_F(CHARGE=cv,),_F(C
HARGE=selfwght, FONC_MULT=Rampe_w,),),

COMPORTEMENT=_F(RELATION='ELAS',DEFORMATION='GROT_GDEP',TOUT='OUI',),
RECH_LINEAIRE=_F(),
ETAT_INIT=_F(EVOL_NOLI=stat,INST=0.7,),
INCREMENT=_F(LIST_INST=Instant1,INST_INIT=0.7,INST_FIN = 1.0,),

NEWTON=_F(PREDICTION='TANGENTE',MATRICE='TANGENTE',REAC_ITER=1,),
CONVERGENCE=_F(RESI_GLOB_RELA=1E-
4,ITER_GLOB_MAXI=500,ITER_GLOB_ELAS=100,),);

else:
extr=CREA_CHAMP(TYPE_CHAM='ELGA_SIEF_R',
OPERATION='EXTR',
RESULTAT=stat,
NOM_CHAM='SIEF_ELGA',
INST=(Xstep-1),);

stat=STAT_NON_LINE(reuse=stat,
MODELE=model,
CHAM_MATER=material,
CARA_ELEM=elemcar,

EXCIT=(_F(CHARGE=ground1,),_F(CHARGE=ground2,),_F(CHARGE=pre,),_F(CHARGE=selfwght,
),_F(CHARGE=cv, FONC_MULT=Rampe_x,),),

COMPORTEMENT=_F(RELATION='ELAS',DEFORMATION='GROT_GDEP',TOUT='OUI',),
RECH_LINEAIRE=_F(),
ETAT_INIT=_F(EVOL_NOLI=stat,INST=(Xstep-1),),
INCREMENT=_F(LIST_INST=Instantx, INST_INIT=(Xstep-1), INST_FIN = Xstep,),

NEWTON=_F(PREDICTION='TANGENTE',MATRICE='TANGENTE',REAC_ITER=1,),
CONVERGENCE=_F(RESI_GLOB_RELA=1E-
4,ITER_GLOB_MAXI=500,ITER_GLOB_ELAS=100,),);
DETRUIRE(CONCEPT=_F(NOM=extr,),);

#output deformed belt


p=CREA_CHAMP(TYPE_CHAM='NOEU_DEPL_R',
OPERATION='EXTR',
RESULTAT=stat,
NOM_CHAM='DEPL',
INST=Xstep,);

meshstl = COPIER(CONCEPT=mesh)
p2 = PROJ_CHAMP(CHAM_GD=p,
METHODE='COLLOCATION',
MAILLAGE_1=mesh,
MAILLAGE_2=meshstl,)
264
meshstl=MODI_MAILLAGE(reuse =meshstl,
MAILLAGE=meshstl,
DEFORME=_F(OPTION='TRAN',
DEPL=p2,),);

IMPR_RESU(FORMAT='GMSH',
VERSION=1.2,
RESU=_F(MAILLAGE=meshstl,),);

#enrich obtained results


stat=CALC_CHAMP(reuse=stat,
RESULTAT=stat,
LIST_INST=stepr,
CONTRAINTE=('SIEF_ELNO',),
FORCE=('REAC_NODA',),);

#output results in ASCII format


IMPR_RESU(MODELE=model,
FORMAT='RESULTAT',
RESU=(_F(MAILLAGE=mesh,
RESULTAT=stat,
NOM_CHAM='DEPL',
LIST_INST=stepr,
NOM_CMP= ('DX','DY','DZ',),
#nodes on the belt centralline and middle cross section
NOEUD= ('N1', 'N132', 'N134', 'N136', 'N138',
'N140', 'N142', 'N144', 'N146', 'N148',
'N14', 'N321', 'N323', 'N325', 'N327',
'N329', 'N331', 'N333', 'N335', 'N337',
'N23', 'N10', 'N47', 'N11', 'N88', 'N12',
'N13', 'N129', 'N151', 'N15', 'N16', 'N192',
'N17', 'N214', 'N18',),),),);

#output results in med format for visualization


if Xstep == 1:
IMPR_RESU(FORMAT='MED',
UNITE=80,

RESU=_F(GROUP_MA='belt',RESULTAT=stat,NOM_CHAM=('DEPL',),NOM_CMP=('DZ',),LIST_IN
ST=stepr,),);
else:
IMPR_RESU(FORMAT='MED',
UNITE=80,

RESU=_F(GROUP_MA='belt',RESULTAT=stat,NOM_CHAM=('DEPL',),NOM_CMP=('DZ',),LIST_IN
ST=stepm,),);

#destroy variables in current iteration


if Xstep == 1:
DETRUIRE(CONCEPT=_F(NOM=p,),);
DETRUIRE(CONCEPT=_F(NOM=p2,),);
DETRUIRE(CONCEPT=_F(NOM=ground1,),);
DETRUIRE(CONCEPT=_F(NOM=ground2,),);
DETRUIRE(CONCEPT=_F(NOM=pre,),);
DETRUIRE(CONCEPT=_F(NOM=selfwght,),);
DETRUIRE(CONCEPT=_F(NOM=cv,),);
265
DETRUIRE(CONCEPT=_F(NOM=Rampe_t,),);
DETRUIRE(CONCEPT=_F(NOM=Rampe_f,),);
DETRUIRE(CONCEPT=_F(NOM=Rampe_w,),);
DETRUIRE(CONCEPT=_F(NOM=Instant1,),);
DETRUIRE(CONCEPT=_F(NOM=meshstl,),);
DETRUIRE(CONCEPT=_F(NOM=stepr,),);
DETRUIRE(CONCEPT=_F(NOM=stepm,),);
else:
DETRUIRE(CONCEPT=_F(NOM=p,),);
DETRUIRE(CONCEPT=_F(NOM=p2,),);
DETRUIRE(CONCEPT=_F(NOM=ground1,),);
DETRUIRE(CONCEPT=_F(NOM=ground2,),);
DETRUIRE(CONCEPT=_F(NOM=pre,),);
DETRUIRE(CONCEPT=_F(NOM=selfwght,),);
DETRUIRE(CONCEPT=_F(NOM=cv,),);
DETRUIRE(CONCEPT=_F(NOM=Rampe_x,),);
DETRUIRE(CONCEPT=_F(NOM=Instantx,),);
DETRUIRE(CONCEPT=_F(NOM=meshstl,),);
DETRUIRE(CONCEPT=_F(NOM=stepr,),);
DETRUIRE(CONCEPT=_F(NOM=step_x,),);
DETRUIRE(CONCEPT=_F(NOM=stepm,),);

FIN();

Appendix H3 – Two-way coupled DEM deflection model for coal


#DEM template for coupling
# define variables
variable ts equal 0.00005
variable dt equal 2000
variable r1 equal 0.0028
variable r2 equal 0.0045
variable frac1 equal 0.34
variable frac2 equal 0.66
variable res equal 0.2 # coefficient of restitution
variable dens equal 1400 # Particle density (bulk density * porosity)
variable PR equal 0.3 # Poissons ratio
variable YM equal 1e7 # Young modulus
variable ff equal 0.6 # Particle particle friction
variable wf equal 0.6 # Particle wall friction
variable rf equal 0.5 # Rolling friction
variable CED equal 1 # Cohesion Energy Density - [J/m3] 1e3,
variable AED equal 1 # Adhesion Energy Density - [J/m3]

#read the restart file (assign through the coupling control code)
read_restart

#initialization
newton off
communicate single vel yes
neighbor 0.02 bin
neigh_modify delay 0
timestep ${ts}

#set particel properties


fix Youngs all property/global youngsModulus peratomtype ${YM} ${YM} ${YM}
fix Poissons all property/global poissonsRatio peratomtype ${PR} ${PR} ${PR}
fix rest all property/global coefficientRestitution peratomtypepair 3 ${res} ${res} ${res} &
${res} ${res} ${res} &
${res} ${res} ${res}
266
fix fric all property/global coefficientFriction peratomtypepair 3 ${ff} ${ff} ${wf} &
${ff} ${ff} ${wf} &
${wf} ${wf} 0
fix rolling all property/global coefficientRollingFriction peratomtypepair 3 ${rf} ${rf} ${rf} &
${rf} ${rf} ${rf} &
${rf} ${rf} 0
fix coh all property/global cohesionEnergyDensity peratomtypepair 3 ${CED} ${CED} ${AED}
&
${CED} ${CED} ${AED} &
${AED} ${AED} 0

#import boundaries
fix cad1 all mesh/surface/stress file
/media/jiahe/SIMULATION_DATA/two_way_coupling/geometry_files/belt_1.stl type 3 scale 0.001
surface_vel 0. 1.0 0.
fix cadend1 all mesh/surface/stress file
/media/jiahe/SIMULATION_DATA/two_way_coupling/geometry_files/end1_1050.stl type 3 scale 0.001
surface_vel 0. 1. 0.
fix cadend2 all mesh/surface/stress file
/media/jiahe/SIMULATION_DATA/two_way_coupling/geometry_files/end2_1050.stl type 3 scale 0.001
surface_vel 0. 1. 0.

#specify contact model


fix wall all wall/gran model hertz tangential history cohesion sjkr2 rolling_friction epsd2 mesh
n_meshes 3 meshes cad1 cadend1 cadend2
fix gravi all gravity 9.81 vector 0.0 0.0 -1.0
pair_style gran model hertz tangential history cohesion sjkr2 rolling_friction epsd2
pair_coeff **

#calculation
fix integr all nve/sphere
compute rke all erotate/sphere

#export results (direct through the oupling control codes)


dump dmp all custom ${dt}
/media/jiahe/SIMULATION_DATA/two_way_coupling/coal/dem/post/atoms/dump*.liggghts id type
type x y z ix iy iz vx vy vz fx fy fz omegax omegay omegaz radius
dump stressout all mesh/vtk ${dt}
/media/jiahe/SIMULATION_DATA/two_way_coupling/coal/dem/post/stress/stress*.vtk output face
stresscomponents id cad1
dump normal_shear all mesh/vtk ${dt}
/media/jiahe/SIMULATION_DATA/two_way_coupling/coal/dem/post/surface/surfaceout*.vtk stress
cad1 cadend1 cadend2
restart ${dt}
/media/jiahe/SIMULATION_DATA/two_way_coupling/coal/dem/post/restart/tmp*.rst
run 80000

Appendix H4 – Two-way coupled DEM model for iron ore


#DEM template for coupling
# define variables
variable ts equal 0.00005
variable dt equal 2000
variable r1 equal 0.0028
variable r2 equal 0.0045
variable frac1 equal 0.32
variable frac2 equal 0.68
variable res equal 0.2 # coefficient of restitution
variable dens equal 3500 # Particle density (bulk density * porosity)
267
variable PR equal 0.3 # Poissons ratio
variable YM equal 1e7 # Young modulus
variable ff equal 0.6 # Particle particle friction
variable wf equal 0.7 # Particle wall friction
variable rf equal 0.7 # Rolling friction
variable CED equal 10 # Cohesion Energy Density - [J/m3] 1e3,
variable AED equal 10 # Adhesion Energy Density - [J/m3]

#read the restart file (assign through the coupling control code)
read_restart

#initialization
newton off
communicate single vel yes
neighbor 0.02 bin
neigh_modify delay 0
timestep ${ts}

#set particel properties


fix Youngs all property/global youngsModulus peratomtype ${YM} ${YM} ${YM}
fix Poissons all property/global poissonsRatio peratomtype ${PR} ${PR} ${PR}
fix rest all property/global coefficientRestitution peratomtypepair 3 ${res} ${res} ${res} &
${res} ${res} ${res} &
${res} ${res} ${res}
fix fric all property/global coefficientFriction peratomtypepair 3 ${ff} ${ff} ${wf} &
${ff} ${ff} ${wf} &
${wf} ${wf} 0
fix rolling all property/global coefficientRollingFriction peratomtypepair 3 ${rf} ${rf} ${rf} &
${rf} ${rf} ${rf} &
${rf} ${rf} 0
fix coh all property/global cohesionEnergyDensity peratomtypepair 3 ${CED} ${CED} ${AED}
&
${CED} ${CED} ${AED} &
${AED} ${AED} 0

#import boundaries
fix cad1 all mesh/surface/stress file
/media/jiahe/SIMULATION_DATA/two_way_coupling/geometry_files/belt_1.stl type 3 scale 0.001
surface_vel 0. 1.0 0.
fix cadend1 all mesh/surface/stress file
/media/jiahe/SIMULATION_DATA/two_way_coupling/geometry_files/end1_1050.stl type 3 scale 0.001
surface_vel 0. 1. 0.
fix cadend2 all mesh/surface/stress file
/media/jiahe/SIMULATION_DATA/two_way_coupling/gravel_1050mm/geometry_files/end2_1050.stl
type 3 scale 0.001 surface_vel 0. 1. 0.

#specify contact model


fix wall all wall/gran model hertz tangential history rolling_friction epsd2 mesh n_meshes 3
meshes cad1 cadend1 cadend2
fix gravi all gravity 9.81 vector 0.0 0.0 -1.0
pair_style gran model hertz tangential history rolling_friction epsd2
pair_coeff **

#calculation
fix integr all nve/sphere
compute rke all erotate/sphere

#export results (direct through the oupling control codes)

268
dump dmp all custom ${dt}
/media/jiahe/SIMULATION_DATA/two_way_coupling/ore/dem/post/atoms/dump*.liggghts id type type
x y z ix iy iz vx vy vz fx fy fz omegax omegay omegaz radius
dump stressout all mesh/vtk ${dt}
/media/jiahe/SIMULATION_DATA/two_way_coupling/ore/dem/post/stress/stress*.vtk output face
stresscomponents id cad1
dump normal_shear all mesh/vtk ${dt}
/media/jiahe/SIMULATION_DATA/two_way_coupling/ore/dem/post/surface/surfaceout*.vtk stress cad1
cadend1 cadend2
restart ${dt}
/media/jiahe/SIMULATION_DATA/two_way_coupling/ore/dem/post/restart/tmp*.rst
run 80000

Appendix H5 – FEM-DEM coupling control platform for varying belt speeds and
tensions
#import necessary libraries for pythton
from math import *
from subprocess import call
from subprocess import Popen
from numpy import *
import sys
import string
import os

#set up working directory and program source bins


template_dir = "/media/jiahe/SIMULATION_DATA/two_way_coupling/templates/"
LIGGGHTS_BIN = "/media/jiahe/SIMULATION_DATA/liggghts/src/lmp_auto"
GMESH_BIN = "/media/jiahe/SIMULATION_DATA/gmsh-3.0.6-Linux64/bin/gmsh"
ASTER_BIN = "/media/jiahe/SIMULATION_DATA/aster_12.6.1/bin/as_run"

#dem time step and coupling exchange time


ts = 0.00005
Xchange = 5000

#start liggghts from the terminal


def start_liggghts(Xstep):
cmd = "mpirun -np 4 " + LIGGGHTS_BIN +" < " + WORKING_DIR + "dem/scripts/in.step_" +
str(Xstep)
call(cmd, shell=True)
return

#start code_aster from terminal


#write the export file for aster
def start_aster(Xstep):
exportfile = os.path.join( WORKING_DIR + 'fea/scripts/export/step_' + str(Xstep) + '.export')
e = open(exportfile,'w')
e = open(exportfile,'w')
e.write('P actions make_etude\n')
e.write('P aster_root /media/jiahe/SIMULATION_DATA/aster_12.6.1\n')
e.write('P consbtc oui\n')
e.write('P corefilesize unlimited\n')
e.write('P cpresok RESNOOK\n')
e.write('P debug nodebug\n')
e.write('P display jiahe-Precision-T3600:0\n')
e.write('P follow_output yes\n')
e.write('P lang en\n')
e.write('P mclient jiahe-Precision-T3600\n')
e.write('P memjob 524288\n')
269
e.write('P mode interactif\n')
e.write('p mpi_nbcpu 1\n')
e.write('P mpi_nbnoeud 1\n')
e.write('P nbmaxnook 5\n')
e.write('P noeud jiahe-Precision-T3600\n')
e.write('P origine ASTK 1.13.8\n')
e.write('P platform LINUX64\n')
e.write('P protocol_exec asrun.plugins.server.SSHServer\n')
e.write('P protocol_copyto asrun.plugins.server.SCPServer\n')
e.write('P protocol_copyfrom asrun.plugins.server.SCPServer\n')
e.write('P proxy_dir /tmp\n')
e.write('P rep_trav /tmp/jiahe-Precision-T3600-interactif.17350\n')
e.write('P soumbtc oui\n')
e.write('P tpsjob 15\n')
e.write('P uclient jiahe\n')
e.write('P version 12.6\n')
e.write('A args \n')
e.write('A memjeveux 64.0\n')
e.write('A tpmax 8000000 \n')
e.write('F mmed ' + WORKING_DIR + '/belt.med D 20 \n')
e.write('F comm ' + WORKING_DIR + 'fea/scripts/step_' + str(Xstep) + '.comm D 1\n')
e.write('F rmed ' + WORKING_DIR + 'fea/results/rmed/defmesh_' +str(Xstep)+ '.rmed R 80\n')
e.write('F mess ' + WORKING_DIR + 'fea/results/mess/mess_' + str(Xstep) + '.mess R 6\n')
e.write('F resu ' + WORKING_DIR + 'fea/results/resu/resu_' + str(Xstep) + '.resu R 8\n')
e.write('R base ' + WORKING_DIR + 'fea/results/base/base_' + str(Xstep) + ' RC 0\n')
e.write('F pos ' + WORKING_DIR + 'fea/gmsh/g_' +str(Xstep)+ '.msh R 37\n')
if Xstep > 1:
e.write('R base ' + WORKING_DIR + 'fea/results/base/base_' + str(Xstep-1) + ' DC 0\n')
e.close()
#run code_aster
tmdCmd = ASTER_BIN + " " + os.path.join(WORKING_DIR,'fea/scripts/export/step_') + str(Xstep) +
'.export'
aster_run = Popen(tmdCmd, shell='TRUE')
aster_run.wait()
return

#update FEM script for each coupling iteration


def write_aster_input(Xstep):
aster_input_template = open( template_dir + str(i) + ".comm")
aster_input = aster_input_template.readlines()
aster_input[11]= "Xstep = "+str(Xstep)+"\n"
aster_input[98]= " Xstep = "+str(Xstep)+"\n"
aster_input[130]= "Xstep = "+str(Xstep)+"\n"
aster_input[153]= "Xstep = "+str(Xstep)+"\n"
aster_input[259]= "Xstep = "+str(Xstep)+"\n"
fileName = WORKING_DIR +
'dem/post/stress/stress{}_{}.vtk'.format(str(Xstep),str(30000+Xstep*Xchange))
aster_input[20] = ' vtk_file =open(\"{}\") \n'.format(fileName)
aster_input_script = os.path.join(WORKING_DIR + "/fea/scripts/step_" + str(Xstep) + ".comm")
a = open(aster_input_script,'w')
for lines in aster_input:
a.write(lines)
a.close()
return

#update DEM script for each coupling iteration


def write_liggghts_input(Xstep):
liggghts_input_template = open( template_dir + "in." + str(i))
liggghts_input = liggghts_input_template.readlines()
if Xstep==1:
270
liggghts_input[19] = "read_restart "+template_dir+ str(i)+".restart \n"
else:
liggghts_input[19] = "read_restart "+WORKING_DIR+"dem/restart/tmp_" + str(Xstep-1) +
".rst.{}".format(str(300000+(Xstep-1)*Xchange)) + " \n"
liggghts_input[2] = "variable ts equal " + str(ts) +"\n"
liggghts_input[45] = "fix cad%d"%(int(Xstep)) + " all mesh/surface/stress file " + WORKING_DIR +
"dem/stl/belt_" + str(Xstep-1) + ".stl type 3 scale 0.001 surface_vel 0. " + str(velocity) + " 0. \n"
liggghts_input[46] = "fix cadend1_%d"%(int(Xstep)) + " all mesh/surface/stress file " +
working_dir_par + "/geometry_files/end1.stl type 3 scale 0.001 surface_vel 0. " + str(velocity) + " 0. \n"
liggghts_input[47] = "fix cadend2_%d"%(int(Xstep)) + " all mesh/surface/stress file " +
working_dir_par + "/geometry_files/end2.stl type 3 scale 0.001 surface_vel 0. " + str(velocity) + " 0. \n"
liggghts_input[50] = "fix wall all wall/gran model hertz tangential history cohesion sjkr2
rolling_friction epsd2 mesh n_meshes 3 meshes " + "cad%d"%(int(Xstep)) + "
cadend1_%d"%(int(Xstep)) + " cadend2_%d"%(int(Xstep)) + " \n"
liggghts_input[60] = "dump dmp all custom 200 " + WORKING_DIR +
"dem/post/atoms/dump"+str(Xstep)+"_*.liggghts id mass density x y z ix iy iz vx vy vz fx fy fz omegax
omegay omegaz radius \n"
liggghts_input[61] = "dump stressout all mesh/vtk 200 " + WORKING_DIR + "dem/post/stress/stress"
+ str(Xstep)+ "_*.vtk output face stresscomponents id " + "cad%d"%(int(Xstep))+ " \n"
liggghts_input[62] = "dump nor_shr all mesh/vtk 200 " + WORKING_DIR +
"dem/post/surface/surfaceout" + str(Xstep)+ "_*.vtk stress " + "cad%d"%(int(Xstep)) + "
cadend1_%d"%(int(Xstep)) + " cadend2_%d"%(int(Xstep)) + " \n"
liggghts_input[63] = "restart " + str(Xchange) + " " + WORKING_DIR + "dem/restart/tmp_" +
str(Xstep) + ".rst \n"
liggghts_input[64] = "run " + str(Xchange) + "\n"
liggghts_input_script = os.path.join(WORKING_DIR + "dem/scripts/in.step_" + str(Xstep))
b = open(liggghts_input_script, "w")
for lines in liggghts_input:
b.write(lines)
b.close()
return

#convert the mesh files


def stl_conversion(Xstep):
call( GMESH_BIN + " "+ WORKING_DIR + "fea/gmsh/g_" + str(Xstep) + ".msh -o
"+WORKING_DIR+"dem/stl/belt_" + str(Xstep) + ".stl -format stl -2", shell=True)
return

#coupling process flow control


if __name__ == '__main__':
print '-----------------------------Welcome to the LIGGGHTS-Code Aster two way coupling-----------------
-----------------------'
velocity=0
coal=['coal_6mm', 'coal_12mm']
ore=['iron_ore_6mm', 'iron_ore_12mm']
tension = 300 #assign to each of the 25 nodes on the belt edge (7500N belt tension in total)
print '-----------------------------Welcome to the LIGGGHTS-Code Aster two way coupling-----------------
-----------------------'
for i in coal:
for j in xrange(1,4):
tension=200*j
for k in in xrange(1,4):
velocity=0.5*k
print "start belt tension-"+str(j)
WORKING_DIR =
"/media/jiahe/SIMULATION_DATA/two_way_coupling/"+str(i)+"/"+str(tension)+"/"+str(velocity)+"/"
working_list = WORKING_DIR.split('/')
working_list.pop()
working_list.pop()
working_dir_par = '/'
271
for k in working_list:
working_dir_par = os.path.join(str(working_dir_par), str(k))
for Xstep in xrange(1,21):
print 'write liggghts input file - step'+ str(Xstep)
write_liggghts_input(Xstep)
print 'done with writing liggghts input for step'+ str(Xstep)
print 'start with liggghts step'+ str(Xstep)
start_liggghts(Xstep)
print 'done with liggghts step'+ str(Xstep)
print 'write aster input file-step'+ str(Xstep)
write_aster_input(Xstep)
print 'done with writing aster inout for step'+ str(Xstep)
print 'start with aster step'+ str(Xstep)
start_aster(Xstep)
print 'done with aster step'+ str(Xstep)
stl_conversion(Xstep)
print 'done with mesh conversion for step'+ str(Xstep)

print "----------------------------------------Completed with {} steps for coal-------------------------------------


--------".format(str(Xstep))
for i in ore:
for j in xrange(1,4):
tension=200*j
for k in in xrange(1,4):
velocity=0.5*k
print "start belt tension-"+str(j)
WORKING_DIR =
"/media/jiahe/SIMULATION_DATA/two_way_coupling/"+str(i)+"/"+str(tension)+"/"+str(velocity)+"/"
working_list = WORKING_DIR.split('/')
working_list.pop()
working_list.pop()
working_dir_par = '/'
for k in working_list:
working_dir_par = os.path.join(str(working_dir_par), str(k))
for Xstep in xrange(1,21):
print 'write liggghts input file - step'+ str(Xstep)
write_liggghts_input(Xstep)
print 'done with writing liggghts input for step'+ str(Xstep)
print 'start with liggghts step'+ str(Xstep)
start_liggghts(Xstep)
print 'done with liggghts step'+ str(Xstep)
print 'write aster input file-step'+ str(Xstep)
write_aster_input(Xstep)
print 'done with writing aster inout for step'+ str(Xstep)
print 'start with aster step'+ str(Xstep)
start_aster(Xstep)
print 'done with aster step'+ str(Xstep)
stl_conversion(Xstep)
print 'done with mesh conversion for step'+ str(Xstep)
print "----------------------------------------Completed with {} steps for iron ore--------------------------------
-------------".format(str(Xstep))

272
Appendix I – Extraction and conversion of belt deflection experimental
data
#import libraries
import os
from numpy import *
import re
from math import *
import sys
import string
import datetime
import time
import xlwt
import collections

# data extraction
destination_folder = 'direct to the folders where the photomodeler output txt files located'
for root, dirs, files in os.walk(destination_folder):
for file in files:
#photomodeler output files readin and extract data
if file.endswith(".txt") and file != 'coordinates.txt':
#print file
raw_file = os.path.join(root, file)
data=open(raw_file,'r+')
f=data.readlines()
toler = 10
toler2 = 20
#add the points that not automatically marked
for j in range (len(f)):
if f[j] != '\n':
if float (f[j].split()[0]) == 32:
x_middle = float(f[j].split()[1])
y_middle = float(f[j].split()[2])
z_middle = float(f[j].split()[3])
for j in range(len(f)):
if f[j] != '\n': #ignore blank lines
if float(f[j].split()[0]) > 999: #manually marked points
#points along the centreline
if ( x_middle -75 - toler) < float(f[j].split()[1]) < ( x_middle -75 + toler):
#points on the central belt
if ( z_middle - toler2) < float(f[j].split()[3]) < ( z_middle + toler2):
c='201'+f[j][4:]
#prevent from writing repeatedly
if c not in f:
data.writelines( c )
elif ( x_middle -150 - toler) < float(f[j].split()[1]) < ( x_middle -150 + toler):
if ( z_middle - toler2) < float(f[j].split()[3]) < ( z_middle + toler2):
c='202' + f[j][4:]
#prevent from writing repeatedly
if c not in f:
data.writelines( c )
#points along the cross section
elif ( x_middle - toler) < float(f[j].split()[1]) < ( x_middle + toler ):
if ( z_middle - toler) < float(f[j].split()[3]) < ( z_middle + toler):
c='34' +f[j][4:]
#prevent from writing repeatedly
if c not in f:
data.writelines( c )
elif ( z_middle -30 -toler) < float(f[j].split()[3]) < ( z_middle - 30 + toler ):

273
c='36' + f[j][4:]
#prevent from writing repeatedly
if c not in f:
data.writelines( c )
elif ( z_middle -70 -toler) < float(f[j].split()[3]) < ( z_middle - 70 + toler ):
c='92' +f[j][4:]
#prevent from writing repeatedly
if c not in f:
data.writelines( c )
elif ( z_middle -115 -toler) < float(f[j].split()[3]) < ( z_middle - 115 + toler ):
c='200' +f[j][4:]
#prevent from writing repeatedly
if c not in f:
data.writelines( c )
data.close()
data=open(raw_file, 'r')
f=data.readlines()
#direct to correct folders
path_list = root.split('\\')
path_list.pop() #remove file name
path_list.pop() #remove "processing files"
velocity = path_list [-1]
path_list.pop() #remove velocity directory
path_list [8] = 'extract files'
path_string = "\\".join (path_list) + "\\" + velocity
if not os.path.exists(path_string):
os.makedirs(path_string)
#files readin
output=open(path_string + "\\" + file, 'w')
#list point IDs on the belt centralline in the moving direction
list_central=[78, 77, 79, 80, 102, 101, 72, 71, 31, 32, 201, 202, 19, 20, 13, 14]
list_cross=[32, 34, 36, 92, 200]
#write files
#for belt centralline
output.writelines('coordiantes of the points on belt central line \n')
for i in list_central:
for j in range (len(f)):
if f[j] != '\n':
if i == float(f[j].split()[0]):
c=f[j][:-12]
z_coor=-float(f[j].split()[3])
output.write(str(z_coor) +'\n')
output.writelines('\n')
#for belt cross section
output.writelines('coordiantes of the points along the cross section \n')
for i in list_cross:
for j in range (len(f)):
if f[j] != '\n':
if i == float(f[j].split()[0]):
c=f[j][:-12]
z_coor=-float(f[j].split()[3])
#output.write(str(location) +'\n')
output.write(str(z_coor) +'\n')
#output.writelines(str(location)+' '+ str(displacement)+'\n')
#transfer to the default coordinate system
output.write('\ny coordinate \n')
n =1
for i in list_cross:
for j in range (len(f)):
if f[j] != '\n':
274
if i == float(f[j].split()[0]):
c=f[j][:-12]
location = float(f[j].split()[2])
#output.write(str(location) +'\n')
if n == 1:
location_max = location
output.write(str(float(location_max) - float (location)) +'\n')
n += 1
data.close()
output.close()

#data conversion
#work directory
path_ton = 'direct to file folders'# for example: 'C:\\Users\\c3190641\\OneDrive - The University Of
Newcastle\\Deflection experiments\\12mm belt\\iron ore\\full capacity\\extract files\\2-1T'
material = path_ton.split('\\')[-4]
capacity = path_ton.split('\\')[-3]
tension = path_ton.split('\\')[-1]

#adjustment of the edge for coal


if material == 'coal':
if capacity == 'full capacity' :
if tension == '1-0.5T' :
offset = -2.5
if tension == '2-1T' :
offset = -2
if tension == '3-1.5T' :
offset = -2
#adjustment of the edge for iron ore

if material == 'gravel':
if capacity == 'full capacity' :
if tension == '1-0.5T' :
offset = -3
if tension == '2-1T' :
offset = -2.5
if tension == '3-1.5T' :
offset = -2

#define excel sheet names according to velocities


sheet_list=['0.25_ms', '0.5_ms', '0.75_ms', '1_ms', '1.25_ms', '1.5_ms']

#x coordinates depending on how many points within one idler spacing


coord_x = [ 75, 112.5, 150, 187.5, 225, 262.5, 300, 337.5, 375, 412.5, 450, 487.5, 525, 562.5, 600, 637.5,
675, 712.5, 750, 787.5, 825, 862.5, 900, 937.5, 975, 1012.5, 1050, 1087.5, 1125]
wb=xlwt.Workbook()
list_num=0
for dir_vel in os.listdir(path_ton):
wb_x=wb.add_sheet(sheet_list[list_num])
path_vel = os.path.join(path_ton,dir_vel)
case_num = 1
row = 0
row_trans = 0

#read each file created from data extraction


for dir_case in os.listdir(path_vel):
path_case = os.path.join(path_vel,dir_case)
f=open(path_case)
data=f.readlines()
f.close()
275
#classify the data according to location
cent_start = data.index('coordiantes of the points on belt central line \n') + 1
cent_end = data.index('coordiantes of the points along the cross section \n') -1
trans_start = data.index('coordiantes of the points along the cross section \n') +1
trans_end = data.index('y coordinate \n') -1
coord_start = data.index('y coordinate \n') +1
value_cent = []
for i in range(cent_start, cent_end):
value_cent.append(data[i].strip('\n'))

#locate the index of item appears twice


index = []
for item, count in collections.Counter(value_cent).items():
if count > 1:
v =item
for indx, value in enumerate(value_cent):
if v == value:
index.append(indx)

value_trans = []
for i in range(trans_start, trans_end):
value_trans.append(data[i].strip('\n'))

coord_trans = []
for i in range(coord_start, len(data)):
coord_trans.append(data[i].strip('\n'))

#write the data into excel sheets


if index[1] - index[0] ==13:
m=1
n=0
for i in range(index[0], index[1]+1):
wb_x.write(row, 0,coord_x[m])
if n == 0:
adjustment = 1.5*offset - float(value_cent[i])
wb_x.write(row, 1,float(value_cent[i]) + adjustment)
m += 2
n += 1
row += 1
for i in range (20,25):
value = i-20
if value < len (value_trans):
wb_x.write(row_trans, 26, float(coord_trans[value]))
wb_x.write(row_trans, 27, float(value_trans[value]) + adjustment)
row_trans += 1
else:
pass

if index[1] - index[0] ==14:


m=0
n=0
for i in range(index[0], index[1]+1):
wb_x.write(row, 0,coord_x[m])
if n == 0:
adjustment = offset - float(value_cent[i])
wb_x.write(row, case_num,float(value_cent[i]) + adjustment)
m += 2
n += 1
row += 1
for i in range (20,25):
276
value = i-20
if value < len (value_trans):
wb_x.write(row_trans, 26, float(coord_trans[value]))
wb_x.write(row_trans, 27, float(value_trans[value]) + adjustment)
row_trans += 1
else:
pass
list_num +=1

#save the craeted excel file


path_list = path_ton.split('\\')
path_list.pop()
path_list.pop()
path_list.append( 'process resluts' )
path_resu = "\\".join (path_list)
if not os.path.exists(path_resu):
os.makedirs(path_resu)
wb.save(path_resu+'\\' + tension + '_' + capacity +'.xls')

277
Appendix J – The measured belt longitudinal and transverse belt
deflection

Figure 0-1-Figure 0-4 show the belt deflection results for each belt speed, each of which
contains three graphs marked as (a), (b) and (c) for the belt tensions of 5kN, 10kN and
15kN respectively.

Figure 0-1 Dynamic deflection of the 6mm thickness belt with the coal for the belt speeds of 0.25m/s,
0.5m/s, 0.75m/s, 1m/s, 1.25m/s 1.5m/s and tensions of (a) 5kN; (b) 10kN; (c) 15kN

278
Figure 0-2 Dynamic deflection of the 12mm thickness belt with the coal for the belt speeds of 0.25m/s,
0.5m/s, 0.75m/s, 1m/s, 1.25m/s 1.5m/s and tensions of (a) 5kN; (b) 10kN; (c) 15kN

279
Figure 0-3 Dynamic deflection of the 6mm thickness belt with the iron ore for the belt speeds of 0.25m/s,
0.5m/s, 0.75m/s, 1m/s, 1.25m/s 1.5m/s and tensions of (a) 5kN; (b) 10kN; (c) 15kN

Figure 0-4 Dynamic deflection of the 12mm thickness belt with the iron ore for the belt speeds of
0.25m/s, 0.5m/s, 0.75m/s, 1m/s, 1.25m/s 1.5m/s and tensions of (a) 5kN; (b) 10kN; (c) 15kN

280
Appendix K – Coupled FEM-DEM model for calculating bulk flexure
resistance
#import necessary libraries for pythton
from math import *
from subprocess import call
from subprocess import Popen
from numpy import *
import sys
import string
import os

#set up working directory and program source bins


template_dir =
"/media/jiahe/SIMULATION_DATA/two_way_coupling/Bulk_flexure_resistance/templates/"
LIGGGHTS_BIN = "/media/jiahe/SIMULATION_DATA/liggghts/src/lmp_auto"
GMESH_BIN = "/media/jiahe/SIMULATION_DATA/gmsh-3.0.6-Linux64/bin/gmsh"
ASTER_BIN = "/media/jiahe/SIMULATION_DATA/aster_12.6.1/bin/as_run"

#dem time step and coupling exchange time


ts = 0.00005
Xchange = 5000

#start liggghts from the terminal


def start_liggghts(Xstep):
cmd = "mpirun -np 4 " + LIGGGHTS_BIN +" < " + WORKING_DIR + "dem/scripts/in.step_" +
str(Xstep)
call(cmd, shell=True)
return

#start code_aster from terminal


#write the export file for aster
def start_aster(Xstep):
exportfile = os.path.join( WORKING_DIR + 'fea/scripts/export/step_' + str(Xstep) + '.export')
e = open(exportfile,'w')
e = open(exportfile,'w')
e.write('P actions make_etude\n')
e.write('P aster_root /media/jiahe/SIMULATION_DATA/aster_12.6.1\n')
e.write('P consbtc oui\n')
e.write('P corefilesize unlimited\n')
e.write('P cpresok RESNOOK\n')
e.write('P debug nodebug\n')
e.write('P display jiahe-Precision-T3600:0\n')
e.write('P follow_output yes\n')
e.write('P lang en\n')
e.write('P mclient jiahe-Precision-T3600\n')
e.write('P memjob 524288\n')
e.write('P mode interactif\n')
e.write('p mpi_nbcpu 1\n')
e.write('P mpi_nbnoeud 1\n')
e.write('P nbmaxnook 5\n')
e.write('P noeud jiahe-Precision-T3600\n')
e.write('P origine ASTK 1.13.8\n')
e.write('P platform LINUX64\n')
e.write('P protocol_exec asrun.plugins.server.SSHServer\n')
e.write('P protocol_copyto asrun.plugins.server.SCPServer\n')
e.write('P protocol_copyfrom asrun.plugins.server.SCPServer\n')
e.write('P proxy_dir /tmp\n')
e.write('P rep_trav /tmp/jiahe-Precision-T3600-interactif.17350\n')

281
e.write('P soumbtc oui\n')
e.write('P tpsjob 15\n')
e.write('P uclient jiahe\n')
e.write('P version 12.6\n')
e.write('A args \n')
e.write('A memjeveux 64.0\n')
e.write('A tpmax 8000000 \n')
e.write('F mmed ' + WORKING_DIR + '/belt.med D 20 \n')
e.write('F comm ' + WORKING_DIR + 'fea/scripts/step_' + str(Xstep) + '.comm D 1\n')
e.write('F rmed ' + WORKING_DIR + 'fea/results/rmed/defmesh_' +str(Xstep)+ '.rmed R 80\n')
e.write('F mess ' + WORKING_DIR + 'fea/results/mess/mess_' + str(Xstep) + '.mess R 6\n')
e.write('F resu ' + WORKING_DIR + 'fea/results/resu/resu_' + str(Xstep) + '.resu R 8\n')
e.write('R base ' + WORKING_DIR + 'fea/results/base/base_' + str(Xstep) + ' RC 0\n')
e.write('F pos ' + WORKING_DIR + 'fea/gmsh/g_' +str(Xstep)+ '.msh R 37\n')
if Xstep > 1:
e.write('R base ' + WORKING_DIR + 'fea/results/base/base_' + str(Xstep-1) + ' DC 0\n')
e.close()
#run code_aster
tmdCmd = ASTER_BIN + " " + os.path.join(WORKING_DIR,'fea/scripts/export/step_') + str(Xstep) +
'.export'
aster_run = Popen(tmdCmd, shell='TRUE')
aster_run.wait()
return

#update FEM script for each coupling iteration


def write_aster_input(Xstep):
aster_input_template = open( template_dir + str(i) + ".comm")
aster_input = aster_input_template.readlines()
aster_input[11]= "Xstep = "+str(Xstep)+"\n"
aster_input[98]= " Xstep = "+str(Xstep)+"\n"
aster_input[130]= "Xstep = "+str(Xstep)+"\n"
aster_input[153]= "Xstep = "+str(Xstep)+"\n"
aster_input[259]= "Xstep = "+str(Xstep)+"\n"
fileName = WORKING_DIR +
'dem/post/stress/stress{}_{}.vtk'.format(str(Xstep),str(30000+Xstep*Xchange))
aster_input[20] = ' vtk_file =open(\"{}\") \n'.format(fileName)
aster_input_script = os.path.join(WORKING_DIR + "/fea/scripts/step_" + str(Xstep) + ".comm")
a = open(aster_input_script,'w')
for lines in aster_input:
a.write(lines)
a.close()
return

#update DEM script for each coupling iteration


def write_liggghts_input(Xstep):
liggghts_input_template = open( template_dir + "in." + str(i))
liggghts_input = liggghts_input_template.readlines()
if Xstep==1:
liggghts_input[19] = "read_restart "+template_dir+ str(i)+".restart \n"
else:
liggghts_input[19] = "read_restart "+WORKING_DIR+"dem/restart/tmp_" + str(Xstep-1) +
".rst.{}".format(str(300000+(Xstep-1)*Xchange)) + " \n"
liggghts_input[2] = "variable ts equal " + str(ts) +"\n"
liggghts_input[45] = "fix cad%d"%(int(Xstep)) + " all mesh/surface/stress file " + WORKING_DIR +
"dem/stl/belt_" + str(Xstep-1) + ".stl type 3 scale 0.001 surface_vel 0. " + str(velocity) + " 0. \n"
liggghts_input[46] = "fix cadend1_%d"%(int(Xstep)) + " all mesh/surface/stress file " +
working_dir_par + "/geometry_files/end1.stl type 3 scale 0.001 surface_vel 0. " + str(velocity) + " 0. \n"
liggghts_input[47] = "fix cadend2_%d"%(int(Xstep)) + " all mesh/surface/stress file " +
working_dir_par + "/geometry_files/end2.stl type 3 scale 0.001 surface_vel 0. " + str(velocity) + " 0. \n"

282
liggghts_input[50] = "fix wall all wall/gran model hertz tangential history cohesion sjkr2
rolling_friction epsd2 mesh n_meshes 3 meshes " + "cad%d"%(int(Xstep)) + "
cadend1_%d"%(int(Xstep)) + " cadend2_%d"%(int(Xstep)) + " \n"
liggghts_input[60] = "dump dmp all custom 200 " + WORKING_DIR +
"dem/post/atoms/dump"+str(Xstep)+"_*.liggghts id mass density x y z ix iy iz vx vy vz fx fy fz omegax
omegay omegaz radius \n"
liggghts_input[61] = "dump stressout all mesh/vtk 200 " + WORKING_DIR + "dem/post/stress/stress"
+ str(Xstep)+ "_*.vtk output face stresscomponents id " + "cad%d"%(int(Xstep))+ " \n"
liggghts_input[62] = "dump nor_shr all mesh/vtk 200 " + WORKING_DIR +
"dem/post/surface/surfaceout" + str(Xstep)+ "_*.vtk stress " + "cad%d"%(int(Xstep)) + "
cadend1_%d"%(int(Xstep)) + " cadend2_%d"%(int(Xstep)) + " \n"
liggghts_input[63] = "restart " + str(Xchange) + " " + WORKING_DIR + "dem/restart/tmp_" +
str(Xstep) + ".rst \n"
liggghts_input[64] = "run " + str(Xchange) + "\n"
liggghts_input_script = os.path.join(WORKING_DIR + "dem/scripts/in.step_" + str(Xstep))
b = open(liggghts_input_script, "w")
for lines in liggghts_input:
b.write(lines)
b.close()
return

#convert the mesh files


def stl_conversion(Xstep):
call( GMESH_BIN + " "+ WORKING_DIR + "fea/gmsh/g_" + str(Xstep) + ".msh -o
"+WORKING_DIR+"dem/stl/belt_" + str(Xstep) + ".stl -format stl -2", shell=True)
return

#coupling process flow control


if __name__ == '__main__':
print '-----------------------------Welcome to the LIGGGHTS-Code Aster two way coupling-----------------
-----------------------'
velocity=0
spacing=['coal_1250mm', 'gravel_1050mm']
tension = 300 #assign to each of the 25 nodes on the belt edge (7500N belt tension in total)
print '-----------------------------Welcome to the LIGGGHTS-Code Aster two way coupling-----------------
-----------------------'
for i in spacing:
print "----------------------- start with {} simulation----------------------".format(str(i))
for j in xrange(1,8):
velocity = 0.5*j
print "start belt velocity-"+str(j)
WORKING_DIR =
"/media/jiahe/SIMULATION_DATA/two_way_coupling/Bulk_flexure_resistance/cases/"+str(i)+"/"+str(
velocity)+"/"
working_list = WORKING_DIR.split('/')
working_list.pop()
working_list.pop()
working_dir_par = '/'
for k in working_list:
working_dir_par = os.path.join(str(working_dir_par), str(k))
for Xstep in xrange(1,21):
print 'write liggghts input file - step'+ str(Xstep)
write_liggghts_input(Xstep)
print 'done with writing liggghts input for step'+ str(Xstep)
print 'start with liggghts step'+ str(Xstep)
start_liggghts(Xstep)
print 'done with liggghts step'+ str(Xstep)
print 'write aster input file-step'+ str(Xstep)
write_aster_input(Xstep)
print 'done with writing aster inout for step'+ str(Xstep)
283
print 'start with aster step'+ str(Xstep)
start_aster(Xstep)
print 'done with aster step'+ str(Xstep)
stl_conversion(Xstep)
print 'done with mesh conversion for step'+ str(Xstep)

print "----------------------------------------Completed coupling with {} steps -----------------------------------


----------".format(str(Xstep))
print '-----------------------------Welcome to flexure resistance calculation--------------------------------------
--'
#staet calculate the flexure resistance for each case based on FEM and DEM coupling results
for m in spacing:
for j in xrange(1,8):
velocity = 0.5*j
WORKING_DIR =
"/media/jiahe/SIMULATION_DATA/two_way_coupling/Bulk_flexure_resistance/cases/"+str(m)+"/"+str
(velocity)+"/"

#read in files recording initial element positions


vtk_file =open(WORKING_DIR + "dem/post/surface/surfaceout1_30000.vtk")
vtk_list =vtk_file.readlines()
vtk_file.close()
points_index = index_substring(vtk_list, "POINTS")+1
cells_index = index_substring(vtk_list, "CELLS")+1
coor_int = []

#calculate intial element positions


for i in range(points_index, cells_index-1):
for t in vtk_list[i].split():
try:
coor_int.append(float(t)*1000)
except ValueError:
pass
centroids_int = zeros( ((len(coor_int)/9),3) )
for i in range(0,len(coor_int),9):
centroids_int[(i/9), 0] = (coor_int[i]+coor_int[i+3]+coor_int[i+6])/3 #coordinates in x-axis
centroids_int[(i/9), 1] = (coor_int[i+1]+coor_int[i+4]+coor_int[i+7])/3 #coordinates in y-axis
centroids_int[(i/9), 2] = (coor_int[i+2]+coor_int[i+5]+coor_int[i+8])/3 #coordinates in z-axis

#read in files recording deformed element positions


vtk_file =open(WORKING_DIR + "dem/post/surface/surfaceout3_44000.vtk")
vtk_list =vtk_file.readlines()
vtk_file.close()
points_start_index = index_substring(vtk_list, "POINTS")+1
cells_start_index = index_substring(vtk_list, "CELLS")+1
stress_start_index = index_substring(vtk_list, "normal_stress_average")+2
shear_start_index = index_substring(vtk_list, "shear_stress_average")+2
points_co = []
pressure_all = []

#calculate deformed element positions


for i in range(points_start_index, cells_start_index-1):
for t in vtk_list[i].split():
try:
points_co.append(float(t)*1000)
except ValueError:
pass
centroids = zeros( ((len(points_co)/9),3) )
for i in range(0,len(points_co),9):
centroids[(i/9), 0] = (points_co[i]+points_co[i+3]+points_co[i+6])/3
284
centroids[(i/9), 1] = (points_co[i+1]+points_co[i+4]+points_co[i+7])/3
centroids[(i/9), 2] = (points_co[i+2]+points_co[i+5]+points_co[i+8])/3

#calculate element displacements


displacement = zeros( ((len(points_co)/9),3) )
for i in range(0,len(points_co),9):
displacement[(i/9), 0] = (coor_int[i]+coor_int[i+3]+coor_int[i+6])/3-
(points_co[i]+points_co[i+3]+points_co[i+6])/3 #displacement in x-axis
displacement[(i/9), 1] = (coor_int[i+1]+coor_int[i+4]+coor_int[i+7])/3-
(points_co[i+1]+points_co[i+4]+points_co[i+7])/3 #displacement in y-axis
displacement[(i/9), 2] = (coor_int[i+2]+coor_int[i+5]+coor_int[i+8])/3-
(points_co[i+2]+points_co[i+5]+points_co[i+8])/3 #displacement in z-axis

#yield displacement and normal pressure matrices


for i in range(stress_start_index, shear_start_index-2):
t = vtk_list[i]
pressure_all.append(float(t)*0.000001)
length=int(len(pressure_all))*9
pressure_normal = zeros(((length/9),1))
for i in range(0,len(pressure_all)):
pressure_normal[i, 0] = (pressure_all[i])
coordinates = append(centroids, displacement, axis=1)
vtkout = append(coordinates, pressure_normal, axis=1)

#calculate the work done in active and passive stress states


element_area=0.31
work_active=0
work_passive=0
for i in range(len(vtkout)):
if 0 < vtkout[i][1] < 525:
work_active=vtkout[i][6]*vtkout[i][5]*float(element_area)+work_active
for i in range(len(vtkout)):
if 525 < vtkout[i][1] < 1050:
if float(vtkout[i][6]) < float(40000):
work_passive=vtkout[i][6]*vtkout[i][5]*float(element_area)+work_passive
flexure_loss=work_passive-work_active
flexure_resistance=float(flexure_loss)/float(1.05)

#create export results in files named after steps


working_list = WORKING_DIR.split('/')
working_list.pop()
working_list.pop()
working_dir_par = '/'
for k in working_list:
working_dir_par = os.path.join(str(working_dir_par), str(k))
print str(working_dir_par)
exportfile = os.path.join( working_dir_par + '/flexure_resistance/flexure_1050_' +
str(velocity) +'.vtk')
e = open(exportfile,'w')
e = open(exportfile,'w')
e.write('work done by active stress state --- '+str(work_active)+ ' \n')
e.write('work done by passive stress state --- '+str(work_passive)+ ' \n')
e.write('work done by flexure resistance ---'+str(flexure_loss)+ ' \n')
e.write('flexure resistance --- '+str(flexure_resistance)+ ' \n')
e.close()

285
286
287

You might also like