GWR GmbH develops algorithms and software for problems in applied mathematics. Our focus is on mathematical modeling, numerical simulation, efficient algorithms, and high-performance software implementation. In addition, the spectrum ranges from developing and analyzing mathematical models to implementing robust, scalable computational methods. For detailed examples and background, see the Blog and in the overview of the fields of expertise below.
Simulations

Algorithms
A problem should be solved with the “right” algorithm, because the choice of algorithm is crucial for efficiency. A classic example is the fast Fourier transform (FFT). Compared to the direct evaluation of the trigonometric sum formula, it provides a significant improvement. While the naive method requires \(\mathcal{O}(n^2)\) steps, the FFT needs only \(\mathcal{O}(n \log n)\).
Interestingly, the development of the fast Fourier transform by Cooley and Tukey in the early 1960s was driven by the need to analyze large amounts of data from seismic observations of nuclear weapons tests.
In combinatorial optimization and resource planning, the algorithmic strategy determines whether usable solutions can be found at all. The Traveling Salesman Problem (TSP) shows exemplarily that suitable heuristics and metaheuristics produce tours close to the optimum, while a naive search (brute force) is not practical for realistic instances.
The example on modular exponentiation shows how choosing the right method can dramatically speed up runtime. In practice, the computation time drops from 10 seconds to just a few microseconds.
The numerical solution of the radiosity equation for computing energy transport by thermal radiation, as well as parameter identification, also illustrates how much a suitable algorithm influences the result, both in terms of stability and computational efficiency.
Programming
Software, especially simulation software, should evolve continuously to fully exploit modern hardware. To achieve this, specialized techniques such as OpenMP and Threading Building Blocks for multicore architectures, as well as SYCL for cross-platform programming (CPU + GPU), play a key role. These techniques enable efficient use of modern hardware and help maximize application performance. A practical example is the post on preamble detection, where a GPU version of the FFT enables faster pattern recognition.
Thematic Focus
- Numerical simulations
- Mathematical models
- Fast solution of large linear systems
-
C++ programming, in particular
- Parallelization and multicore applications, MPI, OpenMp and Threading Building Blocks
- Flow simulations with OpenFOAM
- Visualization
- Algorithmic geometry
- Cloud computing: Scalable HPC environments and automated workflows in the cloud (Azure HPC & Jenkins).
-
Artificial intelligence in simulation & software development
- Physics-Informed Neural Networks (PINNs) & Operator Networks (PINOs): Modern machine-learning models that integrate physical laws directly into neural networks. PINNs approximate individual solutions of physical equations (functions). PINOs learn entire solution operators, i.e., mappings between function spaces. Both approaches combine data-driven methods with physical prior knowledge.
- Anomaly detection in time series with deep learning
- AI-supported tools are also used in software development. One example is AI-supported commit automation.
- Combinatorial optimization, resource planning.
Various programming languages and tools are used, including C++, Lua, Python, Java, and shell scripts. Git is used for version control, and Jenkins for automation and continuous optimization of workflows.
Further examples and background can be found in the post overview.