Computational science (also scientific computing or scientific computation (SC)) is a rapidly growing multidisciplinary field that uses advanced computing capabilities to understand and solve complex problems. It is an area of science which spans many disciplines, but at its core it involves the development of models and simulations to understand natural systems. Nature is a complex system that processes information, computational science aims to make the complexity of those systems tractable.
Computational science seeks to explain the complex world we live in using technological simulations. By collecting data and creating computer models, computational scientists can make predictions on varying problems such as how to influence the flow of traffic, how an epidemic will spread or the probability of individuals in society becoming addicted to drugs. The discipline relies heavily on algorithmic-driven procedures (step-by-step procedure for solving a problem in a limited number of steps), but also involves lots of mathematics and logic. Computational science fuses three distinct elements:
- Algorithms (numerical and non-numerical), mathematical and computational modeling and simulation developed to solve science (e.g., biological, physical, and social), engineering, and humanities problems
- Computer and information science that develops and optimizes the advanced system hardware, software, networking, and data management components needed to solve computationally demanding problems
- The computing infrastructure that supports both the science and engineering problem solving and the developmental computer and information science
In practical use, it is typically the application of computer simulation and other forms of computation from numerical analysis and theoretical computer science to solve problems in various scientific disciplines. The field is different from theory and laboratory 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. In some cases, these models require massive amounts of calculations (usually floating-point) and are often executed on supercomputers or distributed computing platforms.
- 1 Applications of computational science
- 2 Methods and algorithms
- 3 Conferences and journals
- 4 Education
- 5 Related fields
- 6 See also
- 7 References
- 8 Additional sources
- 9 External links
Applications of computational science
Problem domains for computational science/scientific computing include:
Urban complex systems
Now in 2015 over half the worlds population live in cities. By the middle of the 21st century, it is estimated that 75% of the world’s population will be urban. This urban growth is focused in the urban populations of developing counties where cities dwellers will more than double, increasing from 2.5 billion in 2009 to almost 5.2 billion in 2050. Cities are massive complex systems created by humans, made up of humans and governed by humans. Trying to predict, understand and somehow shape the development of cities in the future requires complexity thinking, and requires computational models and simulations to help mitigate challenges and possible disasters. The focus of research in urban complex systems is, through modelling and simulation, build greater understanding of city dynamics and help prepare for the coming urbanisation.
In today’s financial markets huge volumes of interdependent assets are traded by a large number of interacting market participants in different locations and time zones. Their behavior is of unprecedented complexity and the characterization and measurement of the risk inherent to these highly diverse set of instruments is typically based on complicated mathematical and computational models. Solving these models exactly in closed form, even at a single instrument level, is typically not possible, and therefore we have to look for efficient numerical algorithms. This has become even more urgent and complex recently, as the credit crisis has clearly demonstrated the role of cascading effects going from single instruments through portfolios of single institutions to even the interconnected trading network. Understanding this requires a multi-scale and holistic approach where interdependent risk factors such as market, credit and liquidity risk are modelled simultaneously and at different interconnected scales.
Exciting new developments in biotechnology are now revolutionizing biology and biomedical research. Examples of these techniques are high-throughput sequencing, high-throughput quantitative PCR, intra-cellular imaging, in-situ hybridization of gene expression, three-dimensional imaging techniques like Light Sheet Fluorescence Microscopy and Optical Projection, (micro)-Computer Tomography. Given the massive amounts of complicated data that is generated by these techniques, their meaningful interpretation, and even their storage, form major challenges calling for new approaches. Going beyond current bioinformatics approaches, computational biology needs to develop new methods to discover meaningful patterns in these large data sets. Model-based reconstruction of gene networks can be used to organize the gene expression data in systematic way and to guide future data collection. A major challenge here is to understand how gene regulation is controlling fundamental biological processes like biomineralisation and embryogenesis. The sub-processes like gene regulation, organic molecules interacting with the mineral deposition process, cellular processes, physiology and other processes at the tissue and environmental levels are linked. Rather than being directed by a central control mechanism, biomineralisation and embryogenesis can be viewed as an emergent behavior resulting from a complex system in which several sub-processes on very different temporal and spatial scales (ranging from nanometer and nanoseconds to meters and years) are connected into a multi-scale system. One of the few available options to understand such systems is by developing a multi-scale model of the system.
Complex systems theory
We live in a complex world and are surrounded by complex systems: from a biological cell, made of thousands of different molecules that seamlessly work together, to millions of computer systems that should work together, to our society, a collection of seven billion individuals that try to work and live together. These complex systems display endless signatures of order, disorder, self-organization and self-annihilation. Understanding, quantifying and handling this complexity is one of the biggest scientific challenges of our time. Using information theory, non-equilibrium dynamics and explicit simulations computational systems theory tries to uncover the true nature of complex adaptive systems.
The human body is a very intriguing dynamic multi-scale complex system. It is extremely robust against day-to-day challenges posed by the environment is which it lives, but also against diseases or against trauma. Unfortunately, it also has single points of failure, and targeted attacks may be fatal. Moreover, many nudges to the body may push it over a tipping point, leading to a fast deterioration of all of its major organ systems. The aim of computational bio-medicine is to obtain a deeper understanding of health and disease, of healthy living and ageing, by developing data driven multi scale models of (patho)physiology. The challenge is to develop a holistic view of health and disease, to study the human body as a dynamic multi scale complex systems, and to apply recent insights from complex systems theory to physiology.
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
- Finite element method
- Graph theoretic suites
- High order difference approximations via Taylor series and Richardson extrapolation
- Methods of integration on a uniform mesh: rectangle rule (also called midpoint rule), trapezoid rule, Simpson's rule
- Runge Kutta method for solving ordinary differential equations
- Monte Carlo methods
- Molecular dynamics
- Linear programming
- Branch and cut
- Branch and Bound
- Numerical linear algebra
- Computing the LU factors by Gaussian elimination
- Cholesky factorizations
- Discrete Fourier transform and applications.
- Newton's method
- Space mapping
- Time stepping methods for dynamical systems
Both historically and today, Fortran remains popular for most applications of scientific computing. Other programming languages and computer algebra systems commonly used for the more mathematical aspects of scientific computing applications include GNU Octave, Haskell, Julia, Maple, Mathematica, MATLAB, Python (with third-party SciPy library), Perl (with third-party PDL library), R, SciLab, and TK Solver. The more computationally intensive aspects of scientific computing will often use some variation of C or Fortran and optimized algebra libraries such as BLAS or LAPACK.
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 computing 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.
Computational science is now commonly considered a third mode of science, complementing and adding to experimentation/observation and theory. The essence of computational science is numerical algorithm and/or computational mathematics. In fact, substantial effort in computational sciences has been devoted to the development of algorithms, the efficient implementation in programming languages, and validation of computational results. A collection of problems and solutions in computational science can be found in Steeb, Hardy, Hardy and Stoop, 2004.
Conferences and journals
In the year 2001, the International Conference on Computational Science (ICCS) was first organised. Since then it has been organised yearly. ICCS is an A-rank conference in CORE classification.
The international Journal of Computational Science published its first issue in May 2010. A new initiative was launched in 2012, the Journal of Open Research Software. In 2015, ReScience  dedicated to the replication of computational results has been started on GitHub.
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, master's and doctoral programs in computational science. The joint degree programme master program computational science at the University of Amsterdam and the Vrije Universiteit was the first full academic degree offered in computational science, and started in 2004. In this programme, students:
- learn to build computational models from real-life observations;
- develop skills in turning these models into computational structures and in performing large-scale simulations;
- learn theory that will give a firm basis for the analysis of complex systems;
- learn to analyse the results of simulations in a virtual laboratory using advanced numerical algorithms.
- Computational archaeology
- Computational biology
- Computational chemistry
- Computational materials science
- Computational economics
- Computational electromagnetics
- Computational engineering
- Computational finance
- Computational fluid dynamics
- Computational forensics
- Computational geophysics
- Computational history
- Computational informatics
- Computational intelligence
- Computational law
- Computational linguistics
- Computational mathematics
- Computational mechanics
- Computational neuroscience
- Computational particle physics
- Computational physics
- Computational sociology
- Computational statistics
- Computer algebra
- Computer simulation
- Financial modeling
- Geographic information system (GIS)
- High-performance computing
- Machine learning
- Network analysis
- Numerical linear algebra
- Numerical weather prediction
- Pattern recognition
- Scientific visualization
- Computational science and engineering
- Comparison of computer algebra systems
- List of molecular modeling software
- List of numerical analysis software
- List of statistical packages
- Timeline of scientific computing
- Simulated reality
- Extensions for Scientific Computation (XSC)
- Computational Science: Ensuring America’s Competitiveness. Computational Science: Ensuring America’s Competitiveness. President’s Information Technology Advisory Committee. June 2005.
- Phillips, Lee (2014-05-07). "Scientific computing’s future: Can any coding language top a 1950s behemoth?". Ars Technica. Retrieved 2016-03-08.
- Landau, Rubin (2014-05-07). "A First Course in Scientific Computing" (PDF). Princeton University. Retrieved 2016-03-08.
- Mathematica 6 Scientific Computing World, May 2007
- Graduate Education for Computational Science and Engineering.Siam.org, Society for Industrial and Applied Mathematics (SIAM) website; accessed Feb 2013.
- Nonweiler T. R., 1986. Computational Mathematics: An Introduction to Numerical Approximation, John Wiley and Sons
- Steeb W.-H., Hardy Y., Hardy A. and Stoop R., 2004. Problems and Solutions in Scientific Computing with C++ and Java Simulations, World Scientific Publishing. ISBN 981-256-112-9
- Sloot, Peter; Coveney, Peter; Dongarra, Jack. "Redirecting". Journal of Computational Science. 1 (1): 3–4. doi:10.1016/j.jocs.2010.04.003.
- Seidel, Edward; Wing, Jeannette M. "Redirecting". Journal of Computational Science. 1 (1): 1–2. doi:10.1016/j.jocs.2010.04.004.
- Sloot, Peter M.A. "Computational science: A kaleidoscopic view into science". Journal of Computational Science. 1 (4). doi:10.1016/j.jocs.2010.11.001.
- The Journal of Open Research Software ; announced at software.ac.uk/blog/2012-03-23-announcing-journal-open-research-software-software-metajournal
- The ReScience Journal announced during EuroScipy 2015
- E. Gallopoulos and A. Sameh, "CSE: Content and Product". IEEE Computational Science and Engineering Magazine, 4(2):39–43 (1997)
- G. Hager and G. Wellein, Introduction to High Performance Computing for Scientists and Engineers, Chapman and Hall (2010)
- A.K. Hartmann, Practical Guide to Computer Simulations, World Scientific (2009)
- Journal Computational Methods in Science and Technology (open access), Polish Academy of Sciences
- Journal Computational Science and Discovery, Institute of Physics
- R.H. Landau, C.C. Bordeianu, and M. Jose Paez, A Survey of Computational Physics: Introductory Computational Science, Princeton University Press (2008)
|Wikiversity has learning resources about Scientific computing|
- John von Neumann-Institut for Computing (NIC) at Juelich (Germany)
- The National Center for Computational Science at Oak Ridge National Laboratory
- Educational Materials for Undergraduate Computational Studies
- Computational Science at the National Laboratories
- Bachelor in Computational Science, University of Medellin, Colombia, South America
- Simulation Optimization Systems (SOS) Research Laboratory, McMaster University, Hamilton, ON