# Introduction to Scientific Computing#

TU Wien, Institute of Analysis and Scientific Computing

Many scientific challenges require non-trivial software solutions, which have to be tackeled by researchers with diverse skills.

In this class we learn the development of scientific software in a *learning by doing* approach.

We have chosen three typical application areas: Basic Linear Algebra, i.e. computing with vectors and matrices, solution of ordinary differential equations, and numerical solution of partial differential equations.

We think finding a proper abstraction level of the mathematical concepts, and creating types in the sense of C++ classes is of utmost importance. Then complex algorithms can be written down in a readable and maintainable way.

Many thanks go to Matthias Hochsteger and Christopher Lackner for their technical help, and to Edoardo Bonetti for careful checking.

This lecture is designed for students in applied mathematics in an early stage. It is given in this form the first time in winter term 23/24. If you have suggestions for improvements, or found some errors, please send them per mail to the author, or open a pull request on the source repo of the book. Many section are still in draft version, and will be cleaned as the class proceeds.

- 19. Partial differential equations
- 20. FEM in Analysis 1:
- 21. Solving the Poisson Equation
- 22. Boundary Conditions
- 23. Iterative Solvers
- 24. 3D Solid Mechanics
- 25. Heat Equation
- 26. Implicit Euler time-stepping
- 27. Wave Equation
- 28. Helmholtz Equation
- 29. Eigenvalue problems
- 30. Stationary Transport Equation
- 31. Instationary Transport Equation
- 32. Navier Stokes Equations
- 33. Computation of Curvature