Loose coupling for FSI simulations is not implemented yet


recently I’ve opened a thread regarding loose-coupling, which is a feature preCICE could maybe implement in the future.
Because I think we did not understand, what I was trying to explain with loose-coupling, I’ve drawn something here:

I’m using OpenFOAM (with the preCICE OpenFOAM-Adapter) as fluid solver and MBDyn (with the preCICE MBDyn-Adapter) as solid solver. In loose-coupling mode, MBDyn should first run a few cycles to generate the motion without force influence in the initialization period. As well, OpenFOAM should run some cycles with the generated motion, to provide MBDyn some initial force data.

Then the real coupling begins and the solvers run some cycles, without communicating with each other. The advantage would be, that the simulation stays more stable. One could set a low/high-pass filter to avoid oscillations in the force data.

At the moment, preCICE doesn’t offer such a functionality. A way to “hack around” would be to hard code the initialization into the python interface of the MBDyn-Adapter and just hold back & collect the data for multiple timesteps. In the first half of the initialization, the interface should say to preCICE, that there is no motion and in the second half, it must collect the data from preCICE and don’t tell MBDyn, that there are forces from OpenFOAM.

Challenges: As already said, this is not an ideal approach and it would be much better, when preCICE could handle such cases. In addition, the initialization of MBDyn would (in our case with a deformable beam) possibly need a seperate model to prevent deformation.

Thanks for the description, @JulianSchl !
Important for others: we are trying to solve a periodic system here and are looking for a periodic steady-state.

Could you please elaborate in more detail what you mean by “cycle”? Is this a complete period? What is t^i then?
What I don’t fully understand yet is whether you need the data from the initial cycles later on? If not, wouldn’t a simple restart be a solution? Your initialization procedure sounds more like providing the solvers with decent initial solutions.

In your second phase:

Then the real coupling begins and the solvers run some cycles, without communicating with each other.

I guess, here, you need to clearly specify what you want to communicate. If you write it likes this, it sounds like the classical subcycling that preCICE does would do the job. But I guess you want sth else.

What could really help would be a more mathematical description. Maybe by using two coupled ODEs that have a period of T?

x' = f(x(t),y(t))
y' = g(x(t),y(t))

Maybe I have to change my drawing again :laughing:. With “cycle” I mean one timewindow defined by preCICE, which is limited by t^n and t^{n+1}. The participants are subcycling in multiple timesteps (not visible in the drawing).

In principle I don’t need the initial data later on, but pausing the simulation in the MBDyn-Adapter seems for me to be more feasible, than restarting the simulation (e.g. I don’t know how to restart MBDyn and keep the data from preCICE).

In my eyes the subcycling functionality of preCICE would indeed be sufficient, but the initial process is a functionality I’m not exactly sure how to realize yet (and could be a functionality for preCICE to add in the future).