Material Point Method Basics and Applications
Material Point Method Basics and Applications
Material Point Method Basics and Applications
net/publication/262415477
CITATIONS READS
6 7,911
1 author:
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
All content following this page was uploaded by Vinh Phu Nguyen on 20 May 2014.
Contents
1 Lagrangian, Eulerian and Arbitrary Lagrangian-Eulerian descriptions 2
2 Introduction 3
3 Governing equations 5
6 Implementation 10
6.1 Eulerian grid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
6.2 Shape functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
6.2.1 B-splines basis functions . . . . . . . . . . . . . . . . . . . . . . . . . 16
6.3 Initial particle distribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
6.4 Visualisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
7 Examples 18
7.1 1D examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
7.2 Axial vibration of a continuum bar . . . . . . . . . . . . . . . . . . . . . . . . 22
7.3 Impact of two elastic bodies . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
7.4 Impact of two elastic rings . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
10 Fluid-structure interaction 36
1
1 LAGRANGIAN, EULERIAN AND ARBITRARY LAGRANGIAN-EULERIAN
DESCRIPTIONS
2
2 INTRODUCTION
still remains a challenging task to design an efficient and effective mesh moving algorithm to
maintain mesh regularity for three-dimensional complicated material domain. The Material
Point Method (MPM) was born as a simple ALE method.
2 Introduction
The Material Point Method (MPM) is one of the latest developments in particle-in-cell (PIC)
methods. The first PIC technique was developed in the early 1950s and was used primarily
for applications in fluid mechanics. Early implementations suffered from excessive energy
dissipation which was overcome in 1986, by Brackbill and Ruppel and they introduced FLIP-the
Fluid Implicit Particle method. The FLIP technique was modified and tailored for applications
in solid mechanics by Sulsky and her co-workers Sulsky et al. [1994, 1995] and has since been
referred to as the material point method (MPM) Sulsky and Schreyer [1996].
The MPM discretizes a continuum body Ω with a finite set of np material points (or par-
ticles) in the original configuration that are tracked throughout the deformation process. The
terms particle and material point will be used interchangeably throughout this manuscript. The
mass and volume of subregions which the particles represent are memorised for these points,
but changes in the shape of the subregions are not traced1 . Let xtp (p = 1, 2, . . . , np ) denote the
current position of material point p at time t. Each material point has an associated mass Mp ,
density ρp , velocity vp , Cauchy stress tensor σp and any other internal state variables necessary
for the constitutive model. Thus, these material points provide a Lagrangian description of the
continuum body. Since each material point contains a fixed amount of mass for all time, mass
conservation is automatically satisfied. In MPM, a fixed Eulerian grid is used where the equa-
tion of balance of momentum is solved. This is in contrast to other meshfree/particle methods
where the momentum equations are solved on the particles. We refer to Fig 2 for a graphical
illustration of the discretisation in MPM. The grid covers the solid in its initial configuration
as well as the region in which the solid is expected to move. The particles interact with other
particles in the same body, with other solid bodies, or with fluids through a background Eu-
lerian grid. In general, after each time step the grid is discarded i.e., it is reset to the initial
configuration. This is the key difference between MPM and the updated Lagrange FEM, cf.
Fig. 3 and makes the method distortion-free. The MPM for solid mechanics conserves mass
and momentum by construction, but energy conservation is not explicitly enforced. Advantages
of the MPM algorithm include the absence of mesh-tangling problems and error-free advection
of material properties via the motion of the material points. Yet another advantage is that fully
coupled, fluid-structure interaction problems can be handled in a straightforward manner. A no
slip contact algorithm is automatic to the method. That is, it comes at no additional computa-
tional expense.
Applications of the MPM are emerging in ice-sheet models for climate simulation
Sulsky et al. [2007] as well as more traditional explosive-related simulations ?. In 2004, nu-
merical noise caused by cell-boundary crossing of material points was identified, and the gener-
alized interpolation material point (GIMP) method was introduced to avoid the noise ?. When
1
Advanced MPM formulations do track the subregion shape.
3
2 INTRODUCTION
Figure 2: Material point method: Lagrangian material points overlaid over an Eulerian grid.
The dotted lines denote the physical domains for each particle. These domains can be found by
Voronoi tesselation.
Figure 3: Material point method: Lagrangian material points overlaid over an Eulerian grid.
Note that the material points can move to other elements. This is contrast to integration points
in FEM which always stay at the same element.
4
4 WEAK FORM AND DISCRETISATION
the choice of characteristic function is the Dirac delta function, the traditional MPM formula-
tion is recovered exactly. fluid-membrane interaction York et al. [1999, 2000]. ? comparative
study of SPH and MPM for hypervelocity impact problems. The conclusion was that the mate-
rial point method is an efficient and promising method for simulating the hypervelocity impact
problems. geo-engineering landslide.
3 Governing equations
∂δui s
Z Z Z Z
ρδui ai dΩ + ρ σ dΩ = ρδui bi dΩ + ρδui t̄i dΓ (1)
Ω Ω ∂xj ij Ω Γt
where Ω denotes the current configuration, σijs is the specific stresses i.e., σijs = σij /ρ.
The whole material domain is described with a set of material points, and it is assumed that
the whole mass of a material subdomain is concentrated at the corresponding material point,
which means that the mass density field is expressed as
np
X
ρ(x, t) = Mp δ(x − xp ) (2)
p=1
where δ is the Dirac delta function with dimension of the inverse of volume. Substitution of
Equation (2) into Equation (1) results in
np np np np
X X ∂δui s
X X
Mp δui (xp )ai (xp )+ Mp σ (xp ) = Mp δui (xp )bi (xp )+ Mp δui (xp )t̄i (xp )
p=1 p=1
∂xj (xp ) ij p=1 p=1
(3)
At this point, MPM is identical to FEM in which the material points are served as integration
points. The background Eulerian grid serves as a finite element mesh with shape functions
{NI }nI=1
n
where nn denotes the total number of nodes. Thanks to the use of a grid, evaluation of
shape functions and derivatives are standard and does not involve neighbor search as in meshfree
methods such as SPH. The position and displacement of particle p are then given by
nn
X
xi (xp ) = NI (xp )xiI (4)
I=1
nn
X
ui (xp ) = NI (xp )uiI (5)
I=1
5
4 WEAK FORM AND DISCRETISATION
where xiI is the i component of the position vector of node I. In 3D, one writes xI =
(x1I , x2I , x3I ). And uiI is the i component of the displacement vector of node I. Subscript
I denotes the value of grid node I, and subscript p denotes the value of particle p.
The velocity and acceleration fields are given by
nn
X
vi (xp ) = NI (xp )viI (6)
I=1
nn
X
ai (xp ) = NI (xp )aiI (7)
I=1
where viI , aiI are the i component of the velocity and acceleration vectors of node I.
Using the Bubnov-Galerkin method, the virtual displacement field is approximated as
nn
X
δui (xp ) = NI (xp )δuiI (8)
I=1
thus nn
∂δui X ∂NI
= δuiI (9)
∂xj (xp ) I=1 ∂xj (xp )
Substituting Equations (8), (7) and (9) into Equation (3) leads to
np np
"n #" nn
# "n #
n n
X X X X X ∂NI
Mp NI (xp )δuiI NJ (xp )aiJ − Mp δuiI σijs (xp ) =
p=1 I=1 J=1 p=1 I=1
∂x
j (xp )
np n
"n # p
" nn
#
X X n X X
Mp NI (xp )δuiI bi (xp ) + Mp NI (xp )δuiI t̄i (xp ) (10)
p=1 I=1 p=1 I=1
Since δuiI are arbitrary, we obtain the following set of equations (i equations for each node
I, I = 1, . . . , nn )
np nn np
X X X ∂NI
Mp NI (xp )( NJ (xp )aiJ ) − Mp σijs (xp ) =
p=1 J=1 p=1
∂x
j (xp )
np np
X X
Mp NI (xp )bi (xp ) + Mp NI (xp )t̄i (xp ) (11)
p=1 p=1
6
5 EXPLICIT TIME INTEGRATION
Note that the mass matrix is not constant as in FEM but changes in time because the material
points move while the grid nodes are fixed. Therefore, for every time step, an inversion of the
mass matrix must be carried out. Thus, explicit integration is usually employed in MPM with
the use of a diagonal lumped mass matrix. The diagonal mass matrix is the standard row sum
matrix in which the diagonal terms are given by
nn np
nn X np
X X X
mI = mIJ = Mp NI (xp )NJ (xp ) = Mp NI (xp ) (14)
J=1 J=1 p=1 p=1
where Equation (13) and the partition of unity property of FE shape functions were used.
The external force vector is written as
np np
X X
fIext = Mp NI (xp )b(xp ) + Mp NI (xp )t̄(xp ) (15)
p=1 p=1
7
5 EXPLICIT TIME INTEGRATION
node particle
solving Equation (17), one needs the nodal masses and momenta which are not stored at the
nodes. Therefore, they are mapped from the particles using the shape functions
X
mtI = NI (xtp )Mp
p
X (19)
(mv)tI = NI (xtp )(Mv)tp
p
Note that this mapping, graphically illustrated in Fig. (4), is a kind of extrapolation and is a
non-local operation.
The particle velocities and positions are updated as follows
X
vpt+∆t = vpt + ∆t NI (xp )fIt /mtI (20)
I
X
xt+∆t
p = xtp + ∆t NI (xp )(mv)t+∆t
I /mtI (21)
I
which are standard FE interpolations, cf. Fig. (4). Note that this is the momentum formulation
in which momentum is used instead of velocity as much as possible, thus avoiding divisions
by potentially small nodal masses. Because the velocity field is single-valued, interpenetration
of material is precluded. It should be emphasized that this is totally an updated Lagrangian
formulation since the grid nodes are moved to new positions xt+∆t
I = vIt + ∆tvIt+∆t . However
8
5 EXPLICIT TIME INTEGRATION
node
particle
Figure 5: Troubled nodes with nearly zero mass resulting in infinite acceleration (node 2).
the grid nodes are not explicitly moved because it will be discarded anyway at the end of the
time step.
Next, one needs to compute the updated particle gradient velocities using the nodal veloc-
ities vIt+∆t . However if the velocities were computed as vIt+∆t = (mv)t+∆t I /mtI from Equa-
t
tion (18) the velocities would then be infinite if the mass mI is small. This happens when a
particle is very closed to a node having only one particle within its support, Fig. 5. There are at
least three ways to treat this issue: (i) using a cutoff value to detect small nodal masses, (ii) a
modified USL and (iii) USF. In the first approach, the nodal velocities are computed as
t+∆t
(mv)I
if mtI > tol
vIt+∆t = mtI (22)
0 otherwise
which requires an extra parameter (a cutoff value) in the algorithm which is not clear how to
choose. Even a good cutoff value can be chosen, it produces an undesirable constraint which
should not be in the system. For example it results in non-zero stresses (albeit small) in particles
which are moving with the same speed.
The second way Sulsky et al. [1994] is to map the particle velocities back to the nodal
velocities using
X
(mv)t+∆t
I = NI (xp )(Mv)t+∆t
p (23)
p
and thus
The appearance of the shape functions in both numerator and denominator, in the second equal-
ity, cancel out its role and the numerical problem is thus cured. Our implementation uses the
final equality because mtI was computed in Equation (19). Note, however, that this option is
inefficient for Equation (23) is a particle-to-node map within the node-to-particle phase.
Next particle velocity gradients are computed
9
6 IMPLEMENTATION
X
Lt+∆t
p ≡ ∇vpt+∆t = ∇NI (xp )vIt+∆t (25)
I
where Lp is a 3 × 3 matrix of which components are Lij = vi,j (in three dimensions). It is
a 2 × 2 matrix in two dimensions. From the velocity gradients one can compute the gradient
deformation using the relation Ḟ = LF. Utilizing a forward Euler method, one can write
Ft+∆t − Ft
= Lt+∆t Ft (26)
∆t
And the gradient deformation tensor is thus computed
Ft+∆t
p = (I + Lt+∆t
p ∆t)Ftp (27)
which allows to compute the updated particle volume Vpt+∆t= det Ft+∆t
p Vp0 .In the above
equation, I is the identity matrix.
Next, the particle stresses are updated. This depends on the constitutive model. For example,
one might need to compute the strain increment
∆ep = symLt+∆t
p ∆t (28)
and using it to compute the stress increment ∆σp . The updated particle stresses are given by
6 Implementation
In this section, we present a serial implementation of MPM that reuses existing FE resources.
Before doing so, it is beneficial to recognize the resemblances and differences between MPM
and FEM:
• MPM can be seen as the updated Lagrangian finite element method in which material
points serve as integration points and uncoupled from the Eulerian grid. Practically ma-
terial points, where constitutive equations are applied, move from elements to elements
rather than remain at the Gauss points of an element. This requires to track the movement
of the material points.
• Contrary to standard FEM where the mesh is fitted to the physical domain of interest,
the Eulerian grid in MPM is dimensioned sufficiently large to cover the deformed solid.
Therefore, at a certain time step, there are elements with no material points. They are
labeled as inactive elements and skipped in the assembly process.
10
6 IMPLEMENTATION
1. Initialisation phase
3. Reset the grid (if it was updated) and advance to the next time step.
11
6 IMPLEMENTATION
1. Initialisation phase
3. Reset the grid (if it was updated) and advance to the next time step.
12
6 IMPLEMENTATION
• Unlike FEM, in MPM there is a mapping from Gauss points (particles) to nodes.
• Adding material points during calculations is relatively easy as there is no coupling be-
tween them and the grid.
• The MPM can be implemented in a FEM program in a relatively easy way in constrast to
meshfree methods or ALE methods.
• Efficiency of MPM is lower than that of FEM due to the mappings between the back-
ground grid and the particles and the accuracy of particles quadrature used in MPM is
lower than that of Gauss quadrature used in FEM.
• This method, in analogy with meshless methods, also introduces new visualization chal-
lenges.
• Whereas the finite element method (FEM) has long-established basic verification stan-
dards (patch tests, convergence testing, etc.), no such standards have been universally
adopted within the particle method community.
• Uintah, http://www.uintah.utah.edu
• MPM-GIMP, http://sourceforge.net/p/mpmgimp/home/Home/
• Mechsys, http://mechsys.nongnu.org/index.shtml
• NairnMPM, http://osupdocs.forestry.oregonstate.edu/index.php/Main_Page
• CartaBlanca
All are written in C++ except the last one which is written in Java.
13
6.1 Eulerian grid 6 IMPLEMENTATION
f o r p = 1 : p Co u n t
x = xp ( p , 1 ) ;
y = xp ( p , 2 ) ;
e = f l o o r ( x / d e l t a x ) + 1 + numx2∗ f l o o r ( y / d e l t a y ) ;
pElems ( p ) = e ; % p a r t i c l e " p " s t a y s i n e l e m e n t " e "
end
f o r e = 1 : elem Co u n t
i d = f i n d ( pElems==e ) ;
m p o i n t s { e }= i d ; % m p o i n t s { e}−> i n d i c e s o f p a r t i c l e s i n " e "
end
14
6 IMPLEMENTATION 6.2 Shape functions
Figure 7: Material point method: One dimensional shape functions defined in global coordinate
system.
Remark 6.1. If shape functions are defined in the parent domain as most isoparametric elements
are i.e., NI = NI (ξ, η), then one has to perform one extra step–after getting the updated particle
positions, determine the natural coordinates (ξ, η) of them. For a 2D structured grid with linear
elements, it is straightforward to do so as
2x − (xe1 + xe2 )
ξ=
xe2 − xe1
(33)
2y − (y1e + y2e )
η=
y2e − y1e
where (xe1 , y1e ) and (xe2 , y2e ) denote the lower-left and upper-right nodes of element e, respec-
tively. Extension to 3D is straightforward.
15
6.3 Initial particle distribution 6 IMPLEMENTATION
16
6 IMPLEMENTATION 6.3 Initial particle distribution
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0 0.2 0.4 0.6 0.8 1
particle elements
1 2 3 4 5 6 7 8 nodes
Figure 9: One dimensional cubic (p = 3) B-spline basis functions on a open uniform knot Ξ =
{0, 0, 0, 0, 0.2, 0.4, 0.6, 0.8, 1, 1, 1, 1}. There are 8 nodes (control points in CAD terminology)
and 5 elements (or knot spans in CAD). At can be seen from the figure, at any point there are 4
(= (p + 1)) non-zero basis functions. Therefore each element has 4 nodes. The firstelement’s
connectivity is [1, 2, 3, 4].
17
6.4 Visualisation 7 EXAMPLES
Figure 10: Initial particle distribution: obtained using the available FE mesh generators.
disk, one can use a mesh generator to partition the disk into a set of triangles. The particles
can be taken as the centers of these triangles, Fig. 10. Alternatively, integration points of the
triangular elements are mapped to the global coordinate systems and then are used as material
points. The area of each triangle can be easily obtained and thus the particle volumes and
masses can be determined.
6.4 Visualisation
In FEM visualisation is typically performed on the mesh. Information stored at the integration
points are extrapolated to the nodes to this end. In MPM, the computational grid is fixed and
thus not suitable for visualisation. There are at least two approaches to visualizing MPM results
• Particle visualization: the particles are visualized directly as spheres. Particle data (posi-
tion, stresses etc.) are written to files (say VTK files) and can be processed by Paraview
or Visit.
• Particle mesh visualization: in standard MPM, one can generate a mesh from the parti-
cle positions using a Delaunay triangulation and use this mesh for visualization. Note
however that this method is expensive since the particles positions are evolving in time.
7 Examples
In this section various examples in one and two dimensions are provided to verify the imple-
mentation as well as to demonstrate the performance of the MPM.
7.1 1D examples
As the simplest MPM example, let us consider the vibration of a single material point as shown
in Fig. 11. The bar is represented by a single point initially located at Xp = L/2, which has an
initial velocity v0 . The material is linear elastic.
18
7 EXAMPLES 7.1 1D examples
19
7.1 1D examples 7 EXAMPLES
t a = [ ] ; va = [ ] ; xa = [ ] ;
while ( t < time )
% s h a p e f u n c t i o n s and d e r i v a t i v e s
N1 = 1 − abs ( xp−n o d e s ( 1 ) ) / L ;
N2 = 1 − abs ( xp−n o d e s ( 2 ) ) / L ;
dN1 = −1/L ;
dN2 = 1 / L ;
% p a r t i c l e mass and momentum t o n o d e
m1 = N1∗Mp;
m2 = N2∗Mp;
mv1 = N1∗ q ;
mv2 = N2∗ q ;
mv1 = 0 ; % Bo u n d ar y c o n d i t i o n v=0 a t n o d e 1
% internal force
f i n t 1 = − Vp∗ s ∗dN1 ;
f i n t 2 = − Vp∗ s ∗dN2 ;
f1 = fint1 ; % t h e r e i s no e x t e r n a l f o r c e
f2 = fint2 ;
% update n o d a l momenta
f1 = 0; % Bo u n d ar y c o n d i t i o n s f 1 = m1∗ a1 , a1 =0
mv1 = mv1 + f 1 ∗ d t i m e ;
mv2 = mv2 + f 2 ∗ d t i m e ;
% u p d a t e p a r t i c l e v e l o c i t y and p o s i t i o n
vp = vp + d t i m e ∗ ( N1∗ f 1 / m1 + N2∗ f 2 / m2 ) ;
xp = xp + d t i m e ∗ ( N1∗mv1 / m1 + N2∗mv2 / m2 ) ;
q = Mp∗ vp ; % momentum
v1 = N1∗Mp∗ vp / m1 ;
v2 = N2∗Mp∗ vp / m2 ;
v1 = 0 ; % boundary c o n d i t i o n
Lp = dN1 ∗ v1 + dN2 ∗ v2 ; % gradient velocity
dEps = d t i m e ∗ Lp ; % s t r a i n increment
s = s + E ∗ dEps ; % s t r e s s update
% s t o r e time , v e l o c t y f o r p l o t t i n g
ta = [ ta ; t ];
va = [ va ; vp ] ;
xa = [ xa ; xp ] ;
% advance to the next time st e p
t = t + dtime ;
end
20
7 EXAMPLES 7.1 1D examples
0.15
MPM
0.1 Exact
Velocity 0.05
−0.05
−0.1
−0.15
−0.2
0 2 4 6 8 10
Time
10
MPM
8 Exact
6
4
Displacement
2
0
−2
−4
−6
−8
0 2 4 6 8 10
Time
−3
x 10
7
kinetic
strain
6 total
4
Energy
0
0 0.5 1 1.5 2
Time
Figure 13: Vibration of a single material point: kinetic, strain and total energies.
21
7.2 Axial vibration of a continuum bar 7 EXAMPLES
v e l o = z e r o s ( n o d eCo u n t , 1 ) ;
mId = f l o o r ( ( elem Co u n t ) / 2 ) + 1 ; % i d o f t h e c e n t e r mass p a r t i c l e
% M a t e r i a l p o i n t s : c e n t e r s o f t h e e l e m e n t s one p a r t i c l e p e r e l e m e n t
c = sqrt (E/ rho ) ;
beta1 = pi / 2 / L ;
omega1 = b e t a 1 ∗ c ;
d e l t a x = L / elem Co u n t ; % n o d a l s p a c i n g
% m at e ri a l p o i n t s at the c e n t e r of elements
xp = z e r o s ( elem Co u n t , 1 ) ;
f o r p = 1 : elem Co u n t −1
xp ( p ) = 0 . 5 ∗ ( n o d e s ( p ) + n o d e s ( p + 1 ) ) ;
end
p Co u n t = l e n g t h ( xp ) ;
Mp = d e l t a x ∗ o n e s ( pCount , 1 ) ; % mass
Vp = d e l t a x ∗ o n e s ( pCount , 1 ) ; % volume
22
7 EXAMPLES 7.2 Axial vibration of a continuum bar
t a = [ ] ; va = [ ] ; xa = [ ] ;
23
7.3 Impact of two elastic bodies 7 EXAMPLES
f o r i = 1 : n o d eCo u n t
nmomentum ( i ) = nmomentum ( i ) + n i f o r c e ( i ) ∗ d t i m e ;
end
% u p d a t e p a r t i c l e v e l o c i t y and p o s i t i o n and s t r e s s e s
f o r e = 1 : elem Co u n t
e s c t r = elements ( e , : ) ;
en o d e = n o d e s ( e s c t r ) ;
Le = en o d e (2) − en o d e ( 1 ) ;
m p ts = m p o i n t s { e } ;
% loop over p a r t i c l e s
f o r p = 1 : l e n g t h ( m p ts )
p i d = m p ts ( p ) ;
N1 = 1 − abs ( xp ( p i d )− en o d e ( 1 ) ) / Le ;
N2 = 1 − abs ( xp ( p i d )− en o d e ( 2 ) ) / Le ;
dN1 = −1/Le ; dN2 = 1 / Le ;
i f nmass ( e s c t r ( 1 ) ) > t o l
vp ( p i d ) += d t i m e ∗ N1∗ n i f o r c e ( e s c t r ( 1 ) ) / nmass ( e s c t r ( 1 ) ) ;
end
i f nmass ( e s c t r ( 2 ) ) > t o l
vp ( p i d ) += d t i m e ∗ N2∗ n i f o r c e ( e s c t r ( 2 ) ) / nmass ( e s c t r ( 2 ) ) ;
end
xp ( p i d ) += d t i m e ∗ ( N1∗nmomentum ( e s c t r ( 1 ) ) / nmass ( e s c t r ( 1 ) ) +
N2∗nmomentum ( e s c t r ( 2 ) ) / nmass ( e s c t r ( 2 ) ) ) ;
v1 = nmomentum ( e s c t r ( 1 ) ) / nmass ( e s c t r ( 1 ) ) ;
v2 = nmomentum ( e s c t r ( 2 ) ) / nmass ( e s c t r ( 2 ) ) ;
%i f ( e s c t r ( 1 ) == 1 ) v1 = 0 ; end
Lp = dN1 ∗ v1 + dN2 ∗ v2 ; % gradient velocity
Fp ( p i d ) = ( 1 + Lp∗ d t i m e ) ∗ Fp ( p i d ) ; % gradient deformation
Vp ( p i d ) = Fp ( p i d ) ∗ Vp0 ( p i d ) ; % volume
dEps = d t i m e ∗ Lp ; % s t r a i n increment
s p ( p i d ) = s p ( p i d ) + E ∗ dEps ; % s t r e s s update
end
end
% s t o r e time , v e l o c t y f o r p l o t t i n g
t a = [ t a ; t ] ; va = [ va ; vp ( mId ) ] ; xa = [ xa ; xp ( mId ) ] ;
% advance to the next time st e p
t = t + dtime ;
end
24
7 EXAMPLES 7.3 Impact of two elastic bodies
0.1
MPM
0.08 Exact
0.06
0.04
0.02
Velocity
0
−0.02
−0.04
−0.06
−0.08
−0.1
0 20 40 60 80 100
Time
Figure 14: Vibration of a continuum bar: comparison of the MPM velocity solution and the
exact solution.
0.08
kinetic
0.07 strain
total
0.06
0.05
Energy
0.04
0.03
0.02
0.01
0
0 20 40 60 80 100
Time
Figure 15: Vibration of a continuum bar: kinetic, strain and total energies.
25
7.3 Impact of two elastic bodies 7 EXAMPLES
computational box.
In order to check the energy conservation, the strain and kinetic energy are computed for
each time step. They are defined as
np np
X 1X
U= u p Vp , K= vp · vp Mp (44)
p=1
2 p=1
where up denotes the strain energy density of particle p, up = 1/2σp,ij ǫp,ij or explicitly as
1 κ+1 2 2 2
up = (σp,xx + σp,yy ) − 2(σp,xx σp,yy − σp,xy ) (45)
4µ 4
with µ and κ are the shear modulus and the Kolosov constant, respectively.
List 5 and 6 gives the code for initialising the particle data and nodal data. Lists 7, 8 and
9 presents the codes for the solution phase. Note that some C++ notations (+=) were adopted
to save space. It should be emphasized that the code has not been optimized to make it easy
to understand. One can, for example, store the shape functions and its derivatives computed in
List 8 so that they can be reused in List 9.
Listing 5: Two dimensional MPM: particle initialisation.
p Co u n t = numelem ; % # of p a r t i c l e s
Mp = o n e s ( pCount , 1 ) ; % mass
Vp = o n e s ( pCount , 1 ) ; % volume
Fp = o n e s ( pCount , 4 ) ; % gradient deformation
s = z e r o s ( pCount , 3 ) ; % stress
e p s = z e r o s ( pCount , 3 ) ; % strain
vp = z e r o s ( pCount , 2 ) ; % velocity
xp = z e r o s ( pCount , 2 ) ; % position
% i n i t i a l i s e p a r t i c l e p o s i t i o n , mass , volume , v e l o c i t y
f o r e = 1 : numelem
c o o r d = n o d e1 ( e l e m e n t 1 ( e , : ) , : ) ;
a = det ( [ coord , [ 1 ; 1 ; 1 ] ] ) / 2 ;
Vp ( e ) = a ;
26
7 EXAMPLES 7.3 Impact of two elastic bodies
Figure 17: Impact of two elastic bodies: Eulerian mesh and initial particle distribution.
Mp( e ) = a ∗ r h o ;
xp ( e , : ) = mean ( c o o r d ) ;
% t h i s i s p a r t i c u l a r f o r t h e two i m p a c t d i s k s ex am p le
i f xp ( e , 1 ) < 0 . 5
vp ( e , : ) = [ v v ] ;
else
vp ( e , : ) = [−v −v ] ;
end
Fp ( e , : ) = [ 1 0 0 1 ] ;
end
Vp0 = Vp ;
27
7.3 Impact of two elastic bodies 7 EXAMPLES
See L i s t 8
% u p d a t e n o d a l momenta
nmomentum = nmomentum + n i f o r c e ∗ d t i m e ;
% nodes t o p a r t i c l e s
See L i s t 9
% s t o r e time , v e l o c t y f o r p l o t t i n g
p o s { i s t e p } = xp ;
v e l { i s t e p } = vp ;
% update the element p a r t i c l e l i s t
f o r p = 1 : p Co u n t
x = xp ( p , 1 ) ;
y = xp ( p , 2 ) ;
e = f l o o r ( x / d e l t a X ) + 1 + numx2∗ f l o o r ( y / d e l t a Y ) ;
pElems ( p ) = e ;
end
f o r e = 1 : elem Co u n t
i d = f i n d ( pElems ==e ) ;
m p o i n t s { e }= i d ;
end
% VTK o u t p u t
i f ( mod ( i s t e p , i n t e r v a l ) == 0 )
xp = p o s { i s t e p } ;
v t k F i l e = s p r i n t f ( ’../results/%s%d’ , v t k F i l e N a m e , i s t e p ) ;
V T K P a r t i c l e s ( xp , v t k F i l e , s ) ;
end
% advance to the next time st e p
t = t + dtime ; i s t e p = i s t e p + 1;
end
28
7 EXAMPLES 7.3 Impact of two elastic bodies
nmomentum ( i d , : ) += N( i ) ∗Mp( p i d ) ∗ vp ( p i d , : ) ;
n i f o r c e ( id , 1 ) −= Vp ( p i d ) ∗ ( s t r e s s ( 1 ) ∗ dNIdx + s t r e s s ( 3 ) ∗ dNIdy ) ;
n i f o r c e ( id , 2 ) −= Vp ( p i d ) ∗ ( s t r e s s ( 3 ) ∗ dNIdx + s t r e s s ( 2 ) ∗ dNIdy ) ;
end
end
end
F = ( [ 1 0 ; 0 1 ] + Lp∗ d t i m e ) ∗ r e s h a p e ( Fp ( p i d , : ) , 2 , 2 ) ;
Fp ( p i d , : ) = r e s h a p e ( F , 1 , 4 ) ;
Vp ( p i d ) = d e t ( F ) ∗ Vp0 ( p i d ) ;
dEps = d t i m e ∗ 0 . 5 ∗ ( Lp+Lp ’ ) ;
d sig m a = C ∗ [ dEps ( 1 , 1 ) ; dEps ( 2 , 2 ) ; 2 ∗ dEps ( 1 , 2 ) ] ;
s ( p i d , : ) = s ( p i d , : ) + dsigma ’ ;
e p s ( p i d , : ) = e p s ( p i d , : ) + [ dEps ( 1 , 1 ) dEps ( 2 , 2 ) 2∗ dEps ( 1 , 2 ) ] ;
end
end
The movement of two disks is given in Fig. 18. The collision occurs in a physically realistic
fashion, although no contact law has been specified. Fig. 19 plots the evolution of the kinetic,
strain and total energy.
29
7.3 Impact of two elastic bodies 7 EXAMPLES
Figure 18: Impact of two elastic bodies: time snapshots of the bodies. Top figures: twp bodies
move towards each other and collide. Bottom figures: they bounce back and move far from
each other. These figures were created in Matlab using the scatter command.
30
7 EXAMPLES 7.4 Impact of two elastic rings
2.5
2
Energy
1.5
kinetic
strain
1
total
0.5
0
0 0.5 1 1.5 2 2.5 3 3.5
Time
Figure 19: Impact of two elastic bodies: evolution of strain, kinetic and total energies in time.
Figure 20: Impact of two elastic bodies: problem description. Dimensions are in millimeters.
1
σ= [µ0 (b − I) + λ0 ln JI] (46)
J
where J = det F and b = FFT is the left Cauchy strain tensor; λ0 = K − 2/3µ0 is the first
Lamé constant.
A grid of 100 × 60 elements is adopted
p and each cylinder is discretized by 5488 particles.
The time step was chosen as ∆t = 0.2 E/ρ = 1.5 × 10−6 s. For this problem, it is very
31
8 GENERALIZED INTERPOLATION MATERIAL POINT METHOD-GIMP
hard to find a cutoff value in Equation (22). We therefore used Equation (24) to compute the
nodal velocities which are subsequently used to compute the particle velocity gradient Lp . For
visualization, the particle data (positions and stresses) are written to a VTP file (PolyData) and
processed in Paraview using the filter Glyph.
1
Z
φIp ≡ φI (xp ) = S̄Ip = χ(x − xp )NI (x)dΩ (47)
Vp Ωχ
1
Z
∇φIp ≡ ∇φI (xp ) = ∇S̄Ip = χ(x − xp )∇NI (x)dΩ (48)
Vp Ωχ
where χ(x) is the particle characteristic function centered at the particle position and Ωχ denotes
the current support of this function; NI are the standard linear shape functions. Typically piece-
wise constant particle characteristic function is used
(
1 if x ∈ Ωp
χ(x) = (49)
0 otherwise
More precisely in 1D the following particle characteristic function is usually employed
(
1 if |x| ≤ lp /2
χ(x)p = (50)
0 otherwise
Here lp is the current particle size. The initial particle size is determined by dividing the cell
spacing L by the number of particles per cell. In order to have a closed form expression for
the weighting functions given in Equation (48) so as to avoid numerical integration of these
functions, it is assumed that Ωp is always a rectangle which is aligned with the grid. In this
case, one can explicitly compute the weighting function φ as
32
8 GENERALIZED INTERPOLATION MATERIAL POINT METHOD-GIMP
33
9 IMPLICIT TIME INTEGRATION
node
(a)
(equilibriuum)
particle
(b)
34
9 IMPLICIT TIME INTEGRATION
1
0.8
0.6
0.4
0.2
0
0 0.5 1 1.5 2 2.5 3 3.5 4
node
1
0.8
0.6
0.4
0.2
0
−0.2
−0.4
−0.6
−0.8
−1
0 0.5 1 1.5 2 2.5 3 3.5 4
1
0.8
0.6
0.4
0.2
0
0 0.5 1 1.5 2 2.5 3 3.5 4
Figure 23: One dimensional GIMP basis functions.
Figure 24: Tracking particle domain in GIPM: space cannot be tiled in a general multi-
dimension domain using rectilinear Ωp .
35
10 FLUID-STRUCTURE INTERACTION
5 5
1 2
Figure 25: Larger element connectivity in GIMP (b) than in MPM (a). The connectivity of an
element in GIMP can be determined by getting firstly its neighboring elements (very fast for
structured grids used in MPM/GIMP) and then the nodes of these elements.
other problems with an implicit method can result in a considerable reduction in computational
cost if one is interested only in the low-frequency, bulk motion, and not in the elastic wave
motion.
10 Fluid-structure interaction
• Action of the air on aeronautic structures (aeroelasticity, flutter)
The numerical procedures to solve the Fluid-structure interaction (FSI) problems may be
broadly classified into two approaches
• Monolithic approach: the equations governing the fluid flow and the structure deforma-
tion are solved in a single solver;
• Partitioned approach: the fluid and solid equations are solved separately using different
solvers.
The monolithic approach requires a code developed for this particular FSI problem whereas the
partitioned approach preserves software modularity because an existing flow solver and solid
solver are coupled. On the other hand, development of stable and accurate coupling algorithms
is required in partitioned approaches. Particularly, the fluid-solid interface location is not known
a priori and usually changed in time; thus, the partitioned approach requires the tracking of the
new interface location and its related quantities, which can be cumbersome and error-prone.
36
REFERENCES REFERENCES
The partitioned approach is also referred to as coupling method as there are two models
which are coupled. Within the coupling method, one can differentiate between one-way and
two-way coupling. The coupling is one-way if the motion of a fluid flow influences a solid
structure but the reaction of a solid upon a fluid is negligible. The other way around is also
possible. Moreover, the coupling can be loose or tight coupling.
2
σ f = 2µǫ̇ − µtr(ǫ̇)I − p̂I (53)
3
p̂ = (γ − 1)ρe (54)
e is the specific internal energy and γ is the ratio of specific heats.
References
S.G. Bardenhagen. Energy Conservation Error in the Material Point Method for Solid Mechan-
ics. Journal of Computational Physics, 180(1):383–403, 2002.
D Sulsky and HL Schreyer. Axisymmetric form of the material point method with applications
to upsetting and Taylor impact problems. Computer Methods in Applied Mechanics and
Engineering, 0457825(96), 1996.
D Sulsky, Z Chen, and HL Schreyer. A particle method for history-dependent materials. Com-
puter Methods in Applied Mechanics and Engineering, 5, 1994.
D. Sulsky, H.L. Schreyer, K. Peterson, R. Kwok, and M. Coon. Using the material-point method
to model sea ice dynamics. Journal of Geophysical Research, 112(C2):C02S90, 2007.
AR York, D. Sulsky, and HL Schreyer. The material point method for simulation of thin
membranes. International Journal for Numerical Methods in Engineering, 1456(May 1998),
1999.
37