C++ for Numerical Simulation

Work in progress ...

Navigation


Regression

  • Getting Started
    • hello_world.cpp
    • functions.cpp
    • class_library.cpp
    • class_template_library.cpp
  • 1D
    • static library
    • template library
  • nD
    • template library

Part I

Getting Started

  • first steps
    • motivation
    • running story
    • development infrastructure
    • hello_world.cpp
      • variables and initialization
      • basic i/o and namespace std (<iostream>)
      • assignments and mathematical expressions (<cmath>)
      • basic computer architecture
      • Boolean conditions and defensive programming (<cassert>)
      • comments
    • compilation
      • errors and warnings
      • pipeline
    • make
    • functions.cpp
      • user-defined functions
      • using namespace
  • class library
    • user-defined data types, std::vector,  loops
  • class template library
    • file i/o, branches, command-line parameters

Data

  • built-in data types
  • floating-point arithmetic
  • references
  • pointers and static arrays
  • differentiation by finite differences

Algorithms

  • expressions and assignments
  • control flow structures
  • user-defined functions (passing parameters, recursion)

Templates

  • type-generic user-defined functions
  • type-generic user-defined data types

Libraries

  • std::containers
  • Eigen

Classes

Class Hierarchies

    Overloading

    • tangent AD

    Dynamic Memory Management

    • dynamic arrays
    • classes
    • class hierarchies

    Variants

    Introduction to Programming

    • full contents of Part I
    • Selfstudy:

    Introduction to Numerical Methods and Software

    • Getting Started 
    • advanced design based on nD
      • abstract_solver etc.
      • dco/c++

    Simulation Software Development Lab

    • advanced design based on nD
    • ODE solver + calibration of initial condition