Computational mechanics is the discipline concerned with the use of computational methods to study phenomena governed by the principles of mechanics. Before the emergence of computational science (also called scientific computing) as a "third way" besides theoretical and experimental sciences, computational mechanics was widely considered to be a sub-discipline of applied mechanics. It is now considered to be a sub-discipline within computational science.
The areas of mathematics most related to computational mechanics are partial differential equations, linear algebra and numerical analysis. The most popular numerical methods used are the finite element, finite difference, and boundary element methods in order of dominance. In solid mechanics finite element methods are far more prevalent than finite difference methods, whereas in fluid mechanics, thermodynamics, and electromagnetism, finite difference methods are almost equally applicable. The boundary element technique is in general less popular, but has a niche in certain areas including acoustics engineering, for example.
With regard to computing, computer programming, algorithms, and parallel computing play a major role in CM. The most widely used programming language in the scientific community, including computational mechanics, is Fortran. Recently, C++ has increased in popularity. The scientific computing community has been slow in adopting C++ as the lingua franca. Because of its very natural way of expressing mathematical computations, and its built-in visualization capacities, the proprietary language/environment MATLAB is also widely used, especially for rapid application development and model verification.
Scientists within the field of computational mechanics follow a list of tasks to analyze their target mechanical process:
- A mathematical model of the physical phenomenon is made. This usually involves expressing the natural or engineering system in terms of partial differential equations. This step uses physics to formalize a complex system.
- The mathematical equations are converted into forms which are suitable for digital computation. This step is called discretization because it involves creating an approximate discrete model from the original continuous model. In particular, it typically translates a partial differential equation (or a system thereof) into a system of algebraic equations. The processes involved in this step are studied in the field of numerical analysis.
- Computer programs are made to solve the discretized equations using direct methods (which are single step methods resulting in the solution) or iterative methods (which start with a trial solution and arrive at the actual solution by successive refinement). Depending on the nature of the problem, supercomputers or parallel computers may be used at this stage.
- The mathematical model, numerical procedures, and the computer codes are verified using either experimental results or simplified models for which exact analytical solutions are available. Quite frequently, new numerical or computational techniques are verified by comparing their result with those of existing well-established numerical methods. In many cases, benchmark problems are also available. The numerical results also have to be visualized and often physical interpretations will be given to the results.
Complex systems that would be very difficult or impossible to treat using analytical methods have been successfully simulated using the tools provided by computational mechanics.