Miscellaneous notes on FEM
The matrix notations of Elasticity
Let the stress–strain ($\bs{\sigma}$–$\bs{\epsilon}$) relation ${\sigma} = [D]{\epsilon}$ be denoted as
where
For the plain strain problem, \eqref{eq:stress_strain} is reduced to
For the plain stress problem, we only need to replace $E$ with $E/(1-\nu^2)$ and $\nu$ with $\nu/(1-\nu)$ in \eqref{eq:plain_strain}.
In the case of axis-symmetric problem, we adopt the cylindrical coordinate and let $z$ be the symmetric axis. The non-zero components of stress are
and the non-zero components of strain are
The elastic matrix $[D]$ is
Element stiffness matrix and force vector (2D)
- Plain strain problem
Let $n$ be the number of node in an element. We adopt the isoparametric element, that is, the coordinate transformation and the displacement interpolation use the same shape functions. More precisely, the coordination transformation that transforms a global element to a standard, parent element through the isoparametric mapping is
where $(x_i,y_i)$ are the global coordinate of the $i_{th}$ node, $N_i$ is the shape function. The displacements are interpolated as
where $(u_i,v_i)$ are the displacement of the $i_{th}$ node.
Now suppose $n = 4$ and consider the plain strain case. By substituting the interpolated displacements \eqref{eq:uv_interpolate} into \eqref{eq:strain} for the 2D case we obtain
where
$\delta^e = [\delta_1^T, \delta_2^T, \delta_3^T, \delta_4^T]$, and $\delta_i = [u_i, v_i]^T$. Thus from \eqref{eq:plain_strain} we have
The element stiffness matrix is
where $j$ is the Jacobian determinant of
Note that
We compute the element stiffness matrix \eqref{eq:elem_stiff} numerically using the Gauss–Legendre quadrature rule, i.e.,
where $(\xi_i,\eta_i)$ and $w_i$ are the quadrature point and weight, respectively.
The force vector due to the body force is
where $[N] = [N^1, N^2, N^3, N^4]$ and
- Axis-symmetric problem
For the axis-symmetric problem, the coordinate transformation and displacement interpolation are
From \eqref{eq:axisym_epsilon} we have
and $\delta_i = [u_i, w_i]^T$. The element stiffness matrix becomes
The force vector due to the body force becomes
- Numerical integration
A good introduction to numerical introduction can be found in Sec. 5.5, p.455 of the book Finite Element Procedures (second edition) by Klaus-Jurgen Bathe. A polynomial up to the order $2N-1$ is integrated exactly when using a $N$-node Gauss quadrature. If a lower-order Gauss quadrature is used to compute the stiffness matrix, it can lead the stiffness matrix to be singular. In that case, a spurious zero energy mode or hourglass mode may exist. That is to say, there exists some particular displacement mode that has zero strain at the Gauss quadrature points. See more detailed discussion of spurious zero energy mode on p.239 of the book The Finite Element Method: Linear Static and Dynamic Finite Element Analysis by T. J. R. Hughes or here.
Nonlinear body force field
Consider a linear elastic, boundary value problem with the nonlinear body force $\bs{b}$ dependent on the displacement $\bs{u}$. the governing equation reads
with the boundary conditions
From the Principle of virtual work, we have
where $\delta\bs{u}$ is a virtual displacement filed (test solution) which satisfies $\delta\bs{u} = \bs{o}$ on $\Gamma_u$, and $\delta\bs{\epsilon} = \text{sym}(\nabla\delta\bs{u})$. Since $\bs{\sigma} = \bs{C}:\nabla\bs{u}$, the \eqref{eq:virtualwork} becomes
We use the Newton-Raphson method to solve the nonlinear problem \eqref{eq:virtualwork1}. Suppose the displacement $\bs{u} + d\bs{u}$ satisfies \eqref{eq:virtualwork1}, then we have
To the first order approximation, in the index form, the \eqref{eq:virtualwork2} can be rewritten as
Note that $C_{ijkl} = \lambda \delta_{ij} \delta_{kl} + \mu (\delta_{ik} \delta_{jl} + \delta_{il} \delta_{jk})$. According to the Galerkin method in FEM, we choose
and substitute $\delta u_i$ and $u_j$ into \eqref{eq:virtualwork3} to obtain