Integrating mesh movement technology within Fluidity and the PRAgMaTIc adaptive mesh toolkit
eCSE06-001Key Personnel
PI/Co-I: Prof. Matthew Piggott, Dr. Gerard Gorman - Imperial College London
Technical: Timothy McManus
Relevant Documents
eCSE Technical Report: Integrating mesh movement technology within Fluidity and the PRAgMaTIc adaptive mesh toolkit
Project summary
This work builds upon previous mesh adaptivity technology developed at Imperial College London which has primary focused on "h" adaptive, or mesh optimisation, techniques. In this approach the shape/size of the elements that constitute an unstructured mesh are periodically updated in response to an evolving numerical simulation. The aim is to only use higher resolutions when and where they are needed, in order to optimise the accuracy and efficiency of a calculation.
The mesh adaptivity technique focused on in this work is called mesh movement or "r" adaptivity. In this approach the number of elements in a mesh, and their connectivity, remains constant while the location of the nodes of the mesh evolve. Through this evolution, mesh resolution can once again be “focused” in regions of interest, but evolving solution features can also be continuous tracked. That said, if these evolving features are particularly important to a problem, then mesh movement methods can provide a very powerful addition to an underlying PDE (partial differential equation) solver. However, because the total degrees of freedom count remain fixed in this technique and there is the potential for elements to become badly skewed (or even inverted), mesh movement methods benefit greatly from additional robustness afforded by combining "h", resulting in what is normally referred to as "hr" adaptivity.
This project has achieved its primary goal of making a range of r-adaptive, as well as combined hr-adaptive, methods available to users of Fluidity. These have been parallelised, benchmarked on ARCHER, and tested across a range of applications which form representative examples for all of the diverse real-world use-cases which motivated this work. For Firedrake-based models, a subset of these r-adaptive methods have also been demonstrated, while full hr-adaptivity, applications and benchmarking against similar capabilities now available in Fluidity are the subject of ongoing work. In addition, through further method benchmarking and real-world applications, future work will seek to identify the most appropriate r- and/or hr-strategy to employ for a given problem type.
The developments made under this project ultimately mean that real-world applications previously intractable to us are now possible to consider. In particular, this work was motivated by engineering problems where internal or external boundaries move or rotate, with two-way feedback to the flow.
Achievement of objectives
The overall aim of this work was to integrate new mesh movement (r-adaptive) functionality with our existing Fluidity model and mesh optimisation (hadaptive) capabilities/libraries. The latter also includes the PRAgMaTIc parallel anisotropic adaptive mesh toolkit which has recently been integrated with the Firedrake PDE solver framework.
The main achievements of this project may be summarised as follows:
- We have implemented, validated and benchmarked three families of highly parallelised mesh movement methods; this delivers on our aim of parallelising a pre-existing prototype method as well as significantly expanding on both the number as well as types of methods available to us.
- These have been integrated with Fluidity, as well its internal mesh optimisation library, to deliver fully-functional r- as well as hr-adaptivity capabilities to users; associated supporting manual material and test cases having been written.
- The methods have been demonstrated on all the target applications discussed in the proposal. For cases with strong external boundary deformation, or internal boundary/structure rotation, we are now in a position to tackle, in parallel, problems which were not previously tractable with our existing h-adaptive methods alone.
- Based upon associated testing and benchmarking the following initial observations can be made: Laplacian smoothing (available in 1D, 2D, and 3D) provides a simple and straightforward way to smooth a mesh that has undergone a small (relative to the domain size) internal/external boundary deformation. The lineal-spring method provides a more robust (less likely to tangle) smoother, primarily because it couples mesh movement in the x- and y-directions, whilst not adding too much in terms of computational cost. Important to keep in mind for this method, however, is that it only prevents inter-nodal collisions and does not ensure that the mesh will not tangle. For that, the lineal-torsional spring method was implemented which effectively guaranteed a mesh would not tangle (owing to the method accounting for elemental area, and not just edge-length), but at the expense of element quality, and overall computational cost. The linear elastic and viscous drag methods have proven to be a good compromise in terms of parallel efficiency and robustness. For rotational problems the viscous method appears more robust than the elastic method, but is less robust than the more costly lineal-torsional method. Worth noting are the following caveats: (i) The one-parameter elliptic method is currently limited to Laplacian (i.e. not Winslow smoothing) in Fluidity; and (ii) The current implementation of the lineal-torsional method is limited to 2D problems, since the complex spring terms needed to control a tetrahedron volume in 3D are not currently implemented (although this is a straight-forward extension).
- Examples of PDE-based mesh movement methods (namely Cenicerous & Hou) have also been demonstrated as functioning in combination with Firedrake-based application codes. An approach to allow a full hrcapability through the additional use of PRAgMaTIc is currently being tested. Implementation of the wider range of mesh movement algorithms will be the subject of future work.
Summary of the software
- The Fluidity repository can be found here.
- Step-by-step desktop installation instructions can be found here.
- Step-by-step ARCHER installation instructions can be found here.
- The PRAgMaTIc repository (along with installation instructions) can be found here.
- Information on the use of Firedrake on ARCHER is available here.
All of the above software projects are released and freely available under open source licenses.