Software and Tools for Computational Engineering, Prof. Dr. Uwe Naumann

Research at STCE is motivated by problems arising in derivative-based methods in computational science and engineering.

In particular, our interest lies in the following areas:

  • Compilers and Tools for Source Code Transformation
  • Data Structures and (Combinatorial) Algorithms
  • Complexity Analysis
  • Parallel Algorithms
  • Numerical Algorithms
  • Applications in Computational Science and Engineering
  • Simulation Software Engineering

Compilers and Tools for Source Code Transformation includes:

  • automata, (attributed) grammars, and formal languages in the context of compiler construction
  • (language-independent) program analysis
  • (language-independent) abstract intermediate representation of numerical simulation programs

Data Structures and (Combinatorial) Algorithms includes:

  • computational graphs and their duals
  • dynamic programming
  • stochastic optimization algorithms, e.g. (logarithmic) simulated annealing
  • (greedy) heuristics for hard problems

Complexity Analysis includes:

  • NP-completeness of Jacobian accumulation
  • NP-completeness of DAG reversal
  • NP-completeness of call tree reversal

Parallel Algorithms includes:

  • use of OpenMP and MPI in numerical algorithms
  • differentiation of OpenMP and MPI programs
  • parallel Jacobian accumulation

Numerical Algorithms includes:

  • matrix-free (truncated) Newton algorithms for nonlinear optimization
  • adjoints in optimal control

Applications in Computational Science and Engineering includes:

  • shape optimization (QinetiQ)
  • meteorology (MPI-M)
  • oceanograpy (MIT)
  • computational fluid dynamics (BAW)

Simulation Software Engineering includes:

  • software engineering methods for the development of numerical simulation software
  • development tools