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?
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:
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.