Material Point Method¶
Reference
The Material Point Method for Simulating Continuum Materials, Chenfanfu Jiang, SIGGRAPH 2016 Course Notes Version 1 (May 2016).
Preliminary¶
Contimuum Motion¶
Here \(d\) denotes dimension of the space, usually \(d=2,3\).
We denote \(\pmb{x}\in \Omega^t\subset \mathbb{R}^d\) world (deformed) space(coordinates), current position. Physically, we focus on a fixed position in the space and measurethe velocity of whichever particla that is passing by the position.
Then we denote \(\pmb{X}\in \Omega^0\subset \mathbb{R}^d\) material (undeformed) space(coordinates), or initial position. Physically, we measure velocity from a fixed particle, which has its mass and occupies some volume since the beginning.
Define
which is usually a bijection. This is associated with the assumption that no two different particles of material ever occupy the same space at the same time. So
Example
For a given initial position \(\pmb{X}\), we have some common function of \(\pmb{x}\).
(i) \(\pmb{x}=\pmb{X}+tv(t)\vec{N}\)
discrete form at time \(n\):
(ii) \(\pmb{x}=R\pmb{X}+\vec{b}\)
discrete form at time \(n\):
The velocity of a given material point \(\pmb{X}\) at time \(t\) is a mapping \(V(\cdot,t):\Omega^0\rightarrow \mathbb{R}^d\) defined by
and acceleration \(A(\cdot,t):\Omega^0\rightarrow \mathbb{R}^d\)
Deformation¶
For every small unit in a material, it has a deformation mapping :
Note that \(F\) is also related with both \(\pmb{X}\) and \(t\). And \(J=\det{(F)}\) characterizes infinitesimal volume change.
In Example we have \(\pmb{F}=I\) (i) and \(\pmb{F}=R\) (ii).
The above is rigid transformation, and local.
Push forward and Push back¶
Push forward of a function, is often referred to as Eulerian (a function of \(\pmb{x}\)). That is, given \(G: \Omega^0\rightarrow \mathbb{R}\), the push forward \(g(\cdot, t):\Omega^t\rightarrow \mathbb{R}\) is defined
Push back function is often referred to as Lagrangian (a function of \(\pmb{X}\)). That is, given \(g:\Omega^t\rightarrow \mathbb{R}\), the push back \(G(\cdot,t):\Omega^0\rightarrow \mathbb{R}\) is defined
But we usually do not use push back but push forward more frequently since we can always have access to the grid velocity and acceleration based on the particles around it.
So it is useful to define Eulerian counterparts. The velocity
and the acceleration
The following result is really important:
So
More generally, for a general Eulerian function \(f(\cdot, t):\Omega^t\rightarrow \mathbb{R}\), we can use this same notation to mean
which is called material derivative, and the first item of derivative is called local rate of change. The above one is also the push forward of \(\partial F/\partial t\) where \(F\) is a Lagrangian function with \(F(\cdot,t):\Omega^0\rightarrow \mathbb{R}\).
Relationship between two Deformation Gradients¶
For deformation gradient, most of the time in the physics of a material, the Lagrangian view is the dominant one. There is however a useful evolution of the Eulerian (push forward) of \(\pmb{F}(\cdot,t):\Omega^0\rightarrow \mathbb{R}^{d\times d}\). If we denote \(\pmb{f}(\cdot, t):\Omega^t\rightarrow \mathbb{R}^{d\times d}\) be the push forward of \(\pmb{F}\), then
or
cause we have
The above equation will play an important role in deriving the discretized deformation gradient \(F\) update on each MPM particle.
Volume and Area Change¶
- Volume
Consider \(dV\) being defined over the standard basis vectors \(\vec{e}_i\), \(i=1.2.3\), with \(dV=dL_1\vec{e}_1\cdot (dL_2\vec{e}_2 \times dL_3\vec{e}_3)\). If we denote \(d\pmb{L}_i=dL_i\vec{e}\), then
cause we have \(d\pmb{l}_i=\pmb{F}d\pmb{L}_i\) (like \((\pmb{x}_2-\pmb{x}_1)=\pmb{F}(\pmb{X_2}-\pmb{X}_1)\)), so it can be shown that \(dl_1dl_2dl_3=JdL_1dL_2dL_3\) or
Based on the above property we can have a great weapon in proof. Given function \(G(\pmb{X})\) or \(g(\pmb{x},t)\) we have
Actually it is the variable substitution formula of multiple integral.
- Areas
And similar analysis can be done for areas.
So
which is also called Nansom's formula.
Piola-Kirchhoff Stress¶
Consider a vector element of surface in the material world(Lagrangian), \(\pmb{N}dS\) and after deformation, the material particles making up this area now occupy the element defined by \(\pmb{n}ds\), where \(ds\) is the area and \(\pmb{n}\) is the normal vector in the current configuration(Eulerian).
Then by definition of the Cauchy stress
The first Piola-Kirchhoff stress tensor \(\pmb{P}\) (PK1 stress, Nominal Stress tensor) is defined by
which relates the force acting in the current configuration to the surface element in the reference configuration.
So similarly with (Cauchy) traction vector was defined by
we can introduce a PK1 traction vector
which is a fictitious quatity.
Note that \(d\pmb{f}=\pmb{t}ds=\pmb{T}dS\), so \(\pmb{t}\) and \(\pmb{T}\) at the same area has the same direction but different magnitudes.
- Relation between the Cauchy and PK1 Stresses
From the above definition,
Hyperelasticity¶
Stress is related to strain(Deformation gradient \(F\)) through "Constitutive Relationship".
For perfect hyperelastic materials, the relation is defined through the potential energy, which increases with non-rigid deformation from the initial state. That is, The elastic solids whose first Piola-Kirchoff stress \(\pmb{P}\) can be derived from an strain energy density function \(\Psi(\pmb{F})\) (a scalar function) via
and Cauchy stress with respect to \(\Psi(\pmb{F})\)
Energy density function¶
- Neo-Hookean
where \(d\) denoted dimension, \(2\) or \(3\) in practice and
in which \(E\) is Young's modulus and \(v\) is Poisson's ratio.
- Fixed corotated model
This is derived from the Singular Value Decomposition (SVD). Assuming the polar SVD \(\pmb{F}=U\Sigma V^T\), then the energy for fixed corotated model is
where \(J=\prod\limits_{i=1}^d\sigma_i\) and
Governing Equations¶
Let
be the velocity defined over \(X\). Then from Lagrangian view of point, the equations are
where \(R\) is the Lagrangian mass density which is related to the more commonly used Eulerian mass density \(\rho\). Note that mass conservation can also be written as
In Eulerian view, the governing equations are
where
Conservation of Mass¶
To be more specific, we have two ways to get the Continuity Equation.
By using multiple integral for density.
Notice that
We choose a fixed volume, in which the rate of increase of mass must equal the rate at which mass is flowing into the volume through its bounding surface.
The rate of increase mass in a fixed volume \(v\) is
while the mass flux out through the surface is given by
here \(s\) can denote the overall outer surface of the material(we consider in and out).
so combine the above two we get
using divergence theorem, we get
We check the fixed volume in terms of material point. Note \(R(\pmb{X},t)=\rho(\phi(\pmb{X},t),t)\), then we see the mass from initial time to time \(t\) must be the same:
So
Note that \(J(\pmb{X},0)=1\), so \(R(\pmb{X},t)J(\pmb{X},t)=R(\pmb{X},0)J(\pmb{X},0)\), that is,
Conservation of Momentum¶
Also, we have two ways to consider.
Use the similar logic in proof of mass conservation.
This is also the spatial form.
We know that
We consider a fixed mass, so the space occupied by this matter may change over time.
If \(\pmb{v}\) denotes the Eulerian velocity, then the linear momentum of Euler can be denoted as
where
then by \(\pmb{f}^{ext}=\frac{d(m\pmb{v})}{dt}\) formulated by Euler,
Note \(\pmb{V}(\pmb{X},t)=\pmb{v}(\phi(\pmb{X},t),t)\), so we have a fixed volume \(V\) with momentum
So
Material particles¶
Recall that the material point method is Lagrangian in the sense that we track actual particles of material. That is we keep track of mass (\(m_p\)), velocity (\(v_p\)) and position (\(x_p\)) for a collection of material particles \(p\).
However, all stress based forces are computed on the Eulerian grid, so we have to transfer the material state to the Eulerian configuration to incorporate the effects of material forces.
Then, we transfer these effects back to the material particles and move them in the normal Lagrangian way. The Lagrangian nature makes advection very trivial compared to pure Eulerian methods (such as grid-based fluid simulation).
Eulerian Interpolating Functions¶
We can denote the interpolation function at grid node \(\pmb{i}=(i,j,k)\) evaluated at a particle location \(\pmb{x}_p\) with
where \(h\) is the grid spacing. We can define diffenrent kernel \(N:\mathbb{R}\rightarrow \mathbb{R}\).
Common Kernel \(N\)
- cubic kernel. It is more expensive but provide wider coverage, thus less sensitive to numerical errors.
- quadratic kernel. It is more computational efficient and memory saving.
Then the gradient of function \(N_{\pmb{i}}(\pmb{x}_p)\) is
where \(x_k\), \(x_j\) denote the component index of \(\pmb{x}_p\), i.e. \(x_k, x_j\in\{x_p,y_p,z_p\}\).
Eulerian/Lagrangian Mass¶
Mass of the particle
and define the mass from Eulerian perspective
Easy to see that
since the weight function \(N_\pmb{i}(\pmb{x}_p)\) is normalized to \(1\).
Eulerian Momentum¶
Similarly, we transfer particle monentum \(m_p\pmb{v}_p\) to the grid
Also easy to that
and the Eulerian velocity \(\pmb{v}_\pmb{i}\) is defined as
Eulerian to Lagrangian Transfer¶
We do not need to transfer mass from the grid to the particles since Lagrangian particle mass never changes. But the Velocity is simply interpolated as
Easy to see that
Discretization¶
Explicite time Integration¶
APIC Transfers¶
Transfer from particle to grid
where \(\pmb{B}_p\) is a matrix quatity stored at each particle(like mass, position and velocity), \(\pmb{D}_p\) is given by
which has a simple form \(\frac{1}{4}\Delta x^2\pmb{I}\) for quadratic and \(\frac{1}{3}\Delta x^2\pmb{I}\) for cubic interpolation stencils.
Then from grid to particle
Deformation Gradient Update¶
Given \(f_p\), we can update the position and velocity of the grid
Given a grid velocity field \(\pmb{v}_i^{n+1}\), we can update \(F\) as
Forces¶
MPM Forces are defined on grid nodes. If we assume a deformation gradient based hyperelastic energy density, then the total elastic potential energy is then
where \(V_p^0\) is the material space volume of particle.
Nodal elastic force is the negative gradient of the total potential energy evaluated at nodal positions. So the MPM spatial discretization of the stress-based forces is given as
which fully depends on the existing particle/grid weights and particle attributes.