How can we take large time steps in Computational Fluid Dynamics (CFD) simulations without deteriorating the accuracy of the solution? This question drove my research in the FastFlowSim project. The motivation to take large time steps is to obtain faster CFD simulations which...
How can we take large time steps in Computational Fluid Dynamics (CFD) simulations without deteriorating the accuracy of the solution? This question drove my research in the FastFlowSim project. The motivation to take large time steps is to obtain faster CFD simulations which in turn expedite the product development process.
To stay competitive in a rapidly evolving world, industries and research centres dedicate resources to the development of new and innovative concept-products. CFD simulations play an important role as an auxiliary tool in the transformation of concept-products into viable engineering solutions which can go into production. Such concept-products often have radical engineering designs and incur very high development costs. Hence, a non-performing product can quickly lead to bankruptcy. The only way to minimize the risk of unexpected performance is through greater insight. CFD simulations offer such insight at much higher detail and lower cost than physical experiments.
The aim of the FastFlowSim project is to develop a fast and accurate particle-based time integration scheme for the simulation of incompressible flows. I proposed to achieve this aim by computing the wave-kernel matrix functions that constitute the fundamental solutions of second-order systems.
In the project kick-off meeting the proposed research plan was reviewed and we agreed that the work package WP3 (theoretical analysis) will have a wider scientific impact if the theoretical developments were done for matrices of arbitrary dimensions. The tasks in the work packages WP3 and WP4 were modified to accommodate this generality.
I trained in the theory of matrix functions, backward-error analysis, Padé approximations and in the development of numerically stable algorithms to compute matrix functions. A career development plan was put together to improve my career prospects in academia. Teaching experience, academic service and leadership are essential criteria in any academic job application. As my CV was weak in these areas, I did the following professional development activities.
1. Trained in university research and teaching (New Academic Programme) and public engagement (Royal Society).
2. Taught one-third of a Level 4 course at the School of Mathematics.
3. Assumed an administrative role (member of School\'s Athena SWAN committee).
4. Assumed an organisation role (Numerical Analysis seminars).
The first two work packages of the project are related to project management (WP1) and quality control (WP2). So there are no scientific results to be reported here. The next two work packages related to theoretical analysis (WP3) and software implementation (WP4) constitute the original research work of the project.
In the work package WP3, the properties of the wave-kernel functions and their inverses were established, the theory for the backward-error analysis was developed and the error estimates of approximations to compute the wave-kernel matrix functions were established. Based on these results, in work package WP4, a cost-optimal algorithm was developed. Additionally, MATLAB functions to compute and test the wave-kernel matrix functions were developed and this software is freely available in the GitHub repository: https://github.com/nadukandi/wkm
A manuscript containing the theoretical results and the algorithms for computing the wave-kernel matrix functions was written and submitted to the SIAM Journal on Scientific Computing.
EPrint: http://eprints.maths.manchester.ac.uk/2651/
Additionally, an algorithm was developed for the piecewise integration of particle trajectories on triangular meshes distributed over several computer nodes. High-performance software implementation of this algorithm has been done in C++ and using MPI/OpenMP directives. The software is hosted in the Bitbucket repository: https://bitbucket.org/nadukandi/slpfem
The work package WP5 (simulation campaign) has been partially accomplished. From the perspective of the FastFlowSim project, a flow solver has two components. The first is the advective transport of flow data, e.g. position, velocity and passive intensive scalars like density of the flow. It is to this component of the flow solver that the theoretical, algorithmic and software developments of the FastFlowSim project contribute. The second component corresponds to the dispersion of the aforesaid flow data due to viscous processes and imposition of the incompressibility constraint. The strategy adopted here is to delegate the tasks associated to this component to open source numerical computation software, e.g. MUMPS (linear solvers) and BDDCML (domain decomposition preconditioners). The compilation of these open source software has been done and the interface to integrate the software developed in the FastFlowSim project has been prepared. The combined testing of the integrated software and its performance analysis on flow problems is pending. This delay is a result of the time allocated to the successful generalization of the theoretical developments in WP3 and in the training required to write a manuscript with appropriate mathematical rigour.
The last work package is on dissemination and communication (WP6). The theoretical results were presented at the SIAM UKIE annual meetin
No prior work exists on the theory and computation of the wave-kernel matrix functions of an arbitrary matrix. Hence, flow trajectory computations using the wake-kernel matrix propagators had not been tried before.
Original contributions that advance the state of the art are:
1. The backward-error theory and the first algorithm based on backward-error analysis to compute the wave kernel matrix functions.
2. A new sharper bound for the norm of a general matrix power series. It led to savings of several matrix multiplications in my algorithm, and in other algorithms with a similar derivation, such as the scaling and squaring algorithm for the matrix exponential.
3. An algorithm for the piecewise integration of particle trajectories on triangular meshes distributed over several computer nodes. High-performance software implementation of this algorithm has been done in C++ and using MPI/OpenMP directives.
The generality obtained by developing the theory for an arbitrary matrix has opened door to applications of the wave-kernel matrix functions in areas far beyond the scope of the FastFlowSim project. The wave-kernel matrix functions provide a starting point from which to develop efficient time integrators for stiff second-order systems, to compute waves on graphs, and to analyze and control asymmetric systems prone to non-decaying vibrations.