The purpose of computing is insight, not numbers.
– Richard Hamming
All models are wrong; some models are useful.
– George E. P. Box
Scientific computing is about analyzing problems from engineering and the sciences using computational models. The basic philosophy of the area is to find solutions that are right enough to answer application questions, with algorithms and implementations that are fast enough to make the answers useful in practical situations. The area is collaborative and interdisciplinary: to ask sensible questions and include relevant physics requires application expertise; to design and analyze solution algorithms requires mathematical expertise; and to build software to perform the computation requires software expertise. My own work emphasizes all three of these aspects. I enjoy formulating mathematical models, identifying mathematical structure that can be exploited in novel solution algorithms, and producing software packages that others can use.
Scientific computing problems feature approximation across many levels, from the model formulation and parameters to the solution procedure to the use of floating point arithmetic. To produce broadly applicable software tools and algorithms, it is therefore necessary to understand not only how much error might result from each specific approximate step, but how to compose approximation methods. It is a creative exercise to find structural features of the “true” answer that should be maintained in order to reason about a composition of approximate building blocks. This is the goal of error analysis: not a tedious book-keeping exercise, but a fundamental part of the science of scientific computing.
The main focus of work in scientific computing is using numerical linear algebra to solve a variety of applications problems from mechanical and electrical engineering and from within computer science.