Sei sulla pagina 1di 49

DEM simulation of

Flow of Granular Particles


on an Inclined plane
in LIGGGHTS
EN 649
Project Guide: Manaswita Bose

Mohit Prateek
Roll No. 09D02017

Introduction to simulation software


Introduction to geometry and pre simulation values
Simulation
Post processing
Results and Discussions

LAMMPS
LAMMPS

is a classical molecular dynamics code,


and an acronym for Large-scale
Atomic/Molecular Massively Parallel Simulator.

LAMMPS

has potentials for soft materials


(biomolecules, polymers) and solid-state
materials (metals, semiconductors) and coarsegrained or mesoscopic systems. It can be used to
model atoms or, more generically, as a parallel
particle simulator at the atomic, meso, or
continuum scale.

LAMMPS

also offers a "GRANULAR" package for


DEM simulations.

LIGGGHTS

LIGGGHTS stands for LAMMPS Improved for General Granular


and Granular Heat Transfer Simulations.

As this name implies, it is based on the Open Source MD code


LAMMPS.

LIGGGHTS now brings these DEM features to a new level. The


following features have been implemented on top of the
LAMMPS "GRANULAR" features:
A re-write of the contact formulations, including the
possibility to define macroscopic particle cohesion
Import and handling of triangular meshes from CAD
A moving mesh feature
Improved particle insertion
A model for heat generation and conduction between
particles in contact

Reference: Rheology and Segregation of Granular Mixtures


Anurag Tripathi
Steady

flows are obtained in a narrow range of


angles (13 - 14.5 degrees); lower angles result in
stopping of the flow and higher angles in
continuous acceleration. The flow is relatively
dense with the solids volume fraction 0.5 and
significant layering of particles is observed.

The

value of stiffness constant for which results for


hard and soft particles are identical is found to
be k = 2 1000000 x mg/d where m is the mass of
a particle, g is the acceleration due to gravity
and d is the particle diameter.

Literature Review
Due

to a strong analogy between the random motion


of the granular particles and the thermal motion of
molecules in the kinetic-theory picture of gases,
fluidized phase of grains is commonly called as a
granular gas and the mean-squared average value
of the random velocities is commonly referred to as
the granular temperature

Simple

kinetic theories for rapid granular flows,


however had the restriction of small dissipation
assumption which stems from the common assumption
that the granular temperature, T, (isotropic measure of
the velocity fluctuations) is sufficient to completely
characterize the fluctuation through out the flow
(Chou (2000)).

Literature Review
Louge

et al. (1990) have performed computer simulations


of rapid granular shear flow between parallel bumpy
boundaries and compared their results with theoretical
predictions of kinetic theory and found that the kinetic
theory applies to gaps as small as three particle
diameters.

Babic

(1993) studied steady gravity driven flow between


parallel bumpy boundaries and found that the particle
flux from theory compared favorably with simulation
results and earlier experiments.

Hsiau

and Hunt (1993) performed kinetic theory analysis


of flow induced particle diffusion and thermal
conduction in granular materials and found difference
between the theoretical predictions and experimental
measurements. Savage and Dai (1993) studied shear
flows and found wall layering at higher concentrations.

Literature Review
To

account for the frictional interaction between the


particles, Jenkins and Richman (1985) used additional
equation for the conservation of spin energy involving
the flux of spin energy and couple stress equations, other
than the mass, linear momentum and translational
energy balance as in the case of frictionless particles.

Lun

and Savage (1987) developed a kinetic theory


formulation for rough particles in the dense limit, where
the collisional stress is large compared to the kinetic
stress.

Xu

et al. (2003) compared numerical solutions of the


kinetic theory with simulations and microgravity
experiments and found that, at least in fully developed,
collisional, steady flows with relatively small collisional
dissipation, the solutions of the kinetic theory, subject to
the appropriate boundary conditions, agree well with
both simulations and experimental data.

Literature Review
Pouliquen

and Renaut (1996) determined the


critical angle at which particles start to flow down
an incline. The critical angle was found to
increase with decrease in initial layer thickness.

Non-dimensional

mean velocity (um/gh) was


found to be proportional to the layer thickness (h),
when scaled with hstop. Experimental
measurements of this critical curve hstop carried
out for different materials and rough bottoms
give the same shape, which can be fitted by an
equation

Literature Review Simulation Studies


The

computational results of Hirshfeld and Rapaport


(1997) for a binary mixture of particles with different
sizes in a two-dimensional chute flow under gravity
showed that large particles rise to the top of the layer.

Dury

and Ristow (1997) performed soft particle DEM


