The finite element method (FEM) is a powerful technique originally developed for numerical solution of complex problems in structural mechanics, and it remains the method of choice for complex systems. In the FEM, the structural system is modeled by a set of appropriate finite elements interconnected at discrete points called nodes. Elements may have physical properties such as thickness, coefficient of thermal expansion, density, Young's modulus, shear modulus and Poisson's ratio.

History 
The origin of finite method can be traced to the matrix analysis of structures  where the concept of a displacement or stiffness matrix approach was introduced. Finite element concepts were developed based on engineering methods in 1950s. The finite element method obtained its real impetus in the 1960s and 1970s by  John Argyris, and co-workers; at the University of Stuttgart, by Ray W. Clough; at the  University of California, Berkeley, by Olgierd Zienkiewicz, and co-workers Ernest Hinton, Bruce Irons; at the University of Swansea, by Philippe G. Ciarlet; at the University of Paris; at Cornell University, by Richard Gallagher and co-workers. The original works such as those by Argyris  and Clough  became the foundation for today’s finite element structural analysis methods.

Straight or curved one-dimensional elements with physical properties such as axial, bending, and torsional stiffnesses. This type of element is suitable for modeling cables, braces, trusses, beams, stiffeners, grids and frames. Straight elements usually have two nodes, one at each end, while curved elements will need at least three nodes including the end-nodes. The elements are positioned at the centroidal axis of the actual members.
 Two-dimensional elements that resist only in-plane forces by membrane action (plane stress, plane strain), and plates that resist transverse loads by transverse shear and  bending action (plates and shells). They may have a variety of shapes such as flat or curved triangles and quadrilaterals. Nodes are usually placed at the element corners, and if needed for higher accuracy, additional nodes can be placed along the element edges or even within the element. The elements are positioned at the mid-surface of the actual layer thickness.
 Torus-shaped elements for axisymmetric problems such as membranes, thick plates, shells, and solids. The cross-section of the elements are similar to the previously described types: one-dimensional for thin plates and shells, and two-dimensional for solids, thick plates and shells.
 Three-dimensional elements for modeling 3-D solids such as machine components, dams, embankments or soil masses. Common element shapes include tetrahedrals and hexahedrals. Nodes are placed at the vertexes and possibly in the element faces or within the element.

Element interconnection and displacement
The elements are interconnected only at the exterior nodes, and altogether they should cover the entire domain as accurately as possible. Nodes will have nodal (vector) displacements or degrees of freedom which may include translations, rotations, and for special applications, higher order derivatives of displacements. When the nodes displace, they will drag the elements along in a certain manner dictated by the element formulation. In other words, displacements of any points in the element will be interpolated from the nodal displacements, and this is the main reason for the approximate nature of the solution.

Practical considerations
From the application point of view, it is important to model the system such that:
 Symmetry or anti-symmetry conditions are exploited in order to reduce the size of the model.
 Displacement compatibility, including any required discontinuity, is ensured at the nodes, and preferably, along the element edges as well, particularly when adjacent elements are of different types, material or thickness. Compatibility of displacements of many nodes can usually be imposed via constraint relations.
 Elements' behaviors must capture the dominant actions of the actual system, both locally and globally.
 The element mesh should be sufficiently fine in order to produce acceptable accuracy. To assess accuracy, the mesh is refined until the important results shows little change. For higher accuracy, the aspect ratio of the elements should be as close to unity as possible, and smaller elements are used over the parts of higher stress gradient.
 Proper support constraints are imposed with special attention paid to nodes on symmetry axes.
Large scale commercial software packages often provide facilities for generating the mesh, and the graphical display of input and output, which greatly facilitate the verification of both input data and interpretation of the results.

Theoretical overview of FEM-Displacement Formulation: From elements, to system, to solution
While the theory of FEM can be presented in different perspectives or emphases, its development for structural analysis follows the more traditional approach via the virtual work principle or the minimum total potential energy principle. The virtual work principle approach is more general as it is applicable to both linear and non-linear material behaviors. The virtual work method is an expression of conservation of energy: for conservative systems, the work added to the system by a set of applied forces is equal to the energy stored in the system in the form of strain energy of the structure's components.

The principle of virtual displacements for the structural system expresses the mathematical identity of external and internal virtual work:

In other words, the summation of the work done on the system by the set of external forces is equal to the work stored as strain energy in the elements that make up the system.

