Please login to view abstract download link
EDF’s general CFD tool, code_saturne, has been developed since 1997, and many of its applications involve coupling with other models. As most such, it must handle large meshes, up to several billion cells. This is done using MPI-based parallelism and mesh partitioning. Using a centralized global mesh representation on a given compute node is not an option. The discretization is based on cell-centered finite volumes with polyhedral cells and gradient reconstruction. Initial lack of appropriate libraries led to the development of a subsystem for distributed parallel n to m coupling using a flexible representation. The code has since added support for external libraries and specialized cases, leading to multiple approaches: • PLE (Parallel Location and Exchange) is a code_saturne’s own answer to coupling using MPI. It allows mapping points to a mesh, parallelizing and leveraging a calling code’s own local location and interpolation functions. This avoids the need for a shared mesh model, and allows for a simple API. • MEDCoupling, developed by EDF and CEA is a complete library, including data movement, analysis, and conversion, based on a mesh and field model and MPI parallelism. It can also leverage some external libraries, and includes multiple mapping algorithms, including polyhedral mesh intersection for conservative quantities. • A client-server based model, uses the FMI (Functional Mock-up Interface). Here, a simple FMU client is included in an FMI coupling-enabled model, and controls a parallel code_saturne simulation. Lacking a data model, this approach is limited to discrete quantities, but allows plug and play integration with many system applications. We will present these approaches and example applications in more detail, and highlight their similarities, differences, and trade-offs. We will also illustrate how they can be mixed, and show how these couplings scale on different cases, and could be further improved.