Computational science (or scientific computing) is the field of study concerned with constructing mathematical models and numerical solution techniques and using computers to analyse and solve scientific, social scientific and engineering problems. In practical use, it is typically the application of computer simulation and other forms of computation to problems in various scientific disciplines.
The field is distinct from computer science (the mathematical study of computation, computers and information processing). It is also different from theory and experiment which are the traditional forms of science and engineering. The scientific computing approach is to gain understanding, mainly through the analysis of mathematical models implemented on computers.
Scientists and engineers develop computer programs, application software, that model systems being studied and run these programs with various sets of input parameters. Typically, these models require massive amounts of calculations (usually floating-point) and are often executed on supercomputers or distributed computing platforms.
Numerical analysis is an important underpinning for techniques used in computational science.
Applications of computational science
Problem domains for computational science/scientific computing include:
Numerical simulations have different objectives depending on the nature of the task being simulated:
- Reconstruct and understand known events (e.g., earthquake, tsunamis and other natural disasters).
- Predict future or unobserved situations (e.g., weather, sub-atomic particle behaviour).
Model fitting and data analysis
- Appropriately tune models or solve equations to reflect observations, subject to model constraints (e.g. oil exploration geophysics, computational linguistics)
- Use graph theory to model networks, especially those connecting individuals, organizations, and websites.
- Optimize known scenarios (e.g., technical and manufacturing processes, front end engineering).
Methods and algorithms
Algorithms and mathematical methods used in computational science are varied. Commonly applied methods include:
- Numerical analysis
- Application of Taylor series as convergent and asymptotic series
- Computing derivatives by Automatic differentiation (AD)
- Computing derivatives by finite differences
- Graph theoretic suites
- High order difference approximations via Taylor series and Richardson extrapolation
- Methods for integration on a uniform mesh: rectangle rule, trapezoid rule, midpoint rule, Simpson's rule
- Runge Kutta method for solving ordinary differential equations
- Monte Carlo methods
- Numerical linear algebra
- Computing the LU factors by Gaussian elimination
- Choleski factorizations
- Discrete Fourier transform and applications.
- Newton's method
- Time stepping methods for dynamical systems
Programming languages commonly used for the more mathematical aspects of scientific computing applications include Fortran, MATLAB, SciLab, GNU Octave, COMSOL Multiphysics, and PDL. The more computationally-intensive aspects of scientific computing will often utilize some variation of C or Fortran.
Computational science application programs often model real-world changing conditions, such as weather, air flow around a plane, automobile body distortions in a crash, the motion of stars in a galaxy, an explosive device, etc. Such programs might create a 'logical mesh' in computer memory where each item corresponds to an area in space and contains information about that space relevant to the model. For example in weather models, each item might be a square kilometer; with land elevation, current wind direction, humidity, temperature, pressure, etc. The program would calculate the likely next state based on the current state, in simulated time steps, solving equations that describe how the system operates; and then repeat the process to calculate the next state.
The term computational scientist is used to describe someone skilled in scientific computing. This person is usually a scientist, an engineer or an applied mathematician who applies high-performance computers in different ways to advance the state-of-the-art in their respective applied disciplines in physics, chemistry or engineering. Scientific computing has increasingly also impacted on other areas including economics, biology and medicine.
Scientific computation is most often studied through an applied mathematics or computer science program, or within a standard mathematics, sciences, or engineering program. At some institutions a specialization in scientific computation can be earned as a "minor" within another program (which may be at varying levels). However, there are increasingly many bachelor's and master's programs in computational science. Some schools also offer the Ph.D. in computational science, computational engineering, computational science and engineering, or scientific computation. Check External Links below for universities that offer computational science programs.
- Computational biology
- Computational chemistry
- Computational economics
- Computational electromagnetics
- Computational engineering
- Computational finance
- Computational fluid dynamics
- Computational mathematics
- Computational mechanics
- Computational particle physics
- Computational physics
- Computational statistics
- Computer algebra
- Environmental simulation
- Financial modeling
- Geographic information system (GIS)
- High performance computing
- Machine learning
- Network analysis
- Numerical weather prediction
- Pattern recognition
- List of numerical analysis software
- Comparison of computer algebra systems
- List of statistical packages
- List of molecular modeling software
- Scientific Computing World
- Links to Downloadable Computational Tools
- SIAM Journal on Scientific Computing
- Computing in Science & Engineering magazine
- Scientific Computing magazine
- Educational Materials for Undergraduate Computational Studies
- Brockport State College Computational Science B.S. program, with reports
- University of Amsterdam International Master Computational Science, MSc program