simulations of a binary mixture of different size disks in a
half filled two-dimensional rotating drum and
investigated effect of rotational speed of the drum on
the dynamics of the segregation process.

Rice

and Hrenya (2010) studied clustering


phenomenon in mixtures in two-dimensional simple
shear flows using molecular dynamic simulations

Bidisperse

spherical particles in a rotating horizontal


drum were studied using Discrete Element Method
(DEM) simulations by Arntz et al. (2008).

Geometrical Representation
*.STL File; Viewed by Paraview

Pre-Simulation Values
Region
SI

of Simulation: 10 cm x 4 cm x 4 cm

units

Inclined

Plane:
Base : 5 cm
Angle: 13.92 degrees

Gravity:

9.81 m/s/s

Granular Particle Properties:


Insertion

of 5000 atoms

Diameter:

0.5 mm
Volume Fraction: 0.7
Density: 2500
Initial velocity: 0,0,0
Coefficient of Restitution: 0.9
Young's Modulus: 5E6
Poisson's ratio: 0.45

Simulation

*.DUMP File; Viewed by VMD

ITEM: ATOMS id type type x y z vx vy vz fx fy fz tqx tqy tqz omegax omegay omegaz radius

First Timestep

254 1 1 -0.0455105 -0.0194732 0.0172402 0 0 -0.271634 0 0 -1.60516e-06 0 0 0 0 0 0 0.00025

346 1 1 -0.0449629 -0.0188075 0.016992 0 0 -0.280454 0 0 -1.60516e-06 0 0 0 0 0 0 0.00025

. . . . . . 0.00025

. . . . . . .

Next Timestep

2141 1 1 -0.0435509 -0.018768 0.01721 0 0 -0.272721 0 0 -1.60516e-06 0 0 0 0 0 0 0.00025

4889 1 1 -0.0431077 -0.0196025 0.0169182 0 0 -0.283023 0 0 -1.60516e-06 0 0 0 0 0 0 0.00025

. . . . . . 0.00025

. . . . . . .

Simulation Video

*.DUMP File; Viewed by VMD

The video file can be viewed at the given link:

https://dl.dropbox.com/u/19552558/Video_EN_649_Mohit_Prateek.avi

Post
Processing
SCILAB

LEVEL 1

LEVEL 2

MAKE3D.SCI

FUNCTIONS

REMOVEX.SCI

SORTBYCOLUMN.SCI

Function Description
MAKE3D.SCI

REMOVEX.SCI

function [M2]=make3d(M,
division_size) [rows, column] =
size(M);
ds = division_size;
M2 = M(1:ds,:,:);
for i = 2:(rows/ds)
M2(:,:,i) = M(((i*ds)-(ds1)):(i*ds),:,:);
end
return
endfunction

function [Mx2]=removex(Mx)
len = length(Mx(:,4));
for i = 10:10:len
if Mx(i,4) > 0.05 then
Mx = Mx(i:len,:);
i = i - 10;
else break;
end
len = length(Mx(:,4));
end Mx2 = Mx;
return
endfunction

Function Description
SORT_COLUMN_ROWWISE2D.SCI

MOHITPLOT.SCI

function [A,
k]=sort_column_rowwise2d(a,
column_number)
cs = column_number;
[B,k]=gsort(a(:,cs),'g');
[r,c] = size(a);
A = rand(r,c);
for i = 1:r
A(i,:) = a (k(i),:);
end
return
endfunction

function mohitplot()
a=gca();
a.font_size=2;
poly1= a.children.children(1);
poly1.thickness = 3;
a.title.font_size = 5;
a.x_label.font_size = 3.5;
a.y_label.font_size = 3.5;
xgrid
endfunction

Read File using fscanfMat()


Convert it into a hypermatrix
Extract different values from the matrix like id, velocity, omega

Calculate Quantities required

V = sqrt(vx.*vx + vy.*vy + vz.*vz);


