Frequently Asked Questions
How do I start a coupled simulation with preCICE?
In order to start a coupled simulation, you can execute the (adapted) participants normally, as you would execute them for a non-coupled simulation. “Adapted” means either that the solver is modified to call the preCICE library, or that it loads a separate “preCICE adapter” at runtime. Often it is helpful to just start the simulations in different terminals.
Please note that that the solvers call preCICE (as it is a library) and not the opposite. There is no “preCICE executable” required to start the simulation.
Is there any separate mesh defined for the coupling?
No. The user specifies one of the participants’ meshes to be used for the coupling.
The interface meshes are given names in the preCICE configuration file and each adapter specifies the locations of each node that lies on its side of the interface.
How does preCICE treat non-conforming meshes?
preCICE supports several methods to map the interface values from the one mesh to the other. The simplest method uses the nearest-neighbor’s value, while more advanced methods like the nearest-projection mapping or the Radial-Basis Function mapping include contributions from neighboring nodes.
Can preCICE interpolate between an arbitrary / unstructured mesh and a regular / structured mesh?
Yes. preCICE treats all meshes as unstructured meshes (including structured meshes).
Does the data mapping between non-conforming meshes conserve physical quantatives?
Please have a look at our wiki page on the mapping configuration page and the mentioned literature there. preCICE offers consistent and conservative mapping variants. Conservative mappings conserve the total sum of the mapped values.
Does partitioned coupling introduce error?
In general yes, but it depends on the application whether this additional error is problematic. For some applications, e.g. FSI with a compressible fluid, the error can be controlled by the timestep size. For other applications, e.g. FSI with an incompressible fluid and strong coupling, the error can lead to instabilities (the so-called Added-Mass Effects), which in turn can be controlled by the implicit coupling algorithms preCICE offers.
Does preCICE use files for the communication?
No. Using files would be very slow. The preCICE participants communicate either through TCP/IP sockets or through MPI ports.
Additionally, any processes that need to communicate, do so directly (Peer-to-Peer), without needing to go through any central instance (“server”).
Can the individual solvers run on two different platforms on two different machines in/out of a network?
Yes, at least as long as communication over TCP/IP is possible. The solvers find each other using a network address, which is written in a file and read once in the beginning of the simulation. For this reason, all solvers need to be able to at least access a common file system.
Can preCICE couple more than two participants?
Yes! Here is an example.
Can preCICE be used for volume coupling?
Yes, but it will be computationally expensive. preCICE is mainly designed to couple simulations that share a common surface boundary. In this case, all the coupled volume nodes should be specified in the coupling mesh.
preCICE only knows about points and their connectivity, so it doesn’t make much of a difference if the points are on a surface or on a volume. However, in the case of volume coupling, nearest-projection mapping would not be available. You may still use the nearest-neighbor or RBF mapping, however.
Can preCICE be used for one-way coupling?
Yes! Several people are doing this already.
Even though there may be other ways to do one-way coupling, it may still be beneficial to use preCICE here: flexible data mapping methods, parallel communication (your coupling data might be too large to write to disk), and already adapted solvers.
Can preCICE be used with adaptive meshes?
Or: “Is it correct that preCICE cannot support couplings when the interface mesh is changing its connectivity during the simulation?”
Currently, the mapping setup only occurs once during the initialization of preCICE. Thus, in order to modify the mesh and therewith the mapping one must restart the simulation. It depends on a case-by-case basis whether this costly method is acceptable or not. A dissertation in progress studies dynamically changing coupling meshes, such that preCICE will be able to handle adaptive meshes in the future.
Can preCICE be used with moving meshes?
It depends on what exactly is meant by “moving”. preCICE currently only supports static meshes, i.e. the mesh coordinates cannot be changed during a simulation. A dissertation in progress will introduce support for dynamic meshes. Nevertheless, also with static meshes, one can treat moving geometries and moving meshes if the respective solver uses an Arbitrary-Lagrangian-Eulerian approach.
Which code drives the coupled simulation in preCICE?
Or: “Which code is executing the coupling iterations given that preCICE does not really have a centralized engine to orchestrate the simulation?”
It is the preCICE library! Every participant loads the library and works on its own part of the mesh. Of course, there needs to be some cooperation between the different processes, but this does not need to be blocking or through a central process. If you want to know more details about the implementation of specific features, you may look into our literature guide, in particular in the dissertation of Benjamin Uekermann. And of course, the code is open!
Where can I find more details for the methods involved?
Have a look into our literature guide.
What are the advantages of preCICE in comparison to other coupling software?
Such a list would be difficult to maintain, however you can have a look at the introductory section of our reference paper.
When comparing preCICE to other software, look for the following key points:
- Library approach
- preCICE is not a framework which is used to call the participating solvers, but a library which the solvers call. This allows for great flexibility: you can easily make your own in-house solvers use the preCICE library and you can allocate different computational resources for each participant, using the same tools that you may already use.
- preCICE is designed especially for massively parallel simulations. For this reason, each process of each participant communicates directly with any other processes of other participants, without passing through a central bottleneck. Additionally, all the communication happens using either the network TCP/IP sockets or MPI ports, methods much faster than exchanging files through the filesystem. Last but not least, advanced numerical methods can accelerate the coupling already in the algorithmic level.
- Coupling algorithms
- preCICE supports fully implicit (strong) coupling, accelerated by sophisticated and robust quasi-Newton algorithms. These stabilize and accelerate the solution.
- Data mapping techniques
- preCICE offers several first and second order methods to map the interface values between non-matching meshes, including Radial-Basis Functions.
- preCICE can easily be used to couple more than two simulations.
- preCICE is free software, distributed under the GNU LGPL3 license and actively maintained on GitHub. Of course, as with any free software, the documentation of a commercial alternative may be more extended. However, we constantly improve our documentation, based on the feedback we get from preCICE users.
How is preCICE funded?
preCICE is orginally an academic software. We have received public funding from several projects that use and develop preCICE. This applies currently, e.g., to the DFG-funded ExaFSA project, part of SPPEXA. Recently, DFG had also a specific call on research software sustainability, in which we were succesful: The project preDOM should take preCICE to the next level, from a prototype to a wide-spread sustainable scientific software. Specific funding for basic un-academic things such as tutorials, outreach, or documentation has been granted. We also receive funding through the EuroTech PostDoc Program, co-funded by the European Commission under its framework program Horizon 2020. Besides this public funding, both active academic developer groups, SCCS at the Technical University of Munich and SGS at the University of Stuttgart, also invest own internal funding.
Since 2017, the spin-off COPLON provides support, training, and software solutions for industrials users of preCICE.
Last, as any open-source project, preCICE could only survive through its user’s and developer’s passionate commitment also in their after-work hours.