Applications of Computational Science
Applications of Computational Science
Contents
[hide]
Numerical simulations[edit]
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, and
primordial explosions).
Model fitting and data analysis[edit]
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, such as those connecting individuals, organizations,
websites, and biological systems.
Computational optimization[edit]
Main article: Mathematical optimization
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.
[2][3]
Other programming languages and computer algebra systems commonly used for the more
mathematical aspects of scientific computing applications include GNU Octave, Haskell,[2] Julia,
[2]
Maple,[3] Mathematica,[4] MATLAB, Python (with third-party SciPy library), Perl (with third-
party PDL library),[citation needed] 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.[5] The essence of computational science
is numerical algorithm[6]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.[7]
Journals[edit]
Most scientific journals do not accept software papers because a description of a reasonably
mature software usually does not meet the criterion of novelty.[citation needed] Outside computer science
itself, there are only few journals dedicated to scientific software. Established journals
like Elsevier's Computer Physics Communications publish papers that are not open-access
(though the described software usually is). To fill this gap, a new journal entitled Open research
computation was announced in 2010;[15] it closed in 2012 without having published a single paper,
for a lack of submissions probably due to excessive quality requirements.[16] A new initiative was
launched in 2012, the Journal of Open Research Software. [17] In 2015, a new journal [18] dedicated
to the replication of computational results has been started on GitHub.
Education[edit]
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, scientific
computation, or all three degrees bachelor's, master's and PhD in scientific computing.[19]
There are also programs in areas such as computational physics, computational chemistry, etc.