Algorithms — Numerical Methods — Mathematics

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
Simulation of fresh-air distribution in a greenhouse simulation with Age of Air theory algorithms
Fresh-air distribution in a greenhouse: “Age of air” theory
Numerical simulations are used in many application areas, for example in flow simulations in automotive engineering, finite-element analyses to calculate stresses and deformations in components, or in modeling financial markets and weather developments. Many methods are based on mathematical models from physics that can represent complex phenomena realistically. Increasingly, artificial intelligence methods are also used, for example to accelerate computations or to evaluate large data sets. As a result, simulations enable virtual experiments that contribute to the development of new products or the optimization of technical processes, for example in science, industry, and engineering.
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

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.