## You are here

# 3. Meshfree methods and the patch test

We are in the framework of small-strain two-dimensional linear elasticity without any body forces. Consider a domain that is discretized by a union of triangles and/or quadrilaterals (`patch of elements'). For C0 conforming approximations such as triangular/quadrilateral finite elements, the finite element approximation can exactly reproduce an arbitrary linear displacement field. Hence, if the exact solution is linear, then the finite element solution must match (within machine precision) the exact solution. In simple terms, passing the patch test for linear elasticity with standard conforming finite elements provides verification of one's implementation and is used to assess the same when new elements are proposed. For conforming elements, it is a sufficient condition for convergence (2nd order PDEs), and hence is the first problem that is solved when a new element/method is proposed. To carry out the patch test, the following steps are performed:

1. Impose any linear displacement field on the boundary of the domain (at all the boundary nodes). Then, the chosen linear displacement field is also the exact solution since it satisfies the equilibrium equations (strains and therefore stresses are constants, and the divergence of the stress tensor is the zero vector) and boundary conditions.

2. Solve the problem using FEM. The nodal values you obtain must be in exact correspondence with the exact nodal displacements.

3. One can compute an error norm of the displacement (for instance, L2 norm) in the entire domain. The error norm result should be close to machine (double) precision, i.e., O(10-16).

The above should hold for different (uniform and nonuniform discretizations) meshes. If so, one says that the element passes the patch test.

Now, moving to meshfree methods. The overall procedure to apply the patch test is similar but with a few caveats and distinctions. At the outset, a few remarks, which I will soon expand upon. If the patch test result is not passed (one must define what is `*not passed *'), then one can point to a few reasons for this outcome: **(A)** the meshfree approximation you have chosen is not linearly complete, **(B)** the essential boundary conditions are not being correctly implemented, **(C)** numerical quadrature is insufficient, and/or **(D)** there is a bug in your code! With displacement-based finite elements, there is no argument---if you do not obtain close to machine precision accuracy, your code is not bug-free! With meshfree methods, there are a few more subtleties. *To start with, let us rule out possibility (D)*!

**Let us assume that a linearly complete meshfree approximation scheme is being used, which like FEM, can reproduce an arbitrary linear displacement field. Furthermore, the essential boundary conditions are being correctly imposed and are met on the entire boundary (see the Kronecker-delta discussion), and not just at the boundary nodes. Meshfree coupling or blending with FEM near the boundary is one approach that is used to strictly enforce the satisfaction of the essential boundary conditions.**

Conditions **(A), (B) and (D)** are strictly met in the chosen meshfree method. This leaves us with just **(C)** to deal with. With Galerkin weak forms, numerical (Gauss) quadrature scheme is used to compute the stiffness matrix. Numerical integration is typically done on `background cells' (finite elements as the integration cells is the common choice) to assemble **K**. The cover or support ωI of a meshfree basis function associated with node I is the region over which the nodal basis function is non-zero. It is often (if one uses moving least squares) a circular domain in 2D, with radius known as the support radius. Integration errors are introduced due to two sources: meshfree basis functions are non-polynomial functions that are not accurately integrated using Gauss quadrature rules, and more importantly, the intersection of the support of meshfree basis functions for node I and node J (say ωI and ωJ) does not coincide with the `background cell' on which integration is being carried out. With finite elements, the latter does not arise: each nodal basis function has support that covers the one-ring neighbors and hence the intersection of ωI and ωJ is precisely a triangle for Delaunay finite elements. This latter source of error in meshfree method is fundamental and can not be fully alleviated even if more quadrature points are used. Hence, patch test error norm results of 10-6 are common with meshfree methods with higher quadrature (for example, 4 x 4 or more in 2D cells; 2 x 2 is used in FEM) on quasi-uniform grids. If grids are very non-uniform with varying support radii for each node, the error norm results could deteriorate.

In closing, I also must mention that promising nodal integration schemes have been developed with the aim of delivering perfect patch test results; in these implementations, additional stabilization is required to suppress the presence of zero-energy/spurious modes (there is no free lunch!). Since most real-world problems are not the patch test, achieving an error of 10-6 on real problems is unrealistic. However, that said, the importance of the patch test should not be overlooked. To gain confidence in meshfree computations, one must ensure that the numerical integration errors are bounded and do not dominate the approximation error. If background cells are used in the numerical integration, trying to attain machine precision accuracy (at any cost) on the patch test might not be needed and/or required. With meshfree methods, one must pay attention to the patch test results (displacements and strains/stresses) since the nodal discretization and other choices that are made can dictate the accuracy of the computations. So, in the meshfree literature if you see `passes the patch test' mentioned in a paper, then it could be viewed and possibly better understood within the context of the above discussion.

## Recent comments