The virtual internal work in the right-hand-side of the above equation may be found by summing the virtual work done on the individual elements. The latter requires that force-displacement functions be used that describe the  response for each individual element. Hence, the displacement of the structure is described by the response of individual (discrete) elements collectively. The equations are written only for the small domain of individual  elements of the structure rather than a single equation that describes the response of the system as a whole (a continuum). The latter would result in an intractable problem, hence the utility of the finite element method. As shown in the subsequent sections, Eq.() leads to the following governing equilibrium equation for the system:

where
 = vector of nodal forces, representing external forces applied to the system's nodes.
 = system stiffness matrix, which is the collective effect of the individual elements' stiffness matrices :.
 = vector of the system's nodal displacements.
 = vector of equivalent nodal forces, representing all external effects other than the nodal forces which are already included in the preceding nodal force vector R. These external effects may include distributed or concentrated surface forces, body forces, thermal effects, initial stresses and strains.

Once the supports' constraints are accounted for, the nodal displacements are found by solving the system of linear equations (), symbolically:

Subsequently, the strains and stresses in individual elements may be found as follows:

where
 = vector of a nodal displacements--a subset of the system displacement vector r that pertains to the elements under consideration.
 = strain-displacement matrix that transforms nodal displacements q to strains at any point in the element.
 = elasticity matrix that transforms effective strains to stresses at any point in the element.
 = vector of initial strains in the elements.
 = vector of initial stresses in the elements.

By applying the virtual work equation () to the system, we can establish the element matrices ,  as well as the technique of assembling the system matrices  and . Other matrices such as , ,  and   are known values and can be directly set up from data input.

Interpolation or shape functions
Let  be the vector of nodal displacements of a typical element. The displacements at any other point of the element may be found by the use of interpolation functions as, symbolically:

where
 = vector of displacements at any point {x,y,z} of the element.
 = matrix of shape functions serving as interpolation functions.

Equation () gives rise to other quantities of great interest:
Virtual displacements that are a function of virtual nodal displacements:
Strains in the elements that result from displacements of the element's nodes:

where  = matrix of differential operators that convert displacements to strains using linear elasticity theory. Eq.() shows that matrix B in () is
Virtual strains consistent with element's virtual nodal displacements:

Internal virtual work in a typical element
For a typical element of volume , the internal virtual work due to virtual displacements is obtained by substitution of () and () into ():

Element matrices
Primarily for the convenience of reference, the following matrices pertaining to a typical elements may now be defined:

Element stiffness matrix

 Equivalent element load vector

These matrices are usually evaluated numerically using Gaussian quadrature for numerical integration.
Their use simplifies () to the following:

Element virtual work in terms of system nodal displacements
Since the nodal displacement vector q is a subset of the system nodal displacements r (for compatibility with adjacent elements), we can replace q with r by expanding the size of the element matrices with new columns and rows of zeros:

where, for simplicity, we use the same symbols for the element matrices, which now have expanded size as well as suitably rearranged rows and columns.

System virtual work
Summing the internal virtual work () for all elements gives the right-hand-side of ():

Considering now the left-hand-side of (), the system external virtual work consists of:
The work done by the nodal forces R:
The work done by external forces  on the part  of the elements' edges or surfaces, and by the body forces 

Substitution of () gives:
 
or

where we have introduced additional element's matrices defined below:

Again, numerical integration is convenient for their evaluation. A similar replacement of q in () with r gives, after rearranging and expanding the vectors :

Assembly of system matrices
Adding (), () and equating the sum to () gives:

Since the virtual displacements  are arbitrary, the preceding equality reduces to:

Comparison with () shows that:
 The system stiffness matrix is obtained by summing the elements' stiffness matrices:

 The vector of equivalent nodal forces is obtained by summing the elements' load vectors:

In practice, the element matrices are neither expanded nor rearranged. Instead, the system stiffness matrix  is assembled by adding individual coefficients  to  where the subscripts ij, kl mean that the element's nodal displacements  match respectively with the system's nodal displacements . Similarly,  is assembled by adding individual coefficients  to  where  matches . This direct addition of  into  gives the procedure the name Direct Stiffness Method.

See also
Finite element method
Flexibility method
Matrix stiffness method
Modal analysis using FEM
List of finite element software packages
Structural analysis
Virtual work
Interval finite element

References

Finite element method
Numerical differential equations