How to debug preCICE?

hello,eneryone !
As part of my graduate research, I am developing an adapter for a Monte Carlo simulation code based on the preCICE coupling library. Recently, I have been trying to understand the internal computational logic of preCICE in more depth. To achieve this, I would like to debug the code during a coupled simulation.

Specifically, I’m currently working with a coupling between FEniCSx and OpenFOAM. However, I am unsure how to proceed with debugging preCICE during such a coupled run. For example, how can I trace or inspect the internal steps of data exchange, mapping, and time advancement inside preCICE during the execution of a sample case?

Hi,

If your goal is to understand what happens in which order and how long sections take, then you may be interested in the performance analysis of preCICE:

For a general understanding and additional background on individual features, have a look at the literature guide:

If you really want to use a debugger and step through preCICE, then I highly recommend using a simple serial C++ solver, as this reduces the amount of API layers between languages. Good example are the elastic tube 1d C++ solvers:

Is there anything specific you are looking for?

Frédéric

Thank you very much for your help. As you mentioned the 1D Elastic Tube example, my goal is indeed to learn how preCICE handles data exchange through a simple case, especially how to debug when two participants are running simultaneously. Right now, I would like to know what software is typically used for debugging. I am currently familiar with using CLion for debugging, so I would like to know whether CLion can be used in this context.