Gauss quadrature in finite elements: how many points
Element stiffness matrices are integrals, and in a finite element program they are evaluated by Gauss-Legendre quadrature, whose defining property is that an n-point rule integrates polynomials up to degree 2n-1 exactly. Using too few points is not a small loss of accuracy: a four-node quadrilateral integrated at one point has two deformation modes that produce no strain at the sampling point and therefore no energy, so the element resists them with zero stiffness. This article computes the quadrature errors, counts the spurious modes for four element and rule combinations, and states where an exact integration is impossible in principle.
An element stiffness matrix is an integral over the element:
Nobody evaluates it analytically. It is computed by sampling the integrand at a few points and taking a weighted sum, and the choice of how many points is one of the few decisions in a finite element program that changes the answer qualitatively rather than by a percentage.
Every number in this article is recomputed from its inputs by a script that runs on each build of this site.
The rule and its one propertyPermalink to “The rule and its one property”
Gauss-Legendre quadrature on approximates
with abscissae and weights chosen so that the rule is exact for polynomials of the highest degree possible. Both the points and the weights are free, so conditions can be satisfied, and the rule is exact to degree .
| Abscissae | Weights | Exact to degree | |
|---|---|---|---|
| 1 | 0 | 2 | 1 |
| 2 | 1, 1 | 3 | |
| 3 | , 0 | 5/9, 8/9, 5/9 | 5 |
That single property — exact to — is the whole design rule. Everything below follows from it.
What under-integration costs on a plain integralPermalink to “What under-integration costs on a plain integral”
Take , whose exact value is :
| Result | Error | |
|---|---|---|
| 1 | 0.000000 | −100.0000% |
| 2 | 0.222222 | −44.4444% |
| 3 | 0.400000 | 0 |
The one-point rule returns exactly zero, because the integrand vanishes at and the rule sees nothing else. This is not a rounding matter. The rule is blind to a function that happens to be zero where it looks, and that blindness is the mechanism behind everything in the next section.
Three points integrate the quartic exactly because . Move to and three points give 0.240000 against ; four are needed, since .
Spurious modes: the same blindness, in an elementPermalink to “Spurious modes: the same blindness, in an element”
A plane element with nodes has degrees of freedom, of which three are rigid body motions. The remaining are deformation modes, and each must be resisted by some stiffness or the element is singular in that direction. Each integration point supplies three independent constraints in plane analysis, one for each in-plane stress component.
Counting the two against each other:
| Element and rule | DOF | Deformation modes | Constraints | Spurious modes |
|---|---|---|---|---|
| 4-node quad, 2×2 | 8 | 5 | 12 | 0 |
| 4-node quad, 1 point | 8 | 5 | 3 | 2 |
| 8-node quad, 3×3 | 16 | 13 | 27 | 0 |
| 8-node quad, 2×2 | 16 | 13 | 12 | 1 |
| 9-node quad, 2×2 | 18 | 15 | 12 | 3 |
A spurious mode is a displacement pattern that produces zero strain at every sampling point while producing real strain everywhere else. The element stores no energy in it, so the assembled stiffness matrix has a zero eigenvalue, and the mode is free to grow without bound. In the four-node quadrilateral these are the two hourglass modes, so called from the shape a row of them makes.
The counting is necessary but not sufficient — it says how many modes can be spurious, not that they are — and in a real mesh boundary conditions often suppress them. “Often” is the problem. A mode that is restrained in one mesh and free in the next, with no warning either way, is precisely the kind of behaviour a solver should not have.
When exact integration is impossiblePermalink to “When exact integration is impossible”
For an undistorted rectangular element the integrand is a polynomial and there is a rule that integrates it exactly. For a distorted element there is not, and no number of points will produce one.
The reason is the Jacobian. Mapping from the reference square to a general quadrilateral introduces a factor that varies over the element, and the strain-displacement matrix carries . The integrand therefore contains a rational function — polynomials divided by — and Gauss-Legendre is a polynomial rule.
So on any mesh with distorted elements, “full integration” is a convention, not a statement of exactness: it means the rule that would be exact if the element were a parallelogram. This is worth knowing because it is one of several reasons why two programs using nominally the same element can disagree in the fourth digit, and why a benchmark reproduced to 0.03% needs its mesh stated along with its answer.
Why anybody under-integrates on purposePermalink to “Why anybody under-integrates on purpose”
Given the above, reduced integration looks indefensible. It is used anyway, for two reasons.
The first is cost. The number of points goes as in two dimensions and in three, and the constitutive routine is called at every point of every element at every iteration. Dropping a 3×3 rule to 2×2 removes five of every nine constitutive evaluations from a nonlinear analysis.
The second is better: full integration makes elements too stiff in near-incompressible conditions. The volumetric constraint is enforced at every integration point, so a fully integrated element carries more constraints than it has freedoms to satisfy them with, and it locks — returning collapse loads that are systematically high. Reducing the number of points reduces the number of constraints, which is exactly the cure, and exactly the disease described three sections above.
The honest resolutions are selective integration, which under-integrates only the volumetric term while integrating the deviatoric term fully; stabilisation, which adds an artificial stiffness targeted at the hourglass modes and nothing else; or higher-order elements, which have enough freedoms that full integration does not lock them. The last is why the fifteen-node triangle exists and why element choice is a modelling decision rather than a preference: with a lower-order element the computed limit load is wrong in a known direction, and no mesh refinement removes it.
That last point is worth stating plainly, because it is the practical consequence of all of the above: element type, integration rule and mesh are not three independent settings. They are one decision, and a result quoted without all three is not reproducible — which is the same argument that a verification suite rests on.