F_atom = sqrt(fx.*fx + fy.*fy + fz.*fz);
T_atom = sqrt(tx.*tx + ty.*ty + tz.*tz);
KE_atom = (1/2)*2500*(4/3*%pi*(0.00025^3))*(vx.*vx + vy.*vy + vz.*vz);
RE_atom = (1/2)*(2/5)*2500*(4/3*%pi*(0.00025^3))*(0.00025^2)*(ox.*ox + oy.*o
KE_RE_atom = KE_atom + RE_atom

Code Description
READING FILE

stacksize('max'); // To increase
the limit in Scilab !
M_raw =
fscanfMat('Default_edited.flow'
);
M_raw = M_raw(:,1:18); //
Removing radius column !
M = make3d(M_raw,5000); //
There is a loss of data after if
the division size is not a multiple
of division size !
[row, column, rc] = size(M);

EXTRACTING VALUES
// Reading file and naming it !
id = M(:,1,:);
x = M(:,4,:);
y = M(:,5,:);
z = M(:,6,:);
vx = M(:,7,:);
vy = M(:,8,:);
vz = M(:,9,:);
fx = M(:,10,:);
fy = M(:,11,:);
fz = M(:,12,:);
tx = M(:,13,:);
ty = M(:,14,:);
tz = M(:,15,:);
ox = M(:,16,:);
oy = M(:,17,:);
oz = M(:,18,:);
// File reading done !

Code Description
FOR SINGLE PARTICLE

FOR ALL PARTICLES

// Calculations start !
v = sqrt(vx.*vx + vy.*vy + vz.*vz);
F_atom = sqrt(fx.*fx + fy.*fy + fz.*fz);
T_atom = sqrt(tx.*tx + ty.*ty + tz.*tz);
KE_atom =
(1/2)*2500*(4/3*%pi*(0.00025^3))*(v
x.*vx + vy.*vy + vz.*vz);
RE_atom =
(1/2)*(2/5)*2500*(4/3*%pi*(0.00025
^3))*(0.00025^2)*(ox.*ox + oy.*oy +
oz.*oz);
KE_RE_atom = KE_atom + RE_atom;

for i =1:rc
vtotal(i) = sum(v(:,:,i));
KE(i) = sum(KE_atom(:,:,i));
RE(i) = sum(RE_atom(:,:,i));
KE_RE(i) =
sum(KE_RE_atom(:,:,i));
F(i) = sum(F_atom(:,:,i));
T(i) = sum(T_atom(:,:,i));
end

Graphs
SCILAB

All the graphs are self explanatory,


although a few lines have been
included wherever necessary.

LEVEL 1

LEVEL 2

LEVEL 3

LEVEL 4

FOR ANGLE 13
WRT TIME
FOR ANGLE 20
GRAPHS

FOR ANGLE 13
FOR Z-AXIS

FOR ANGLE 20

WRT AXIS
FOR ANGLE 13
FOR X-AXIS
FOR ANGLE 20

Code Description
SAMPLE CODE FOR GENERATING A GRAPH

t = 1:1:rc;
l = 1100;
b = 750;
scf(1);
f=gcf(); // Create a figure
f.figure_size= [l,b];
plot(t,vtotal);
mohitplot();
xtitle("Variation of Velocity with Time", "Time (s)", "Velocity (m/s)");

Variation of Velocity with time


The velocity increases with time as expected

Variation of Translational Kinetic Energy


with time

The energy increases with time as expected

Variation of Rotational Kinetic Energy


with time

Variation of Total Kinetic Energy


with time

Here we have shown the variation of Total Kinetic Energy with time which has more or
less the same variation as velocity

Variation of Force with time


There is a huge force initially which is due to the granular particles striking the plane. Afterwards the
force decreases. The peaks in the graph denote the collison with the incline.

Variation of Energy with time


The below graph shows the variation of all the energies with time for two angles.

Rotate axis using the rotation matrix


Sort it in increasing or decreasing order of X or Z axis
Add these coordinates to the hypermatrix
Group it into bins of 1000 and calculate a mean for each of them

Calculate Quantities required

v_mean_x = sqrt(vx_x.*vx_x + vy_x.*vy_x + vz_x.*vz_x);


F_mean_x = sqrt(fx_x.*fx_x + fy_x.*fy_x + fz_x.*fz_x);
T_mean_x = sqrt(tx_x.*tx_x + ty_x.*ty_x + tz_x.*tz_x);
KE_mean_x = (1/2)*2500*(4/3*%pi*(0.00025^3))*(vx_x.*vx_x + vy_x.*vy_x + vz
RE_mean_x = (1/2)*(2/5)*2500*(4/3*%pi*(0.00025^3))*(0.00025^2)*(ox_x.*ox_x
oy_x.*oy_x + oz_x.*oz_x);
KE_RE_mean_x = KE_mean_x + RE_mean_x;

Code Description
ROTATING AND ADDING TO THE
HYPERMATRIX

// Rotating the axis !


theta = 13.93*%pi/180;
x1 = x*cos(theta) - z*sin(theta);
y1 = y;
z1 = x*sin(theta) + z*cos(theta);
// Done rotating

M(:,19,:) = x1;
M(:,20,:) = y1;
M(:,21,:) = z1;
M_raw(:,19) = x1;
M_raw(:,20) = y1;
M_raw(:,21) = z1;

GROUPING AND CALCULATING


[Mx, sort_index] = sort_column_rowwise2d(M_raw, 19); //
Sorting in decreasing oreder of x' coordinate
for i = 1:279
xmean(i) = mean(Mx(((i-1)*500+1):(i*500),19));
vx_x(i) = mean(Mx(((i-1)*500+1):(i*500),7));
vy_x(i) = mean(Mx(((i-1)*500+1):(i*500),8));
vz_x(i) = mean(Mx(((i-1)*500+1):(i*500),9));
fx_x(i) = mean(Mx(((i-1)*500+1):(i*500),10));
fy_x(i) = mean(Mx(((i-1)*500+1):(i*500),11));
fz_x(i) = mean(Mx(((i-1)*500+1):(i*500),12));
tx_x(i) = mean(Mx(((i-1)*500+1):(i*500),13));
ty_x(i) = mean(Mx(((i-1)*500+1):(i*500),14));
tz_x(i) = mean(Mx(((i-1)*500+1):(i*500),15));
ox_x(i) = mean(Mx(((i-1)*500+1):(i*500),16));
oy_x(i) = mean(Mx(((i-1)*500+1):(i*500),17));
oz_x(i) = mean(Mx(((i-1)*500+1):(i*500),18));
End
v_mean_x = sqrt(vx_x.*vx_x + vy_x.*vy_x + vz_x.*vz_x);
F_mean_x = sqrt(fx_x.*fx_x + fy_x.*fy_x + fz_x.*fz_x);
T_mean_x = sqrt(tx_x.*tx_x + ty_x.*ty_x + tz_x.*tz_x);
KE_mean_x =
(1/2)*2500*(4/3*%pi*(0.00025^3))*(vx_x.*vx_x +
vy_x.*vy_x + vz_x.*vz_x);
RE_mean_x =
(1/2)*(2/5)*2500*(4/3*%pi*(0.00025^3))*(0.00025^2)*(ox
_x.*ox_x + oy_x.*oy_x + oz_x.*oz_x);
KE_RE_mean_x = KE_mean_x + RE_mean_x;

LEVEL 1

LEVEL 2

LEVEL 3

LEVEL 4

FOR ANGLE 13
WRT TIME
FOR ANGLE 20
GRAPHS

FOR ANGLE 13
FOR Z-AXIS

FOR ANGLE 20

WRT AXIS
FOR ANGLE 13
FOR X-AXIS
FOR ANGLE 20

Variation of Velocity along the incline


The velocity increases continuously. There is a slight downfall at 0.05 which is due to the
particles striking the ground and hence the removal of acceleration.

Variation of Translational Kinetic Energy


along the incline

It varies almost same as the velocity.

Variation of Rotational Kinetic Energy


along the incline

As we can see, Rotational energy increases along the inclinewith a sudden increase at
0.05 m due to the collision with the ground

Variation of Total Kinetic Energy


along the incline

Here we have shown the variation of Total Kinetic Energy which has more or less the
same variation as velocity

Variation of Force along the incline


The huge peak that we see at 0.01 is the point at which the incline ends and particles strike the ground, which explains
why the huge force. Apart from that, the force reamins constant along the inlcine since there is no interaction with
the incline.

Variation of Energy along the incline

Variation of Velocity normal to the


incline

Variation of Translational Kinetic Energy


normal to the incline

Variation of Rotational Kinetic Energy


normal to the incline

Variation of Total Kinetic Energy normal


to the incline

The energy increases since the partciles at top are more free to move compared to
the particles at the bottom of the pile.

Variation of Force normal to the incline


The huge peak that we see at 0.01 is the point at which the incline ends and particles strike the ground, which explains
why the huge force. Apart from that, the force reamins constant along the inlcine since there is no interaction with
the incline.

Variation of Energy normal to the incline


The below graph shows the variation of all the energies with time for two angles.

References
Rheology

and Segregation of Granular Mixtures


Anurag Tripathi, 2010

Velocity

correlations in dense gravity-driven granular


chute flow - Oleh Baran, Deniz Ertas, and Thomas C.
Halsey, 2006

Flow

rule of dense granular flows down a rough incline


- Tams Brzsnyi and Robert E. Ecke, 2007

Transition

in a dense granular flow - V. Kumaran and S.


Maheshwari

Discrete

Element Modelling Of Granular Snow Particles


using LIGGGHTS - Vinodh Vedachalam, 2011

Special Thanks To
Prateek Maheshwari
Aditya Telang
Chaitanya Wadi

Thank You ! :)

Mohit Prateek
Roll No. 09D02017

Potrebbero piacerti anche