Building a scientific simulation environment for finite element methods is a complicated task.
The demand for accurate solutions of increasingly complicated real-world problems means that the underlying data structures also become increasingly complicated.