Whether you're simulating the electronic structure of a carbon nanotube or the strain within an automobile part, the
calculations usually boil down to a simple matrix equation,
`Ax = f`

. The faster you can fill the
matrix `A`

with the coefficients for your partial
differential equation (PDE), and the faster you can solve for
the vector `x`

given a forcing function `f`

, the faster you have your overall solution. Things get interesting when the matrix `A`

is too large to fit in the memory available on one machine, or when the coefficients in `A`

cause the matrix to be ill-conditioned.

Many different algorithms have been developed to map a PDE onto a matrix, to pre-condition the matrix to a better form, and to solve the matrix with blinding speed. Different algorithms usually exploit some property of the matrix, such as symmetry, to reduce either memory requirements or solution speed or both.

Learn more about algorithms from the many resources on this site, listed below.